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.
, and technical analyst extraordinare at streamingmedia.com
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
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
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
you set the HTML5 failover in either or two options:
- Use HTML5 wherever it's supported, otherwise failover to
- 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.
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
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
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 http://harvard.edu/commencement2010/
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.
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 streamingmedia.com. 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.