Using Multi-bitrate Streaming

Applies to Roles
Publisher
Version
Brightcove 4
Modules
Media Module
Edition
Express, Pro, Enterprise

Brightcove's 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 Brightcove 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.

How multi-bitrate streaming works

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

  1. Eliminate renditions with a height greater than 120% of the player height.
  2. Eliminate renditions with a bit rate greater than 70% of the detected download connection speed.
  3. From the remaining renditions, select the rendition with the highest bit rate.

For example, suppose the player is 480px in height and the bandwidth detected is 580kbps. We have the following renditions available:

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

Renditions #1, #2, and #3 are eliminated because they have a height larger than 120% of the player's 480px height. Rendition #4 is selected, because its height fits within the maximum and 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, 512kbps bit rate.

Example: Switching to Full Screen

Brightcove 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 the four 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.58 Mbps of download connection speed (so that the 1.8 Mbps specified by the highest quality rendition is not more than 70% 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.

Multi-bitrate streaming for streaming and progressive download

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

  • With streaming, Brightcove 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, Brightcove 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. Furthermore, if the download bandwidth isn't detected, Brightcove delivers the default 480x360, 512 kbps rendition.

Dynamic streaming

Brightcove 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. To enable a player to use these capabilities, you need to modify the player's publishing code, adding the dynamicStreaming player configuration parameter to 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 Brightcove Pro and Enterprise publishers can use the Media API to upload a video, which Brightcove 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

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

If you select multiple renditions, Brightcove transcodes each non-FLV video you upload, creating up to six different renditions of your video with these dimensions and approximate bit rates:

resolution (4:3) resolution (16:9) bit rate encoding passes
1280x960 1280x720 1800kbps total; 1672kbps video, 128kbps audio one pass
640x480 640x360 1200kbps total; 1072kbps video, 128kbps audio one pass
640x480 640x360 800kbps total; 672kbps video, 128kbps audio one pass
480x360 480x270 512kbps total; 448kbps video, 64kbps audio one pass
320x240 320x180 350kbps total; 286kbps video, 64kbps audio one pass
320x240 320x180 264kbps total; 200kbps video, 64kbps audio two pass (FLV/VP6)
one pass (MP4/H.264)

As with single rendition, you can choose whether the resulting transcoding files should be VP6 (FLV) or H.264 (mp4) files.

Preserving a 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 Brightcove's highest-quality rendition. 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

Brightcove 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 bit rate must be at least 75% of the requested rendition's bit rate, or the rendition will not be created. For example, if you upload a file with an encoding rate of 750 kbps, Brightcove will create renditions at 264, 350, 512, and 800 kbps, but will not create a 1200 or 1800 kbps 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, Brightcove maintains two separate queues for video transcoding. The first queue transcodes for single renditions of videos, user-generated content videos, and the lowest bit rate rendition of dynamic deliver videos. Thus, when you upload a file for multi-bitrate streaming, Brightcove transcodes the 480x360 512kbps rendition in this first queue. As soon as this 480x360 512kbps rendition has been processed, the video becomes available in the Media module and can be added to a player. The higher bit rate 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, Brightcove automatically creates a video still and thumbnail image from the video file and assigns it to the video. 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 Dynamic Delivery 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.

Viewing debug information for multi-bitrate streaming in the player

If you right-click in the video display of a Brightcove player, one of the menu options is Show debug info. Selecting this option displays the following information:

Rendition The file name of the rendition being played
Dimensions The dimensions of the rendition being played
Encoding The average bit rate, in kbps.
Detected bandwidth The viewer's bandwidth, from which the player determines which rendition to play back.

 

Tags