Advanced HTTP Dynamic Streaming Solutions
RealEyes Media & Why HTTP Dynamic Streaming
RealEyes Media is a developer lead digital consultancy who focuses on on digital media delivery and software application development, consultation, & training. RealEyes builds interactive software solutions specializing in streaming media. If you need a solution on the web, desktop, mobile or connected device we have the expertise to realize your vision.
In the current technical environment it has become evident that media delivery across devices & platforms is in a state of transition and growth. This growth includes not just the devices and users that are consuming the media, but the technologies and transports that are providing the media across the board. Technologies like HTTP Dynamic Streaming (HDS) are blazing the trail that will ultimately lead the consumer to their content. Currently the capabilities provided by HDS provide developers and content providers with the broad access that is required to reach different devices and markets.
What is HTTP Dynamic Streaming?
HTTP Dynamic Streaming or HDS gives the content provider the ability to deliver packaged streaming media over the HTTP protocol to multiple platforms while saving on server infrastructure, bandwidth and administration costs. HDS can also remove the need need for expensive and or high maintenance media servers. The recorded and live content is packaged in a fragmented format allowing for the video to be delivered to the consumer in a streaming, seek-able, and multi-bitrate format. In addition to the high level of delivery options, HDS can be packaged with DRM to protect the media and can be deployed to CDNs to allow for even greater user experience while consuming media.
HTTP Dynamic Streaming Limitations
The work we have been doing with HDS packaged content and delivery has opened the doors to extend the use and integration of HDS packaged content. There are two stumbling blocks that we have encountered with the current state of HDS. Both problems center around the reliance on web server & web server extension to deliver the HDS packaged content. HDS requires an Apache web server & the HTTP Origin Module to deliver the media content to client players. The (simplified) playback sequence for HDS content is:
- The client requests an .f4m file that provides the location and initial data for playback.
- From that data the client player then determines what segment/fragment to request for the current timecode.
- The Apache web server hands this request off to the HTTP Origin Module to extract the needed F4V fragment data from the segment from on the web server and returns that to the web server.
- The Apache web server then provides the response to the client player.
- The client player then parses the F4V content into a playable format and plays it back.
The second stumbling block is playback of HDS content from a local file system. Currently there is no way to extract the F4V fragment data from the packaged segment files. These two use cases highlight the current deployment and usage limitations for HDS with the reliance on Apache and the Origin module. Removing the reliance on Apache and the Origin module not only allows for a greater number of and more flexible deployment options, but can simplify deployments and allow for more cost effective storage and delivery.
Removing the Limitations
The first step to extending the delivery options for HDS content is to get the packaged content into a format that doesn’t require the HTTP Origin Module. This means extracting the fragments from the segment files. RealEyes has created a tool set that can extract the fragments from an HDS packaged file set. The fragments are extracted in the exact same manner as the HTTP Origin Module meaning that the reliance on Apache and the Origin module has been removed. Once the fragments have been extracted, they can be deployed to any server that can respond to HTTP requests. This has been tested with Amazon S3, IIS and Apache (without the origin module installed) and has worked without issue.
The next step is local playback of HDS content. Once we have the fragments, we can play that content back, but for long-form media content this can mean hundreds of fragment files. A set of ActionScript3 libraries have been created to allow for the download and packaging of HDS content for local playback. The download can be accomplished from normal HDS delivery or from HDS content that has had the fragments pre-extracted. As the fragments are downloaded they are written to disk into a file format that allows for interrupted downloads as well as playback during download on windows and mac operating systems.
Local playback while downloading is accomplished through an additional ActionScript3 library created specifically for read and write operations on multiple files asynchronously and has been tuned for high performance. Playback has been tested with short-form video content as well as feature length video content. Great pains were taken to work within the file formats and specifications so things like DRM still work even with content that has had fragments extracted, downloaded and saved locally for playback.
What can you do with it?
Some of the use cases that are possible with the extended deployment and use with these tools and libraries include:
- Local playback of HDS content
- Simplified content deployment
- Content deployment to cost effective services (Amazon S3)
- Simultaneous download and playback of long-form video
- Live HDS Streaming and download for DVR-like for local playback
- Bandwidth and storage space savings
What is Next?
Plans for the toolset include creating web services for fragment extraction, updating the libraries and tools to make sure they work with OSMF 2.0 (currently they have been tested on OSMF 1.6). Although HDS is a powerful and flexible way to deliver content, we are continuing to embrace formats and specifications that increase the reach and availability of digital media. We are an MPEG-DASH promoter and plan to work with this format heavily. We are always looking to the next development and hope to be part of the innovators pushing media delivery to the next level.