RTMP in the Age of HTTP Video Streaming: Don't Count it Out
Think RTMP is out of date? Despite the ubiquity of HTTP video streaming, there are still use cases where RTMP is the standard.
Given the increasing popularity of and support for HTTP video streaming, it can be tempting to view Real Time Messaging Protocol (RTMP) streaming as antiquated. But there are several instances in which working with RTMP still makes a lot of sense. When Macromedia first introduced RTMP in 2002 with Flash Player 6, the brand-new Macromedia Flash Communication Server MX (FCS) was required to stream the nascent Flash Video (FLV) format, regardless of whether the stream was live or VOD.
However, licensing costs for FCS for were high (up to $5,000 per server) and as a result CDN costs were high compared to other proprietary streaming formats. Some producers in the industry referred to the cost of RTMP streaming as the “Flash tax.” But Flash Player was near-ubiquitous on desktop browsers for well over a decade, with far greater adoption than other plug-ins. Streaming server technology, though, has historically been more difficult for web developers to implement, and simpler HTTP delivery has generally been easier and more cost-effective to deploy. In 2003, Macromedia enabled Flash Player 7 to support HTTP delivery of FLV files, allowing integrators to use standard web server technology for their online video deployment.
So, in many respects, RTMP as a VOD delivery transport hasn’t been a requirement for web video for more than a decade. As a video solutions architect, I look to business requirements as the driver for the majority of sound video decisions. And, even in 2014, RTMP is the de facto standard for the following use cases:
Publishing live streams from software/hardware encoders: Nearly every streaming device supports RTMP to publish to CDN providers and streaming servers. Some native mobile apps even use RTMP libraries to publish a mobile camera’s live video.
Near-instantaneous seeking/playback: One of the benefits of RTMP streaming is its “enhanced seek” capability. With real-time streaming transport, a player can seek to any point in the video with less buffering than HTTP delivery. However, you need Flash Player on the desktop to enjoy this feature, and as such, it’s not an option on mobile browsers. HTML5 browsers use HTTP range requests to facilitate faster seek for VOD files.
Content protection: RTMP can facilitate varying levels of content protection, from obfuscation to true DRM. For desktop browser playback, the browser does not cache RTMP streams.
Adaptive streaming: One of my preferred uses of RTMP is adaptive streaming playback, wherein multiple bitrates and resolutions of content are provided to a video player, enabling the best resolution to play given current network speeds. Certain HTTP adaptive streaming technologies, such as HLS and MPEG-DASH, enable similar delivery, but RTMP can be more responsive with respect to switching from one bitrate to another. Unfortunately, there is no standard for HTTP adaptive streaming across browsers that support HTML5 video. As such, Flash-based rendering of adaptive streaming still remains a requirement for adaptive streaming.
Live streaming playback: While live streams don’t need to be adaptive, the same principle of packetized video segments applies to any live stream playback. Nearly all live streaming events for in-browser desktop playback require a video player that supports Flash-based rendering and RTMP playback. Apple Safari on iOS natively supports HLS, and fortunately, all modern streaming servers, including Wowza Streaming Engine, support RTMP and HLS packetizing. The requirement for Flash Player with live streaming will only change when MPEG-DASH becomes as ubiquitous as Flash is today. If Internet Explorer 8, 9, and 10 support is required for your live streaming deployment, RTMP streaming will remain a necessity. Also, if you need near-zero latency on a live stream, HTTP streaming will almost certainly not meet your needs while RTMP can; HTTP mechanisms require more packets to accumulate on the server before sending them to the video player.
In summary, if your video workflow involves live streaming or any packetized video deployment, RTMP is a key component to the success of the video experience. HTTP delivery has already replaced most Flash-based VOD deployment of video, but HTTP-based video cannot service all of the uses cases of RTMP-based video.
This article appears in the November/December 2014 issue of Streaming Media magazine as "RTMP in the Age of HTTP Streaming."
Was Adobe's decision to remove FLV and F4V export from Creative Cloud the last gasp for Flash? No, and there are better tools around, anyway.
TV viewing is changing at a frantic pace, with younger viewers leaving pay TV and advertisers looking for a way to get their attention.