How to Encode and Deliver to Multiple ABR Formats

Article Featured Image

This is shown in Figure 3. Some encoders start with the mezzanine file, and output the packaged HLS files without saving the MP4 files. Others might save the MP4 files, but can’t use them as the source files for the subsequent packaging to DASH. You need a two-stage workflow that first saves the MP4 files, then uses those files as the starting point for subsequent ABR packaging. Otherwise, you have to start from scratch with the MP4 files, which costs time and money.

For example, with Telestream Vantage, you can create the MP4 files and HLS packaging, then input the MP4s and package them for DASH later on . Other service providers offer a packaging-only product. Harmonic’s product is aptly called ProMedia Package, Elemental Technologies offers Elemental Delta, and Imagine Communications offers Telurio Packager. Also worth checking out is the eponymous suite of tools from Unified Streaming, which includes the Unified Packager. All these tools work with previously encoded MP4 files to create the necessary packaging.

DIY shops also have multiple tools to integrate into their workflow. For HLS, Apple offers two tools: the Apple Media Stream Segmenter—which converts MPEG-2 transport streams to HLS output—and the Apple Media File Segmenter, which converts MP4 files to HLS output. For producing DASH files, you have a range of options, including the edash-packager, MP4Box, the Rebaca MPEG DASH Segmenter, castLabs Dash Encrypt Packager, and the Bento4 MP4 and DASH Class Library, SDK and Tools. As is the case with all lists in this article, this is not an exhaustive list of providers, nor is it meant to be, so if you know of any additional options please list them as a comment to the online version of the article.

single vs. two-step encoding workflow

Single vs. two-step workflow (HLS logo courtesy of Encoding.com) 

If you’re transcoding/packaging with a SaaS cloud provider, check to see if that provider offers special packaging-only pricing. Beyond the 75 percent off for transmuxing MP4 to HLS packaging offered by Zencoder, which can only be done when actually producing the MP4s, I’m not aware of any that do. Absent such an offer, creating DASH ABR packaging for your existing library would cost the same as a complete library re-encode, and depending upon the size of your library, you might be able to save significant money by packaging yourself.

How, then, should you choose among the available options? As with dynamic packaging, check capabilities first. The more exotic your DRM, caption, or advertising needs, the fewer options you’ll have. Obviously, input/output format support will be a big differentiator, as will the technological savvy necessary to actually implement the products or tools into your workflow. Then, lastly, consider price.

Formulating Your Adaptive Group

To a degree, the concept of a single set of MP4 files packaged with different ABR formats for different targets assumes that a single set of files can adequately serve the different targets. That is, you create one set of files and package them in HLS format for iOS/ Android delivery, and DASH for desktop delivery. Is this the best approach?

It really depends upon who you ask. On one side, you have Netflix, who reportedly creates up to 120 file versions for each source file to serve more than 900 target players. This was reported in December 2012, before 4K and HEVC, so you would assume that the numbers have only increased.

On the other side are the legion of streaming producers who create one set of files, typically patterned on the recommendations contained in Apple Tech Note TN2224. As you can see, Apple recommends encoding lower-quality streams targeted at mobile devices using the Baseline profile to maintain compatibility with older iPod Touch (as old as second-generation) and iPhone models (3G, 3GS, 4). The Tech Note then recommends producing all other files save the highest resolution file with the Main profile, so the files are compatible with iPad versions 1 and 2.

Apple’s recommended adaptive group in TN2224 

Apple’s recommended adaptive group in TN2224 

For the record, I should note that since Google doesn’t track the hardware capabilities of every Android smartphone and tablet on the market, the company recommends encoding using solely the Baseline profile. In my experience, however, few Android developers seem to have adapted this approach, instead assuming that most Android devices will have similar playback capabilities as their like-generation iOS device.

Some web producers argue that the TN2224 schema penalizes those watching on computers/notebooks and OTT devices, since these devices can display video using the High profile. The tests that I’ve performed indicate that this is content dependent. Specifically, if you’re encoding talking head videos, you won’t see much difference between files encoded using the Baseline and High profile; the differences are more noticeable for sports and other higher motion videos.

One approach to ensure a high quality 640x360 stream for desktop/notebook playback is to encode the 1200Kbps stream using the Main profile rather than Baseline. This will recapture most of the qualitative difference between the Baseline and High profile, though it would also shut out viewers watching on the aforementioned older devices. Since most desktops and notebooks connect via Wi-Fi or Ethernet, you would expect that they would be at least able to access the 1200Kbps stream, if not a higher quality stream.

Another approach would be to create an 1800Kbps stream at 640x360 using the Main profile exclusively for desktop and notebook viewing. While this creates another stream, it’s certainly more efficient than a complete set of streams encoded using the High profile. In addition, the 640x360@1800Kbps stream would also be a great option for those watching via 4G or Wi-Fi on newer smartphones or tablets compatible with the Main profile. As mobile viewing grows, it’s increasingly important to offer a full range of options to these viewers.

A third approach, which will become increasingly popular over the next 12–24 months, would use only the Main and High profiles in the adaptive group, and exclude the baseline. This recognizes the dual realities that the installed base of Baseline-only devices is shrinking rapidly and that owners of these older devices probably aren’t a desirable demographic anyway.

Whatever approach you take, the key point is this. Since you’re likely to be supporting multiple ABR groups in the near term, your encoding and storage costs are set to increase significantly, particularly if you produce ABR files and deliver statically. One way to limit your expenses is to use a single adaptive group, packaged differently for your different targets. While this could prove very complicated for producers who need advanced features such as captioning, advertising support, and DRM, it should be possible for most other developers. Remember, at least from an encoding perspective, what’s right for Netflix isn’t necessarily the best option for you.

This article appears in the 2016 Streaming Media Industry Sourcebook. 

Streaming Covers
for qualified subscribers
Subscribe Now Current Issue Past Issues
Related Articles

One to Many: Streaming Live Video to Multiple Platforms

If you're delivering a live video stream, you likely want to publish it on as many platforms as possible. Here's the best hardware and software to pull it off.

Containing Costs: How Publishers Can Save Money on ABR Encoding

Many companies spend too much on adaptive bitrate encoding. In turns out there's a pricey way to go about it and a cheaper way. Dynamic packaging to the rescue!

How to Encode Live and On-Demand Video Using HEVC

This session explores the current status of HEVC, identifying options for encoding live and on-demand video using HEVC and discussing player options in the streaming and OTT markets.

How to Encode to HEVC: A Simple Guide for H.265 First-Timers

It's time to get started. Here's a look at best practices for encoding to H.265/HEVC with the MainConcept and x265 codecs

How to Encode Video for HLS Delivery

If you need to deliver to mobile devices and via OTT platforms, you need to deliver HTTP Live Streaming (HLS). Apple provides plenty of advice for compressionists, but here are some tips and tricks for encoding and testing your HLS files

How to Encode Video for HTML5

Learn the essentials for creating H.264 and WebM video with this presentation (naturally, there's a little more emphasis on H.264 than WebM).

How to Encode for Apple iOS Devices

Jan Ozer explains how to get video on Apple's mobile devices in this hour-long presentation.

Companies and Suppliers Mentioned