Archive for the ‘Research’ Category

How to prevent spam in IP.Board forum

Friday, March 1st, 2013

These days we faced some annoying spam attacks on our forum and had to take some security measures that will share with everybody here.

stop forum spam

IP.Board spam prevention

As first quick measures:

1) You have to ensure that the registration page contains at least a “Questions and answers challenge” and a CAPTCHA code. For those who don’t know, this area can be found in the AdminCP under the menu System->System Settings->Security and Privacy.

We used to have re-captcha from Google before, but the bots were still getting in, so we switched to “Are you human PlayThru” to see if something changes.

Here’s a graphic of user registrations due the past months where we can notice abuse of users registered:

 

 

 

 

2) The e-mail validation after user’s registration is also recommended. We already had it enabled, but it seems that the spammers found a measure to pass this so we’ve searched for other good measures.

3) As spammers are studying security bugs for software versions, you might want to hide your IP.Board version located in the footer.

4) Also, you need to make sure that your license is active, otherways the spam monitoring service from IP.Board will not be active.

5) What seemed to be a good tool is Forum Spammer IP & Email Check via Stop Forum Spam 2.1.5 .
This adds a check during registration submission that checks the registers IP address and email address against a known list of spammer IP’s and emails from stopforumspam.com.
If it returns true for a spamming IP or email the registration is declined and the IP and email address can be added to IPB’s ban filters.

How to install it:

  1. Log into your ACP and select the System tab.
  2. Under Applications & Modules select Manage Applications & Modules.
  3. To the right of the page will be a section for “Applications Not Installed”. Locate Stop Forum Spam in the list and click the install link on the right hand side.
  4. On the next page click continue.
  5. IPB will take it from there and do the rest of the install for you.

How to set it up:

  1. In ACP select the My Apps tab.
  2. Click on Stop Forum Spam.
  3. You can configure whitelists and view blocked registrations from here.
  4. Configure the settings to stop spam at the level you desire.

A second hook was included with this mod as an alternative method for showing stats on the board index.
This template hook will allow you to show the stopped spammers on the board index even with all your other stats
turned off or if you want the stopped spammers listed on a second line.

Just uninstall the hook that installs with the mod and install the one included in the extras folder.

Here’s the actual registration graph which shows a descending line:

 

How to use multiple installations of Red5 on the same server

Friday, October 5th, 2012

“I’d like to know if I can run other Red5 instances on my server, besides the one that AVChat requires.”

This is an issue that came recently for some of our existing customers and I thought that we can share this info to everybody.

 

It happens that you have been using a software that requires Red5 to transmit data and you have installed, for example, Red5 0.9. Good..

Now, after you got an AVChat license, you heard that the only compatible versions of Red5 with the chat software are 0.8 and 1.0 RC1. This made you wonder if you can still use your previous software running on the same Red5 0.9 as before and make a different installation of Red5, for AVChat to run.

You have to know that all versions of Red5 are using the same port configuration and if 2 copies of Red5 are started, there will be a port conflict there.

The default ports used by Redt5 are:

  • 5080 for HTTP
  • 1935 for RTMP
You need to configure one copy of Red5 to use different ports. Here’s how to do it:
  1. Open the /conf folder and search for a file called red5.properties.
  2. Open it with a text editor
  3. Change the value of all the ports, but make sure that the new ones are available, no other application on the server is using them.
This screenshot shows an example of the lines that must be edited for each of the paragraphs:

 

 

 

 

 

 

 

 

 

 

 

 

After editing this file, Red5 must be restarted in order for the changes to apply.

Good..now we can start both Red5 instances with 2 different software using them.

I hope this helped and..happy chatting !

How to prevent link spamming in AVChat

Monday, August 13th, 2012

Hello everybody,

Over the Internet there will always be someone who might want to harm your website’s activity just for fun or for some material reasons. We’re writing this article in order to help our AVChat customers who are getting spammed.

Here are the steps that you can do in order to prevent future incidents.

1. Search for logs and look for his or her IP

In case you’re not online while the user is spamming so that you can see his IP in the chat:

  1. if someone notifies you by e-mail, you can take a look over the TEXT CHAT TRANSCRIPTS and search for the desired username and find his IP
  2. from time to time, you can also take a look over the text chat transcripts and search for known spam links or known users and find their IPs.

This is where you can find the text chat transcripts:

  • On WOWZA: wowza_install_dir/applications/avchat30/avchat3_transcripts
  • On FMIS:  fms_install_dir/applications/avchat30/sharedobjects/_definst_
  • On Red5: red5_install_dir/webapps/avchat30/avchat3_transcripts

Here’s how a tipical text chat transcript looks like:

avchat transcripts

Once you have the IP:

  1. you can ban him from the AVChat admin interface.
  2. You can also limit access to the entire website (check out chapter 6 bellow).

2 . Banning malicious users by IP, cookie and username

In case an admin is online, here are 3 ways to find the spammers:

  1. if the spam happens in a public room, as an admin you can just click on the user and then click the Ban… link in the side menu that shows up.

  1. if the spam happens in private chats, as an admin, you can see private chats if the setting $avconfig["adminCanViewPrivateMessages"] located in avc_settings.xxx is set to ’1′.
  2. if the spam happens in private rooms, as an admin, you can join private rooms without being asked for a password. You can do this if the following setting $avconfig["adminCanJoinPrivateRoomsWithoutPermission"] located in avc_settings.xxx is set to ’1′.

The ban pannel allows you to ban each user in the chat by IP, username or cookie. Here’s how the ban pannel looks like:

Banning the username is not strong unless you have AVChat integrated and guests are not allowed.

Banning by cookies cannot be removed.

How to view existing bans

Go to your AVChat admin interface and click the “Active Bans” button located in the upper side.

3. Edit your badwords.xml

Some spammers are generally posting links to certain sites. You can ban those sites from showing up in the text chat.

All the banned words are kept in a badwords.xml file. This file is located in your AVChat installation folder.

Open it with a text editor and add a new line for each word that you think relates to the spammer.

4. Turn off automatic link highlithing

Links are detected by AVChat and automatically turned blue and underlined to look like a REAL web links. You can turn this feature off to prevent the spammer’s links from being clicked on.

This is a more radical solution since it will effect everyone not just the spammer.

To turn the feature off, open the avc_settings.xxx file with a text editor, search for this variable: $avconfig['interpretLinks'] and set it to “0″.

This way, whetherver the URLs posted in the text chat should not be interpreted and transformed to clickable links.

As you can see in the picture bellow, the link from the default welcome message is interpreted and clickable and the URL posted by the user was censored:

censored links

5. Forbid all URLs in the chat

This is an even more radical method. You can censor all links posted in the chat.

Here’s how to do it:

Open the avch_settings.xxx file and search for this variable: $avconfig['allowUrls'].

Setting it to “0″, all URLs will be censored with asterisk (*).

6. Blocking the IP on the entire server (Linux only)

If nothing of these steps are getting success, here’s the extreme method to ban an IP.

You can ban a specific IP on the entire server.  Banned IPs will not be able to access anything from your server, including the website where you host AVChat.

This method does not work in Brazil where they have only dinamic IPs.

You can do this only if you have a VPS or dedicated server with root access.

This can be done in several different ways, e.g. with iptables (firewall) rules or by setting up a reject route.

The command for route ban is:

/sbin/route add -host 192.168.0.0 reject (replace the IP with the desired one).

and for firewall:

/sbin/iptables -A INPUT -s 192.168.0.0 -j DROP (same IP replacement as before).

Then, make sure you save the firewall:

services iptables save

To view blocked IP addresses, here’s the command:

iptables -L INPUT -v -n

In case you can’t manage this by yourself, you can ask your hosting admin to do it.

Hope this helped !

AVChat running in the Puffin browser for iPad

Thursday, June 28th, 2012

The Puffin browser for iPad seems to be running Flash applications pretty well.

Here are some shots with it running AVChat:

Login screen shows up and the flash background, I can also type a username that is remembered.

Good job so far!

AVChat on iPad

Sending messages works as well.

The rooms list:

Quick conclusions:

  • text chat works fine with slight delay
  • you can not start your webcam or mic even tough it detects that you have a microphone
  • you can join several rooms and switch between them
  • notification sounds do play (new message, private cam request, buzz, etc.)
  • you can view someone’s cam but it will show a frozen frame not a video (even tough the download graph shows you downloading a lot of data)
  • links can be clicked
  • YouTube videos can be played inside AVChat but thei’re really sluggish

The Puffin Web Browser costs 2,39Euros but there’s also a free version (Puffin Web Browser Free) which will run Flash for 14 days.

Recording MP4 files (with H.264 video and AAC audio) with HDFVR and WOWZA

Friday, June 8th, 2012

Introduction

With the launch of Flash Player 11 (4th Ocotober 2011) Adobe introduced the H.264 video codec in Flash Player for video encoding. For those of you who don’t know yet what H.264 is, it is a standard for video compression, and it is currently one of the most commonly used formats for the recording, compression, and distribution of high definition video. The final drafting work on the first version of the standard was completed in May 2003.

The  Problems:

There are 3 major media servers on the market: FMIS, Red5 and Wowza. All three are supported by HDFVR, our video recording product.

From these three only FMIS and Wowza can produce MP4 files. Red5 can’t save the audio and video data in MP4 files.

None of them can produce MP4 files with AAC audio because the only audio encoding codecs available in Flash Player  are NellyMoser’s ASAO and Speex. Neither of these two audio codecs are recommended with MP4 containers.

In addition FMIS produces MP4 files using an industry-standard recording technology known as “fragments” or “moof atoms.” Some MPEG-4 compatible tools and players do not support moof atoms and therefore cannot recognize files recorded by Adobe Media Server unless they are post-processed with a tool called F4V Post Processor . This tool can be downloaded from here.

The solution:

After digging deeper into the problem we’ve came across the Transcoder AddOn for Wowza. The Transcoder AddOn takes a live stream, decodes the video and audio and then re-encodes the data to suit your needs (delivery to iOS devices, etc.).  It seems it works just as good for recording streams.

To produce MP4 files with H.264 video and AAC audio we need the Transcoder AddOn to

  1. take in the audio and video data coming from HDFVR,
  2. decode the audio and re-encode it with AAC
  3. put the initial video data and the new AAC audio data in an .MP4 file

With a few configurations tweaks for HDFVR we’ve managed to do that. Let’s see how we’ve done it.

Requirements

Here’s everything we need (download and install step by step):

  • STEP 1HDFVR build number 508 (beta version)  or later (installation details here)
  • STEP 2: Wowza 3 (trial, installation guide) or later
  • STEP 3: For Wowza 3.0.3 you need this Wowza patch (more details below)
  • STEP 4: Transcoder AddOn for Wowza 3,  this comes along with the trial version of Wowza 3 and is included with Wowza 3.5 (download, installation guide)
  • STEP 5: 64 bit OS (Linux or Windows) and 64 bit Java runtime (download)

When running Wowza on Windows you will also need:

  • .NET Framework 3.5.1 Feature (download)
  • Desktop Experience  if you run Windows Server (details)

After installing everything, including the Transcoder AddOn you have to start Wowza in standalone mode. To do so you have to run startup.bat (on Windows) or startup.sh (on Linux). These startup files are inside the Wowza/bin folder.

Once Wowza is started, at the beginning of the log in the command line window, you should see a line telling you that the Transcoder AddOn is available. The message should look something like this: INFO server comment – Transcoder Streams Available.



In case your Transcoder AddOn appears as unavailable you should  check the log messages in the console window that show the  Java version. The correct line should look like this: INFO server comment – Java Architecture: 64. If this is not correct you should try installing the Java runtime again and set your Java path, details here.

Important note about Wowza versions:

===
Wowza 3.0.3

After testing with the latest Wowza – at the time of writing this article it was 3.0.3 - and the Transcoder AddOn we’ve found that the recorded mp4 files could not be played  with any external player. After researching a little bit we’ve came across a patch (Patch 3 for Wowza 3.0.3) that fixed this problem. The patch can be found here : http://www.wowza.com/downloads/WowzaMediaServer-3-0-3/WowzaMediaServer3.0.3-patch3.zip .
You will need to replace the files inside of your Wowza  3.0.3 installation folder with the ones inside the patch (only the files contained inside the patch).

===
Wowza 3.0.4 and later 3.0.x versions

Work as expected and do not need to be patched.

===

Wowza 3.1.0

We could not get it to transcode properlly and produced unusable .MP4 files.

===

Wowza 3.1.1, 3.1.2 and later (including 3.5 and 3.6)

Work as expected however the final MP4 file will not be created when the user presses STOP in HDFVR (build 508). It will only be created when:

  • the client records another video (re-records)
    OR
  • the client disconnects

Until one of the 2 events happen Wowza will not create the final .mp4 file and the existing .mp4 file will be unplayable. You will know Wowza has not closed the .mp4 dile and is waiting for one of the 2 events to happen when you see a .tmp file in the content folder:

.temp video file in Wowza 3.0.4file

.temp video file in Wowza 3.0.4file

After getting everything above installed and running follow these steps to configure HDFVR and Wowza/Transcoder addon for recording MP4 files with AAC audio and H.264 video.

Step 1 : Setting up HDFVR

1.1 Set the proper Audio Video Quality Profile in HDFRV

First we need to tell HDFVR we’re using Wowza + the Transcoder AddOn.

Inside the video quality profile of your choice set:

  • <vcodec> tag to h264_w_t and
  • <snd> tag to speex10

By default HDFVR uses the following video quality profile files depending on the HTML page that embeds HDFVR:

  • VideoRecorder.html -> audio_video_quality_profiles/320x240x30x90.xml
  • VideoRecorder-api.html -> audio_video_quality_profiles/320x240x30x90.xml
  • VideoRecorder-sd-16by9.html -> audio_video_quality_profiles/wide/640x360x30x90.xml
  • VideoRecorder-hd.html -> audio_video_quality_profiles/wide/1280x720x30x90.xml

Here’s the <vcodec> and <snd> tags properly set to h264_w_t in the 320x240x30x90.xml video quality profile file.

This will produce a stream with video encoded with H.264 and audio encoded with Speex or NellyMoser (the Transcoder can decode both so the sound codec choice does not matter) but upon reaching the media server Wowza will know that it has to transcode the audio to AAC.

speex10 will produce an audio stream containing 16khz audio at 42.2kbits/s.

According to the transcoder guide, Wowza does not know to decode NellyMoser’s ASAU audio codec so don’t use it, use Speex.

1.2 Configure  Application.xml

The next step is configure the Application.xml file for HDFVR. The Application.xml file for HDFVR is found inside Wowza/conf/hdfvr directory. Here’s what you need to change from the default Application.xml with which HDFVR is delivered:

  • set the <StreamType> tag  to  live-record.
  • uncomment the <LiveStreamPacketizers> and make sure it’s set to cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer
  • uncomment the <Transcoder> and <HTTPStreamers> tags and make sure:
    • the <LiveStreamTranscoder> tag is set to transcoder (this will enable the Transcoder addon)
    • the <Templates> tag is set to hdfvr.xml
    • the <HTTPStreamers> tag is set to cupertinostreaming,smoothstreaming,sanjosestreaming

If  these options are not present in your Application.xml please add them. Make sure that they are  not commented.

In the end your Application.xml should look like this:

<Root>
	<Application>
		<!-- Uncomment to set application level timeout values
		<ApplicationTimeout>60000</ApplicationTimeout>
		<PingTimeout>12000</PingTimeout>
		<ValidationFrequency>8000</ValidationFrequency>
		<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
		<MaximumSetBufferTime>60000</MaximumSetBufferTime>
		<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
		-->
		<Connections>
			<AutoAccept>true</AutoAccept>
			<AllowDomains></AllowDomains>
		</Connections>
		<!--
			StorageDir path variables

			${com.wowza.wms.AppHome} - Application home directory
			${com.wowza.wms.ConfigHome} - Configuration home directory
			${com.wowza.wms.context.VHost} - Virtual host name
			${com.wowza.wms.context.VHostConfigHome} - Virtual host config directory
			${com.wowza.wms.context.Application} - Application name
			${com.wowza.wms.context.ApplicationInstance} - Application instance name

		-->

		<Streams>
			<StreamType>live-record</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			 <LiveStreamPacketizers>cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer</LiveStreamPacketizers>
			<Properties>
			</Properties>
		</Streams>

		<Transcoder>
			<!-- To turn on transcoder set to: transcoder -->
			<LiveStreamTranscoder>transcoder</LiveStreamTranscoder>
			<!-- [templatename].xml or ${SourceStreamName}.xml -->
			<Templates>hdfvr.xml</Templates>
			<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
			<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
			<Properties>
			</Properties>
		</Transcoder>

		<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming</HTTPStreamers>

		<SharedObjects>
			<StorageDir></StorageDir>
		</SharedObjects>
		<Client>
			<IdleFrequency>-1</IdleFrequency>
			<Access>
				<StreamReadAccess>*</StreamReadAccess>
				<StreamWriteAccess>*</StreamWriteAccess>
				<StreamAudioSampleAccess></StreamAudioSampleAccess>
				<StreamVideoSampleAccess></StreamVideoSampleAccess>
				<SharedObjectReadAccess>*</SharedObjectReadAccess>
				<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
			</Access>
		</Client>
		<RTP>
			<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
			<Authentication>
				<PublishMethod>digest</PublishMethod>
				<PlayMethod>digest</PlayMethod>
			</Authentication>
			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
			<AVSyncMethod>senderreport</AVSyncMethod>
			<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
			<IdleFrequency>75</IdleFrequency>
			<RTSPSessionTimeout>90000</RTSPSessionTimeout>
			<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
			<RTSPBindIpAddress></RTSPBindIpAddress>
			<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
			<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
			<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
			<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
			<Properties>
			</Properties>
		</RTP>

		<Modules>
			<Module>
				<Name>base</Name>
				<Description>Base</Description>
				<Class>com.wowza.wms.module.ModuleCore</Class>
			</Module>
			<Module>
				<Name>properties</Name>
				<Description>Properties</Description>
				<Class>com.wowza.wms.module.ModuleProperties</Class>
			</Module>
			<Module>
				<Name>logging</Name>
				<Description>Client Logging</Description>
				<Class>com.wowza.wms.module.ModuleClientLogging</Class>
			</Module>

			<Module>
				<Name>flvplayback</Name>
				<Description>FLVPlayback</Description>
				<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
			</Module> 

			<Module>
				<Name>customServerHDFVR</Name>
				<Description>Server HDFVR</Description>
				<Class>com.naicuandnaicu.server.MyModule</Class>
			</Module>
		</Modules>
		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
		<Properties>
		</Properties>
	</Application>
</Root>

You can download the above Application.xml code/file from here: http://codeviewer.org/view/code:26eb.

1.3 Setting up a Wowza application for playback:

Now we are ready to record mp4 files on Wowza but how about playing them inside of HDFVR.

Because the <StreamType> tag is set to live-record inside Application.xml after you finish recording you will not be able to play back the file. The stream can only be played only while it’s being recorded because Wowza treats it as a live stream.

Not to worry though because we have a solution. Wowza is storing the recorded files inside a folder (Wowza/content) that is shared by all the applications so all we need to do now is set up another app with a different <StreamType> tag that will recognize the files as recorded streams and play them back properly.

On your Wowza media server you will have to copy the hdfr_play files (they’re in the HDFVR build 508 (beta version) archive) as a normal application and the rest is done automatically by HDFVR.

The Application.xml for the hdfr_play app (Wowza/conf/hdfvr_play) should have the <StreamType> tag set to record.

For those of you who do not use HDFVR and want a better understanding of how it works the principle is pretty straight forward: HDFVR connects to one application (hdfvr) with its set of settings and uses the Transcoder AddOn to record mp4 files. To play the files HDFVR connects to another application (hdfvr_play) with a different set of settings.

Step 2: Setting up the Transcoder

Inside Application.xml for the hdfvr app (Wowza/conf/hdfvr) mentioned the following things are specified:

  • the <Transcoder> tag contains the information  about where the configuration file for the addon can be found,
  • the <TemplateDir> tag contains the path to the templates folder,
  • the <Templates> tag contains the name of the template file to use and it has the following value hdfvr.xml .

Here’s the contents of hdfvr.xml, copy and paste it in a hdfvr.xml file inside your Wowza/transcoder/templates folder.

<Root>
	<Transcode>
		<Encodes>
			<!-- Example Encode block for source, not required unless Member of StreamNameGroup. -->
			<Encode>
				<Enable>true</Enable>
				<Name>aac</Name>
				<StreamName>mp4:${SourceStreamName}</StreamName>
				<Video>
					<!-- H.264, PassThru, Disable -->
					<Codec>PassThru</Codec>
					<Bitrate>${SourceVideoBitrate}</Bitrate>
					<Parameters>
					</Parameters>
				</Video>
				<Audio>
					<!-- AAC, PassThru, Disable -->
					<Codec>AAC</Codec>
					<Bitrate>48000</Bitrate>
				</Audio>
				<Properties>
				</Properties>
			</Encode>
		</Encodes>
		<Decode>
		</Decode>
		<StreamNameGroups>
		</StreamNameGroups>
		<Properties>
		</Properties>
	</Transcode>
</Root>

Here’s the above doe explained:

  • The <StreamName> tag will tell the Transcoder to produce an mp4 file.
  • The <Video> tag will leave the video untouched  as the <Codec> tag is set to  PassThru and the <Bitrate> tag is set to the maintain the source’s one.
  • The <Audio> tag will encode audio as AAC set through the <Codec> tag and a bitrate of 48000 set through the <Bitrate> tag.

Results

After all this set up is time to run HDFVR in the browser. Press the record button and have fun. After you finished recording press play. If the recorded file does not play go back and see the section about the hdfvr_play app. To see the recorded mp4 files go to Wowza/content folder.

Conclusion

I m sure most of you know  why MP4  files are useful but for those of you who can’t quite get why this is a major feature here it goes: Flash Player is not supported by iOS and Android Internet Browsers thus .flv files can not be played on these devices. With this feature you will now be able to play you recordings straight away on any type of  OS.

There are many possibilities offered by the Transcoder AddOn not just recording mp4 files but saving different copies of your file with different quality settings , making playlists and so forth (the documentation is available here) , all you have to do is to configure the Transcoder configuration file hdfvr.xml to suit your needs.

How to build a premium Social Engine website using AVChat products

Friday, July 1st, 2011

With the new Social Engine 4 demand that keeps on growing, recently I decided to write on my blog an article about how to build a premium social community with SE4 and the AVChat Products integrated with SE4: (AVChat 3, HDFVR and Zuzubooth)

If you are interested in, just follow this link and read the full article:

http://mihaifrentiu.com/how-to-build-a-premium-social-community-with-social-engine-4-avchat-3-hdfvr-and-zuzubooth

Testing H.264 video recording in Flash Player 11

Friday, May 27th, 2011

A week ago we’ve announced that Adobe will support h.264 video recording in the next version of Flash Player 11.

Since then we’ve made some tests .

Here’s our setup:

Here are our conclusions:

  • Recording HD (1280×720) H.264 video (main profile) maxes the  CPU  at about 20 fps. It would go higher in fps if I would have a better CPU.
  • The sound is encoded with Speex, there’s no AAC option.
  • On the media server the video+audio data is saved in a F4V file.
  • The recording file can be played back right away trough streaming (sound plays ok).
  • For progressive download/desktop playback you need to pass the new F4V file trough Adobe’s F4V Post Processor but there’s no sound. We’ve reported this issue to Adobe and they’re aware of it.
  • Users will need Flash Player 11 or later to record h.264 video.
  • We’ve not tested yet Red5 and Wowza.
  • Both the Baseline (non cpu intensive) and Main (medium cpu intensive) h.264 profiles are supported. High Profile is not supported.
  • All h.264 levels are supported up to 5.1.

That’s a good overview of what we’ve discovered so far.

We’ll be buying an 8 core desktop computer and a better webcam (the Logitech C910 1080p webcam) soon to do more tests ;) .

PS: The Microsoft LifeCam Cinema HD seems to be limited to 10fps when using the official Microsoft Lifecam drivers. We had to use the generic “USB Video Device” drivers from Windows to get it past 10fps.

How do I know what version of Red5 is running on my server?

Monday, March 28th, 2011

You want to find out what version of Red5 is running on your server?

There are a few ways:

1) Look at the Red5 welcome page on port 5080.

To see the welcome page just go to http://yourred5server.com:5080 in your web browser. It’s not the most accurate but it’s the fastest and you don’t need access to the Red5 installation. Here are the welcome screens for different versions.

Red5 0.8 welcome page:

Red5 0.8 welcome pageRed5 0.9.1 welcome page:

Red5 0.9.1 welcome page

Red5 1.0 RC1 welcome page:Red5 1.0 RC1 welcome page

2) Look in docs/changelog.txt

Look in the Red5 installation folder/docs/changelog.txt . You will immediately see the Red5 version there:

Red5 1.0 RC1  changelog

3) Pay attention to the Red5 startup log

During startup, Red5 will show the Red5 version, here is where to look when starting Red5 standalone on Windows:

Red5 log window

4) Look in log/red5_service.log

When starting Red5 as a service on Windows it will create a new log file: Red5 installation folder/log/red5_service.log . In it you will find the Red5 startup log mentioned above and thus the Red5 version.

red5_service.logYou know any other way? Post the method in the comments section below.

Cpu and memory usage with AVChat 3 (text chat only mode), Red5 0.8 and a slow server

Thursday, December 16th, 2010

We’ve made a little test today with the latest version of AVChat (1059) which has some optimized media server file for Red5.

Old Pentium M @ 1,7Ghz with 1G of RAM we used

Old Pentium M @ 1,7Ghz with 1G of RAM we used

1) We’ve installed Red5 0.8 on an old Toshiba M70 laptop with these specs:

  • Pentium M 1.7Ghz (FSB:400Mhz with 2Mb of 2nd level cache)
  • 1G DDR2 RAM
  • 60GB HDD @ 5400rpm
  • 100Mbps Intel network card
  • Ubuntu 10.04 LTS

which is connected to our LAN via wire.

2) Once Red5 was up and running on the laptop, we used an internal flash app named “AVChat Virtual User” to create load on the Red5 server! This app creates a lot of virtual users, once each user is created it connects to the avchat30 app on the media server. Once connected  it starts  generating the  kind of  load that a normal user would generate: sending text messages, changing status (idle, online), etc… . These virtual users are not able to stream/view video that’s why this quick test today covers AVChat 3 in text chat only mode.

AVChat Virtual User  (not much to it right now)

AVChat Virtual User (not much to it right now)

We will release this app when we polsih it so that anyone can test their own servers!

3) With AVChat Virtual User we’ve gradually connected 550 users (100 -> 450 – >550) and observed the load on Red5.

To monitor Red5 we’ve used several tools:

4) The results: CPU usage

CPU Usage

CPU Usage

5) The results: Memory consumption

Memory consumption

Memory consumption

6) Conclusion:

  • a user connecting generates more CPU usage than a user that is already connected
  • Red5/AVChat 3 uses about 6-7Mb of RAM for each 100 users (in addition to the memory used by Red5 by default)
  • the cheapest VPS servers (256Mb of RAM) can hold a few hundred users online!
  • this server would hold 1000 users (in text chat mode) before reaching 80-90% CPU usage!
  • in a real world scenario you would not have the peak CPU usage caused by connecting 100 very ast ( AVChat Virtual User app connecs 1 user every second )

This is by no means an attempt  to squeeze as much performance as we can out of this server! There are many ways one cand do that first being the choice of OS.

Note: this is not a clear reflection of real world usage as video creates a lot of load on the media server! The video usage on the server creates a lot more load than the number of users online!

Later edit: for tips on how to improov the performance of AVChat on Red5 see this thread on our forum.

Hardware accelerated playback in Flash Player 10.1 actually works!

Friday, November 20th, 2009

Hardware accelerated playback of h.264 content in Flash Player 10.1 beta actually works!

Usually when watching any HD video on the Vimeo HD Channel my CPU would  spike to about 40-50% usage. But now, after installing Flash Player 10.1 beta on my laptop, the playback process is handled by my GPU thus leaving the CPU to attend to other tasks.

CPU usage with Flash Player 10.1 beta has dropped to about 10-20% (from 40-50%)!

For now hardware accelerated playback is only available on the Windows version of Flash Player 10.1 beta and only for h.264 video content, but it’s a great step in the right direction.