Red5 H.264 Support in Flash Player 10.1

January 11th, 2010

For anyone who has recently upgraded to the 10.1 FP, you’ll notice that your mp4/h.264 files no longer work in your application. Fear not, the issue is being worked on and we will hopefully have a patch for this very soon. Until then, just note that your current applications will still work in production since there are no issues with the latest released Flash Player!

FFMpeg Encoding Settings

January 11th, 2010

FFMpeg can be tricky and a bit intimidating for the faint of heart. In fact, I remember spending a half day encoding movies until I found a setting I liked. To save some of you the same trouble I went through, here is the exact encoding I use for my MP4 files.

ffmpeg -i myMovie.mov -acodec libfaac -ab 128k -vcodec libx264 -vpre hq -vpre slowfirstpass -b 1000k -bt 1000k -threads 0 myMovie.mp4

The line above takes the “myMovie.mov” file and encodes it to “myMovie.mp4″ using h.264 as it’s encoding. You must have FFMpeg installed for this to work and the directions for getting and installing ffmpeg are beyond my discussion here.

Remember that MP4 is a container format which Flash Player 10 can read. This is similar to the FLV file format that were used to. However, the difference comes from the payload in which an MP4 uses h.264 as compared to sorenson and On2 VP6 in the FLV container. H.264 makes for a much smaller encoding and provides for a brilliant video experience with 720p HD video and 1280p.

Troubleshooting: Unresolved Compilation Problems

January 9th, 2010

The other day I was creating a distribution of Red5 and was getting “unresolved compilation problems”. At the time I was pretty impatient so I immediately contacted Paul Gregoire. Turns out I should have just took a small break and got some fresh air. The solution was to clean the build and re-create the distribution. Here is how I solved the issue with Paul’s suggestion:

ant -Ddist.dir=./dist/test clean ivyclear dist

ant -Ddist.dir=./dist/test clean ivyclear dist

what follows is a snippet of the original error.
Caused by: java.lang.Error: Unresolved compilation problems:
The import org.red5.server.net.rtmp.message.StreamAction cannot be resolved
StreamAction cannot be resolved
StreamAction cannot be resolved to a type
StreamAction cannot be resolved
DISCONNECT cannot be resolved
CREATE_STREAM cannot be resolved
DELETE_STREAM cannot be resolved
RELEASE_STREAM cannot be resolved
PUBLISH cannot be resolved
PLAY cannot be resolved
SEEK cannot be resolved
PAUSE cannot be resolved
PAUSE_RAW cannot be resolved
CLOSE_STREAM cannot be resolved
RECEIVE_VIDEO cannot be resolved
RECEIVE_AUDIO cannot be resolved

Red5 Developer Series: 05-Remotely Debug Red5

January 5th, 2010

I just released the fifth video in the series which demonstrates how to remotely debug the Red5 server. The video includes:

-edit the red5-debug.sh shell script
-remotely debugging Red5 from within eclipse

Please feel free to comment and or suggest additional topics! Thanks

Video Link

Picture 1

Red5 Developer Series – Live

December 21st, 2009

I’m excited to have had a chance over the weekend to work on something I’ve been meaning to start for quite some time! A long time ago, in a galaxy far far away I had created several useful video tutorials on how to setup your Red5 development workspace and get started with developing on the Red5 application server. However, as all oss projects go, the server was constantly changing at a rapid pace. Times have changed as we are approaching the Red5 1.0 release. The server has reached a level of stability during this time and we are almost feature complete! In this regard, it seemed like the perfect time to start over and release some material that the community could benefit from. I decided that youtube was the perfect platform for delivering the series due to their bandwidth and high definition upload capability. That said, I am officially releasing “The Red5 Developer Series” to the community.

Red5 Developer Series

Red5 Developer Series

The Red5 Developer Series is a youtube channel I’ve created that will allow me to publish educational videos for the Red5 application server. So far, I’ve created four videos. Each video has been encoded to high definition 1280×720p. Make sure you click on the “HD” button and view in full screen for the best result. My hope is that  you find these useful. If you would like to show your support, then please subscribe to the “Red5 Developer Series” channel and to my site here. Link to and write posts about the series and my site (www.newviewnetworks.com). Leave me comments and suggestions on what I could do to increase the value of these.

The Red5 Developer Series

The video series includes:

Part 1:
-introductions
-explanation of what the series will cover

Part 2:
-navigating the red5 trac site
-initial discussion of Red5Plugin
-mailing list info
-registering for trac
-how to submit a bug

Part 3:
-how to check out the source code from the repository
-explain what developer tools are needed
-explain what eclipse plugins are needed
-installation of the Red5Plugin
-import the Red5 project into your workspace
-explain directory structure
-explain the build fild
-build a distribution in the deault dist directory
-running your distribution from the terminal
-install a RemoteSharedObject example
-run the RemoteSharedObject example

Part 4:
-shutting down Red5 gracefully
-creating custom distributions
-running your distribution from within eclipse
-attaching source to your distribution
-debugging Red5 source code from within eclipse
-quickly step through Red5 cod

Evolution of security

December 11th, 2009

Here’s an interesting video on the evolution of security!

Recording Audio/Video Streams with Red5, the Simple explanation!

October 30th, 2009

If you’re just getting into Red5, and you are wondering what it’s capabilities are and how you could approach saving audio/video streams with Red5, then please read on.

Recently on the mailing list, a question on how to save streams to the server came up via a new Red5 user. The user was kind enough to explain that they hadn’t much knowledge on the subject and that they did their due diligence by searching the web for answers.  Unfortunately, there is a lot of information on saving streams, but most of it is geared towards long winded examples and less on teaching the user what they need to do to get from A to B.  Keeping this in mind, I gave the following answer which instead of providing an entire example, just gave him the tools and knowledge to get to their next step in the red5 evolutionary process.  Soon, this user may be spreading the knowledge back by providing these same answers to other users or contributing to our wiki.  My suggestion is as follows:

I would suggest that you take the following approach:

  • download and install red5
  • open up the home page screen (http://localhost:5080/)
  • install some examples
  • look for an example that does something you’re looking for.. probably oflaDemo in your case or the publisher application.

once you have this 50,000 foot view, you will can check out the example code and look at what API you will need.

In your case, you’re going to want to look into the following Clientside API:

  • NetConnection
  • NetStream

example:

// create the connection
var nc:NetConnection = new NetConnection();
nc.connect("rtmp://localhost/myApp");

// create the stream
var ns:NetStream = new NetStream(nc);
ns. publish("myStreamName", "record");

The result will be an FLV file named “myStreamName.flv” located in your webapp’s streams directory.  This happens automagically on the server.  Of course there are ways to monitor and prevent this automagical functionality, but it’s a good start.

Also, keep in mind that the code above just publishes… there are equivalent api calls to play a stream: e.g.:

ns.play(”myStreamName”);

Hope this helps…

Xuggle 3.3 – “Eliza” released … new licence LGPL

October 29th, 2009

For those of you who have held back on working with Xuggle due to their restricting AGPL licence you can now breathe a sigh of relief and head on over to the xuggle site.  The Xuggle team has released a new version named “Eliza” and ain’t she pretty! In addition to the release, they have slapped the good old LGPL license back on the packaging.  What this means is that you can now use Xuggle 3.3 with your products without:

  • releasing your source code under the same restrictive AGPL license.
  • paying a commercial license.
  • Instead, you can now freely use Xuggle 3.3 as you please.  The only restriction that LGPL places on your project is that you must contribute back any code modifications to the source code of Xuggle.  You should all be pretty familiar with this licensing model since it’s used with some of your most prized open source technologies such as Tomcat and your’s truly Red5! Many of you might remember that Xuggle 1.x was also licenced under LGPL, however starting with 2.x, the licence had been changed to AGPL. The news of LGPL is a big win for the Red5 community.  Good to hear and I thank the Xuggle team for their contribution.  So what are you waiting for, go get Xuggle 3.3 Eliza!

    Streaming Red5 Video to Flash Lite 3

    October 27th, 2009

    Have a look here for an example and source code: flashvisions

    note: the source code shows that it’s pretty straight forward… so I guess it’s more of a confirmation than a breakthrough :) .  Regardless, this may be interesting for some of you who have been wondering if this was possible.

    More insight into Trench Run

    October 25th, 2009

    Head on over to Chris Allen’s site and get another inside look into the development of Trench Run on the iphone.