Using Multi-bitrate Streaming

Product
Video Cloud
Applies to Roles
Publisher
Version
Brightcove 5
Modules
Media Module
Edition
All

The Video Cloud multi-bitrate streaming feature improves a viewer's experience by enabling you to deliver videos with the resolution and bit rate that best matches the viewer's connection speed. The videos in your Media Library can include one or more renditions encoded at different bit rates and sizes. The Video Cloud player automatically selects the highest quality rendition that the viewer's download connection speed can support, taking into account the rendition's resolution and bit rate.

The Video Cloud multi-bitrate streaming feature improves a viewer's experience by enabling you to deliver videos with the resolution and bit rate that best matches the viewer's connection speed. The videos in your Media Library can include one or more renditions encoded at different bit rates and sizes. You have fine-grained control over the settings for each rendition, including codec, codec profile, video and audio bit rate, width and height, frame rate, and more. When you upload videos, the Brightcove Adaptive Encoding Engine can automatically create multiple renditions from the source video. The Video Cloud player automatically selects the highest quality rendition that the viewer's download connection speed can support, taking into account the rendition's resolution and bit rate. You can use multi-bitrate streaming with on-demand video, live video, or live video with DVR.

How multi-bitrate streaming works

When a player plays a multi-bitrate streaming video (one that has multiple renditions available), Video Cloud selects the best available rendition, considering first, the screen height of the player and second, the viewer's detected bandwidth. Video Cloud uses this procedure to select the best rendition:

  1. Eliminate renditions with a bit rate greater than 85% of the detected download connection speed.
  2. From the remaining renditions, select the rendition with the highest bit rate, taking into account possible loss of quality if there is a mismatch between the rendition dimensions and the size of the video display.

For example, suppose the bandwidth detected is 768 kbps. We have the following renditions available:

  1. 1280x960 1.8 Mbps
  2. 640x480 1200 kbps
  3. 640x480 800 kbps
  4. 480x360 512kbps
  5. 320x240 350 kbps
  6. 320x240 264 kbps

Rendition #1, #2 and #3 are eliminated because they have a bit rate greater than 85% of the detected 768 kbps bandwidth. Rendition #4 is selected, because it is the highest bit rate rendition remaining.

Note: Multi-bitrate streaming is supported only in AS 3.0 player templates. If you play a multiple rendition video in an AS 2.0 player template (available to customers prior to Brightcove 3), the player chooses the rendition closest to our recommended specification of 480x360 resolution, 512 kbps bit rate.

Example: Switching to Full Screen

The Video Cloud players include a button that viewers can click to switch to a full-screen view of the video. (The full screen button is present by default, but you have the option to remove it from a player.)

Suppose you have an in-page player that is 480x360 pixels, and the player is configured to use streaming to play a video that has available six multi-bitrate streaming renditions. The viewer clicks the Full Screen button in the player. The size of the player is now 1280x960; the video switches over to the highest quality, 1280x960 1.8 Mbps rendition, assuming:

  • the video is delivered with streaming; progressive download doesn't support switching in mid-stream; and
  • the viewer has at least 2.12 Mbps of download connection speed (so that the 1.8 Mbps specified by the highest quality rendition is not more than 85% of the detected bandwidth).

Remember that you can disable full-screen mode for a player if you want to prevent high resolution, high bit rate renditions from being served.

For more examples of rendition switching behavior, see Multi-Bitrate Rendition Switching Logic.

Rendition selection without bandwidth detection

Video Cloud handles multi-bitrate streaming differently, depending on whether you deliver your videos with streaming or with progressive download:

  • With streaming, Video Cloud can adapt in mid-stream, switching dynamically to a different rendition when the viewer, for example, switches from small screen to full screen.
  • With progressive download, Video Cloud attempts to identify the viewer's download bandwidth and selects the best rendition when playback begins. Because the rendition is continuously served to the viewer's download cache, we can't smoothly switch to a different rendition once playback has begun.
  • With either streaming or progressive download, if the download bandwidth isn't detected, Video Cloud delivers the rendition closest to 704 kbps.

Dynamic streaming

Video Cloud players using streaming can take advantage of advanced smooth streaming capabilities enabled by Flash Media Server 3.5 and Flash Player 10. Dynamic streaming improves bandwidth detection, while also detecting dropped frames, which are a symptom of too-high CPU usage on the client. Dynamic streaming is enabled by default in all players; if you want to disable these capabilities in a player, you need to modify the player's publishing code, removing the dynamicStreaming player configuration parameter from the publishing code.

Creating multiple renditions for multi-bitrate streaming

When you use the Media module to upload any video file that isn't FLV, you can click Edit Settings in the Upload dialog to control whether to create multiple renditions for multi-bitrate streaming. If the video files you are uploading are all FLVs, the Edit Settings option is not available. See Using Multi-Bitrate Streaming with Batch Provisioning for information about what to do if you want to upload your files using batch provisioning or if your video files are already in FLV format. Also note that Video Cloud Pro and Enterprise publishers can use the Media API to upload a video, which Video Cloud can transcode into multiple renditions for multi-bitrate streaming.

When you click Edit Settings, the Upload Settings dialog displays:

Upload Settings

In the Upload Settings dialog, you can choose for your video file to be processed as:

  1. a single rendition
  2. multiple renditions

Transcode settings

If you select a single rendition, Video Cloud automatically transcodes each non-FLV video you upload into a single file. You can choose whether the resulting transcoding file should be a VP6 (FLV) or H.264 (mp4) file.

If you select multiple renditions, Video Cloud transcodes each non-FLV video you upload, creating up to six different renditions of your video. Renditions are created in the order listed on the Video Cloud Studio's Account Settings: Transcode Settings page for your account. The rendition listed first is called the primary rendition. See Standard Transcode Settings for a listing of the default settings we use.

On the Video Cloud Studio's Account Settings: Transcode Settings page, you can view and modify the specific settings you want Video Cloud to use when we transcode videos that you upload. Read more about setting the transcode options for your videos. (Note that only Video Cloud Pro and Enterprise publishers can modify their transcode settings in the Video Cloud Studio.)

Preserving an H.264 source

If your source video file is in H.264 format, you can choose to keep your original source file as an available rendition. This option lets you retain an H.264 master that can be at an even higher level of quality than the highest-quality rendition from Video Cloud. In addition, when you select this option, your H.264 source video is available immediately, as soon as the upload is complete, and you don't have to wait for the video to be transcoded before it is available in the Media module and in your players.

Video transcoding process and queueing

Video Cloud transcodes your video files using variable bit rate, so the actual bit rate will vary a bit from these figures. Also note that the maximum bit rate is limited by the quality of the file you upload:

  • The source file's average video bit rate must be at least 75% of the requested rendition's video bit rate, or the rendition will not be created. For example, if you upload a file with a video encoding rate of 750 kbps, Video Cloud will create renditions at 264 kbps (200 kbps video), 350 kbps (286 kbps video), 512 kbps (448 kbps video), and 800 kbps (672 kbps video), but will not create a 1200 kbps (1072 kbps video) or 1800 kbps (1672 kbps video) rendition.
  • A rendition will not be created with dimensions greater than the source file's dimensions. For example, if you upload a file that's 960x540 and 1500 kbps, the highest-quality rendition will be 960x540 and not 1280x960.

In order to provide a better level of service for uploads that need transcoding, Video Cloud maintains two separate queues for video transcoding. The first queue transcodes for single renditions of videos, user-generated content videos, and the primary rendition of multiple rendition videos. If you're using the default transcoding settings, the primary rendition is the 480x360 512kbps rendition. Thus, when you upload a file for multi-bitrate streaming, Video Cloud transcodes the 480x360 512kbps rendition in this first queue. As soon as this primary rendition has been processed, the video becomes available in the Media module and can be added to a player. The remaining renditions are transcoded in a second queue, so that they do not interfere with the higher priority transcoding in the first queue. As the transcoding of the other renditions is completed in the second queue, they too become available to the players in which the video is programmed. Note that transcoding higher bit rate renditions can take a considerable amount of time. The exact time it takes to transcode a rendition depends on the file size, rendition bit rate, and server load.

As part of the transcoding process, Video Cloud automatically creates a video still and thumbnail image from the video file and assigns it to the video (unless the video already has these images assigned to it). The image selected is a frame at the 50% mark in the video. You can use the Media module to capture a different frame to use as your video's video still and thumbnail image, or you can replace these images with other images you choose, using the Edit Video dialog in the Media module.

Viewing multi-bitrate streaming renditions in the Media module

After you have uploaded renditions, you can view information about them in the Media module. Select a video in the Media module; at the bottom of the Details pane on the right, under Multi-Bitrate Renditions, the Media module displays how many renditions a video has, together with the resolution and bit rate for each rendition. Click on the rendition information to preview the video in that resolution.

You can also view more detailed information about renditions using the Video Cloud Player Debugger.

Tags
bitrate, dynamic delivery, encoding, mbr, transcoding