Encoding for Mobile Delivery

ProductEdition
Video CloudExpress I, Express II, Express III, Professional, Enterprise

This topic discusses how to choose the best transcode settings for delivering video to mobile devices. It also offers some guidelines when encoding with Widevine.

Note: The ability to create and edit rendition settings is limited to Pro and Enterprise level publishers.

Codecs and containers for mobile devices

Different mobile devices support different codecs and containers for video. Below is a summary.

Android OS devices

Flash Player 10.1 is supported on devices that run Android OS 2.2 and up, and therefore videos in the FLV container will play back on those Android devices. However, for the greatest flexibility and quality, you are better off using the H.264 codec and an MP4 container.

Note: Adobe has announced that mobile Flash will no longer be supported on Android beyond version 4.0 Ice Cream Sandwich.

Apple iOS devices

Apple iOS devices (iPhone, iPad, iPod Touch) do not support Flash or the FLV container. To deliver your video to an Apple iOS device, you need to make sure your video:

  • uses the H.264 codec
  • uses either the MP4 container (for HTTP delivery) or the M2TS container (for Apple HTTP Live Streaming)

For iOS devices, the player uses an Apple HTTP Live Streaming rendition if available, otherwise, it plays an MP4 rendition.

For more details on Apple's recommendations, see this document.

Content delivery options for mobile video

Apple iOS devices like the iPad, iPhone, and iPod Touch support only Apple HTTP Live Streaming and HTTP (progressive download) for delivery of video files. FMS-based RTMP streams are not supported. You need to ensure either that your videos have one or more available renditions that work with Apple HTTP Live Streaming, or that your account is set up to permit HTTP based delivery. Read about Setting Video Delivery Options.

Note that if you deliver video via progressive download to iOS devices (iPhones or iPads), iOS will attempt to download the entire video, even if the viewer never tries to play it. This can increase your bandwidth usage if you have many viewers on iOS devices. You can prevent this by insuring that there are HLS renditions for all of your videos.

Note: A default set of HLS renditions was made available to all Video Cloud publishers on November 20, 2013.

Using Apple HTTP Live Streaming

Video Cloud supports video delivery to Apple iOS devices using Apple HTTP Live Streaming. To use this method for video delivery, a video must have one or more available renditions that use the M2TS container. The iTunes App Store rules call for the use of Apple HTTP Live Streaming for long form video content (greater than 5 Mb or 10 minutes). For more infomation, see Delivering Videos with Apple HTTP Live Streaming.

Enabling HTTP (progressive download) delivery

Your Video Cloud account is usually configured for progressive download (PD) (HTTP), streaming (FMS) (RTMP) based delivery, or universal delivery service (UDS), which enables either PD or FMS delivery. To check that your account is configured for UDS:

  1. In Video Cloud Studio, go to Account Settings > Publishing Settings.
  2. Under Universal Delivery Service, see if it shows Universal Delivery Service: Enabled. If not, click Edit to enable it.

To check what delivery mechanism a particular file is using:

  1. In the Media module, select a video and click Edit.
  2. In the Video Files tab of the Edit Video dialog, select and rendition and check the Delivery Type.

Encoding recommendations for maximum flexibility

If you are like most publishers, you won't want to restrict yourself to just one type of video delivery or just one type of device. You'll want your videos to be available and to look good on every device your viewers might choose (desktop computers, mobile phones, tablets, TV sets). Using Video Cloud's multiple renditions feature, you can create enough renditions of each of your videos so that there are available renditions optimized for each device and situation.

In addition to making sure you use a supported codec, you will want to deliver the videos at an encoding rate that can be expected to play back reasonably well on a mobile device. You need to find a balance that will not take too long to buffer while still delivering a high quality viewing experience.

The encoding settings in the following table provide a broad range, but are just suggestions. The exact settings you choose can depend on the quality of your source files, the nature of the video content, and the ways your viewers consume your content.

Note: The first entry in your Multiple Renditions settings is the Primary Rendition, the first one to be generated in the transcoding process. This should not be an iOS rendition (using the M2TS container), as this will delay the availability of your videos for general playback on other platforms.

Quality Codec Profile,
Container
Video
Bitrate (kbps)
Audio
Bitrate (kbps)
Dimension (WxH)1 Frame
Rate (fps)
Bitrate
Type
Description
Medium H264_BASE, MP4 600 64 480x270
480x360
30 VBR For desktop machines, tablets and other devices with Flash support
Low H264_BASE, MP4 270 64 320x180
320x240
30 VBR
Medium H264_BASE, MP4 425 64 400x225
400x300
30 VBR
High H264_MAIN, MP4 1100 128 640x360
640x480
30 VBR
High H264_MAIN, MP4 1700 128 800x450
800x600
30 VBR
High H264_MAIN, MP4 3000 128 1024x576
1024x768
30 VBR
Cell fallback for audio only H264_BASE, M2TS 962 40 50x502 na CBR For iOS devices
Low H264_BASE, M2TS 200 40 480x224
480x360
15 CBR
Medium H264_BASE, M2TS 400 40 480x224
480x360
30 CBR
High H264_BASE, M2TS 1800 128 960x540
960x720
30 CBR

1. The dimensions are given for both 16:9 and 4:3 aspect ratios. For more information about the relationship between the source file dimensions and the transcode settings dimensions, see Width and Height in Setting Your Transcoding Options.

2. Note that an audio-only rendition will not really have a video bitrate or dimensions, but Video Cloud Studio does not permit you to set values lower than these. The video bitrate and dimension settings will be ignored for an audio-only rendition.

3. When setting renditions for iOS devices, be sure to use the BASE codec container setting, not the MAIN or HIGH settings or the player will report a "This movie cannot be played" error.

We recommend a keyframe rate of 2 in most applications, and two-pass transcoding for all but audio-only renditions.

Uploading video for mobile delivery

When you upload a video, the settings you choose for the upload can override the transcode settings you chose for your account. Therefore, it's important when you upload a video to make sure your upload settings are consistent with your transcode settings. Let's review how to upload a video in the Media module:

  1. Click the Upload Videos button in the Media module.
  2. Browse and select one or more videos to upload from your local hard drive. Note the Upload Settings button toward the bottom of the Upload dialog.
    Upload settings
  3. Click the Upload Settings button. For mobile delivery, make sure you have selected H.264 (MP4) for your output options. Your H.264 (MP4) renditions will be created only if this output option is selected. Regardless of what you select, if your account's transcode settings include one or more renditions with the M2TS container, those renditions will be created.

Widevine encoding recommendations

In addition to the general recommendations for mobile renditions documented above, there are a few additional details to be aware of when encoding videos that will be secured with Widevine.

Consistent Resolution required for Android devices

Widevine clients on Android 4.x devices are not capable of switching between renditions at different resolutions, encoding profiles, frame rates, or audio sampling rates. Our recommendation for publishers who are targeting Android platforms, or who may target Android platforms in the future, is to select a single resolution and create several renditions at that resolution with different video bitrates to allow the Widevine client to switch between them appropriately.

If your account is configured for multiple resolutions with Widevine packaging, a set of Widevine packages for each title with each package containing all of the renditions for a particular resolution is created. It is thus possible for a client to target Android tablets with a larger resolution, while also producing a smaller package better suited to phones. Your playback application is expected to select between the 2 Widevine packages available on the CDN.

We can not explicitly set the audio sampling rate for a particular rendition, but in order to ensure that each of the Widevine renditions has a consistent audio sampling rate, we recommend that the audio bitrate for all Widevine renditions be set at at least 60Kbps.

Producing an 'Audio Only' rendition for iOS devices

Customers seeking approval for a 3G-capable application in Apple's App Store are expected to provide sample video content that includes an "Audio Only" rendition with a total bitrate of 64Kbps or less.

Generating these through Video Cloud is presently challenging. Widevine's packager requires each rendition to have a video stream, and if a rendition is marked as "Audio Only" the Video Cloud transcoders will not add one, which will lead to failures in Widevine packaging. Our current recommendation is that you contact Brightcove Customer Support and have them create a 1 Kbps target video bitrate rendition. Depending on the source video that's uploaded, this will result in a video with very poor visual quality, and a final bitrate around 100 Kbps.

We strongly advise customers to allow extra time in their schedule for App Store approval if you're seeking a 3G approval with Brightcove/Widevine content. Moreover, if at all possible, we prefer customers to "cherry pick" a few pieces of Widevine content with an acceptably low bitrate to include with their application when it's submitted to Apple.

Related information

Post new comment

The content of this field is kept private and will not be shown publicly.
0

Comments