Wednesday, November 24, 2004

Developing Streaming Media

Dedicated streaming server and software tools have over the last few years they have improved dramatically in terms of lower cost, same or higher quality at the same bitrate, more robust, and higher encoding speed.

Companies have come and gone in the streaming media area, many developing some great products for their time but sadly haven't been able to keep up with the bigger players. There were even some streaming video players that didn't require a download to play!

Multimedia web development really has taken off and it is an exciting area to be involved in. Just have a look at how many sites today a feature rich with Flash animations and the like.

Streaming media is evolving very quickly and to add to the confusion, companies have been constantly renaming their products. There are new codecs released every year, and each one usually being proprietary makes it a nightmare for developers and consumers alike. Those of you who do digital video editing would know what i'm talking about.

And open source hasn't really been successful in the consumer market because the codecs are constantly being changed, they aren't standardised, big vendors (of content producers and of software players) haven't adopted them and so there is little content and little demand for actually using them.

This is why it's great to hear Macromedia releasing a partial solution aimed at web content developers who want to add video without all the fuss and mess of the traditional world of popup windows for video - you might be familiar with the "Click here to watch video" links that plague the web and then be disappointed by the quality (or lack of) video.

Developing Macromedia Flash Video (FLV files) ideally needs Dreamweaver MX and Flash MX. Video is processed using a lite version of Sorenson Squeeze. There are three ways to deliver video content:
  • Progressive download video - Embedding video in a Flash (FLA) file. Software limited to 16000 frames, but after 4000 frames the audio loses sync.

  • Progressive download video - Storing your FLV files externally. For example insert a link to the file stored on a normal server. This is similar to Apple Quicktime MOVs, which you can play while it continues to download.

  • Streaming video - using Flash Communication Server (a streaming server similar to Real Network's Helix DNA Server, Apple QuickTime Streaming Server, or Microsoft Windows Server 2003 Windows Media Services 9 Series).

For more sites with Macromedia Flash Video content visit:

www.cnet.com - revamped website with video, includes technology news and reviews with most products having a video stream

www.RedBullCopilot.com - a great site demonstrating use of integrated video for enhanced user experience

Of course you might not want to buy the Macromedia suite, so it's no surprise that Microsoft have a free version - "Windows Media Producer". It's actually a collection of utilities rather than a single software solution for producing streaming content. It can convert PowerPoint slides to be streamed over the internet with audio, captions and live links. A bit limited in video processing functionality compared to other products mentioned above, it still is a good way to quickly and easily get your hands on trying out streaming media development. Files can be delivered over HTTP by simply putting the streaming media file (ASX/ASF/WMV) on your standard web/file server then linking to it in your webpage's HTML.

Just remember that you get what you pay for.

To fully implement all the streaming features you'll need the corresponding server "Windows Media Services 9 Series" included in Windows Server 2003. This allows you to do fancy things like autodetect the user's bandwidth and deliver a low/med/hi video stream without any effort and to recover from delayed/lost packets.

Get it from: www.microsoft.com/windows/windowsmedia/technologies/producer.aspx

There are a whole host of other 3rd party programs that do webstreaming and webcasting, but i've found that none of them do everything well. They all do similar things - take an input file and convert it to a smaller version suitable for streaming. Some have more features and controls than others.

There are also plenty of options for compressing just video. These include Torran Interactive's Media Cleaner, Apple QuickTime, DivX, Discrete Cleaner XL, Intel/Ligos Technology Indeo and LSX-MPEG. Some are not designed for webstreaming as you have to download the entire file before you can watch it. If you do decide to use these, stick to MPEG4 formats as they are better for web delivery than MPEG1 or 2.

And just a final note, streaming media files are larger than the standalone video file because they contain metadata about the video stream including additional error checking, additional video streams (such as a lo/med/hi bandwidth versions), and additional indexing information that lets users fast forward/rewind.