Category: Streaming Media

Video Compression for Flash, Apple Devices and HTML5

By Larry B, July 28, 2011

I’ve been enjoying Jan Ozer’s new book, Video Compression for Flash, Apple Devices and HTML5. It’s the comprehensive how-to tutorial on video encoding you’d expect from Jan, as well as a lot of insight about best practices and all the things you should be paying attention to when you’re publishing video online.

Chock full of examples, test results, tables of useful data, and technical information you can put to use right away – this is a great resource for anyone: novice to expert.

Part of what I like is Jan’s no-nonsense approach as a practitioner. For example, after a detailed analysis of publishing using HTML5, he cuts to the chase:

HTML5’s value proposition today, and for the foreseeable future, is “encode in more formats that offer no advantage over H.264, and play on fewer computers, and distribute your on-demand content to vastly fewer viewers with lower quality of service, less features and a reduced ability to monetize than you can with Flash or Silverlight. Oh, and forget live.”

Don’t get me wrong – he still covers everything you need to know (in great detail!) about targeting HTML5 players. But he explains in practical terms what it really means to do so, and when and why you ought to.

Highly recommended.

HTML5 Video – It’s a long way ’til JQuery

By Larry B, September 14, 2010
The hype around HTML5 video is finally getting pierced with a dose of reality.  That reality, as far as I can see, is that HTML5 is a nascent idea of something that will undoubtedly be useful some day. But at the moment, for many of us publishing video to the 'Net, it's more of a problem than a solution. Some great thoughts on the issue have come from Jan Ozer at the Streaming Learning Center, and technical analyst extraordinare at In his article, The Five Key Myths About HTML5, Jan points out that in practice, supporting HTML5 means encoding multiple formats of everything, an inability to do live streaming or on-demand stremaing using a true streaming protocol, working around numerous browser incompatibilities, and no adaptive/dynamic streaming. He summarizes:
  • No major media sitepresents HTML5 as their primary viewing optionHTML5-compatible browser penetration is low, and will continue to be well into the future
  • Though HTML5 is great for low volume video playback, it lacks many critical features currently available in plug-in based technologies
  • Full HTML5 support will require 2 or 3 times the encoding chores of Flash support
Longtail Video's Jeroen Wijering, maker of the popular JW FLV Player and JW Silverlight Player wrote in HTML5 Video: Not Quite There Yet:
The video tag is still in its infancy and misses certain core functionalities. As developers demand these features, browser vendors are tempted to implement incompatible solutions instead of agreeing upon standards. These hasty developments, already underway, are setting HTML video up for the same chaos  as HTML styling in the pre-CSS era.
We remember those days...multiple coding and testing for every possible brower combination, and any web application with an interesting, innovative, or especially responsive UI (using CSS and DOM-manipulation) was fragile and expensive to maintain. Eventually, standards got better and better-supported, and libraries like ExtJS and JQuery provided abstraction that made authoring powerful and reliable applications easier.  Things in a web app that used to be done with a Flash or Java applet UI are now routinely done using these Javascript/CSS libraries.

So there's hope for HTML5 video, but it's not there yet and it won't be there for years. The hype around HTML5 isn't matched by the reality - which is that it's a pain that complicates our work in streaming; and that Flash or Silverlight are going to be better choices for most purposes for some time to come.

In the direction of standard libraries to make life easier for the streaming publisher, Longtail Video has just released a Beta of their JW Player 5.3, which seamlessly integrates Flash and HTML5 support.  It's got a whole new API for embedding and Javascript event handling; and it lets you set the HTML5 failover in either or two options:

  1. Use HTML5 wherever it's supported, otherwise failover to Flash
  2. Use Flash unless it's not supported, then failover to HTLM5.
I'll be testing the 5.3 Beta player over the next few days and will post my impressions.

More on live mobile streaming

By Larry B, May 27, 2010

Our adventures in live mobile streaming continue. If anyone should happen to read this post on Thursday May 27, you can see the results of this effort at

So what are the lessons learned so far? Here’s a preliminary list in no particular order:

  • Setting up the server side of things is the easiest part. Configuring for FMS delivery from Limelight, and for Wowza on Amazon EC2 was a breeze. Multiple bitrates, the RSS playlist for JW Player, the SMIL playlist for Wowza….once you figure out the moving parts, it works almost just like it’s supposed to.
  • Adaptive streaming from Limelight and other CDNs that use the ‘fcsubscribe’ method for load-balancing can cause a problem when switching to a streams that comes from a new edge node. More on this later…
  • Mobile devices: Make sure you’re encoding H.264 with Baseline profile level as low as you can go.  iPhones and iPads turned out to be the easiest to support fully.  Blackberries and Droids work…or they don’t. It seems to depend on the model phone, and on the network you’re on.  My personal Blackberry gets the RTSP stream just fine.  Others around the office with different Blackberries can’t play the stream. Same with Droids – some people are able to play it, some not. I haven’t discovered why just yet.  Codec issues are a likely possibility, but it’ll take some digging to find out. I have not found any useful documentation on the differences between Blackberry models, in terms of live video streaming support.
  • Encoders – this has been the headache of all headaches and took many many man-hours to get right.
    • Encoding three bitrates (100k, 500k, 1000k) to two different CDNs (Limelight, Wowza/EC2) takes a lot of horsepower.
    • One brand new 8-core Cisco machine with a brand new Osprey 240 proved unsuitable for capturing video at all.
    • Adobe Flash Media Live Encoder (FMLE) and Telestream Wirecast on Windows both depend on your display hardware and drivers. If you’re planning a headless encoding system, plan extra time to get it all working.
    • A 2-core IBM/Windows/Osprey system running FMLE gave us better encoding performance than an 8-core Mac Pro/AJA system running Wirecast.
    • All of the above systems had issues with audio/video sync, either being off from the start, or drifting as the webcast went on. Only on the Mac/AJA system were we able to resolve these in time for a successful webcast.
    • Ordinary desktop PC running consumer USB video capture devices are easiest to set up and are the machines most likely to work right off the bat.  No audio/video sync issues occurred with these, even though we were capturing video on one of a couple $50 USB
      devices and audio using the built-in audio support on the PC.  The more expensive and industrial-grade the hardware, the more trouble it gave us.
    • Our final encoding configuration included an 8-core MacPro/Wirecast for the 1Mbps and 500kbps streams, a single-core desktop PC running FMLE for the 100k streams, and a dual-core desktop PC with FMLE for capturing a 1.2Mbps H.264 archive file.
    • Some of our partner schools are using our infrastructure for mobile streaming. They’ve got Digital Rapids TouchStream appliances, and have had no encoding issues doing multiple bitrates from HD down to 3G/mobile. I’m quickly becoming a big fan of purpose-built appliances for encoding.

That’s about it for now…I’ll follow up on some of these as we do some analysis and learn more.

Streaming Flash Video With Amazon Cloudfront

comments Comments Off
By Larry B, February 22, 2010

Since Amazon’s AWS is now supporting RTMP Flash streaming (on-demand only, so far) through its Cloudfront CDN, I thought it was time to write a quickstart guide for those who hadn’t tried it yet.

You’ll find How to Get Started with Amazon Cloudfront Streaming on The article walks through the steps for getting signed up and streaming in no time. A working example of the Cloudfront configuration created in the article is on this site at Flash Streaming With Amazon Cloudfront.

There’s lots of room for analysis of Cloudfront’s costs, performance, degree of control, and ease of use compared to other, more traditional CDNs.  This article doesn’t talk about any of that. What it covers is what you need to know to get signed up, get it configured, and start streaming.