Delivering Live Streaming Video with DVR

This document describes the steps for delivering live streaming video with DVR through your Video Cloud players. For a list of all the options available from Brightcove for delivering live streaming video, see Delivering Live Streams.

DVR is a player feature, powered by Akamai HD, that makes a live streaming video act like it was being played through the viewer's digital video recorder. If you are streaming a live event, DVR controls allow your viewers to scrub back in time, while the live event is still in progress, to replay a highlight or check out a clip they may have missed.

Note that your archived Live streams will be removed from the CDN after 7 days. For customers that want to keep Live DVR content for longer than a week, we recommend that you create a video-on-demand asset in your Video Cloud account from your Live DVR. This is typically done by capturing your live event locally during a live event and then uploading it as a regular asset when the live event completes.

Player with DVR active
Video Cloud player displaying live video with DVR

The Video Cloud live streaming with DVR feature enables you to load and manage a live stream connection in a Video Cloud player without any custom development or complex integration. Since the Video Cloud live streaming integration is built on the same framework as on-demand video, you can take advantage of the rest of Video Cloud's service capabilities. That includes full metadata, scheduling, geo-restriction, localized players, and the ability to mix on-demand and live videos together in the same playlists.

Live streaming support with DVR is available only for Video Cloud Enterprise publishers. Live streaming video support without DVR is available for Video Cloud Pro and Enterprise publishers. While live video with DVR is powered by Akamai HD, you don't need to use Akamai as your CDN for video on demand in order to present live video with DVR.

Delivering live video with DVR: Main Steps

Here are the steps you need to take to deliver live video with DVR through your Video Cloud players:

  1. Enable your Video Cloud account for remote assets and request your Live DVR credentials.
  2. Choose an encoding software solution.
  3. Configure the EntryPoint in your encoding software.
  4. Create a video in your Video Cloud media library for the live stream. This must be a video with remote assets.
  5. Program a player with live streaming.

Enable your Video Cloud account for remote assets and request your Live DVR credentials

To deliver live streaming video with DVR to a Video Cloud player, you must enable your Video Cloud account for remote assets. Remote assets are disabled by default. Contact Brightcove Customer Support and ask to have your account enabled for remote assets. As well, read more about Video Cloud's remote assets feature in Creating Videos with Remote Video Files.

When you contact Brightcove Customer Support, tell them you are interested in streaming a live event using DVR.  Customer Support will create Live HD with DVR stream settings for you and will send you the following information for your live stream:

Setting Description
Primary Entrypoint RTMP URL
Backup Entrypoint RTMP URL
Username user name for entrypoints
Password password for entrypoints
Remote URL URL for live stream

 

Note: Credentials for Akamai HD are provisioned geographically based on your encoder IP. If you plan on having an event in a new location, you should provide Brightcove Support with an external and pingable IP address for the encoder at the new location. By doing so, Akamai can re-provision the entry point at the closest possible location to reduce latency and risk of interruption by travelling over as little of the public internet as possible. Brightcove Support needs to know this well in advance as the change takes some time to propagate within Akamai's network. If the encoder is not yet at the location, that is fine, so long as there is an externally pingable IP address on the network to use.

Choose an encoding software solution

Choose and install hardware and software that enables you to capture live video while streaming it in real time to your CDN. For example, Adobe offers a free download of Flash Media Live Encoder. You can use the Flash Media Live Encoder software to encode to On2 VP6 and H.264 formats. It can also save broadcast recordings as static assets that you can edit and upload into a Video Cloud account as on-demand videos, making the live video available after the live event has finished. 

There are many other hardware and software solutions that can broadcast video to Flash Media Server. Ask your video production team or partners to research which solution would be best for your particular workflow.

Configure the EntryPoint in your encoding software

Configure your encoding software to publish to the Live DVR stream entry point provided to you by Brightcove. For example, suppose you are using Adobe Flash Media Live Encoder (FMLE) and publishing a stream into Akamai. In your FMLE, set the FMS URL parameter to match the Primary Entrypoint URL value provided to you by Brightcove. It will look something like:

  • FMS URL: rtmp://something.akamaientrypoint.net/EntryPoint


Setting the live stream parameters in FMLE

    The Stream name should always be blank. The FMS URL and the remote-url are completely different values. The FMS URL is where the Adobe Flash Media Live Encoder pushes the stream data to the CDN and the remote-url is where the player pulls the video stream from the CDN.

    When you initiate the connection, you will be prompted for a user name and password to authorize stream publishing. Enter the live stream credentials provided to you by Brightcove.

    Note that you can reuse the same stream URL and stream name for multiple successive broadcasts, as long as they are not simultaneous. You can then use the same Video Cloud video object for successive broadcasts, editing the metadata for each broadcast. When using live streaming with DVR, subsequent broadcasts will be appended to the end of the stream. If you wish to clear archived events from the stream, please contact Customer Support. Support can chop segments of a live stream and also permanently delete ranges of the broadcast.

    Elements of the remote URL value

    The remote URL value will have the string [EVENT_ANGLE_BITRATE] embedded in it. You need to replace this part of the remote URL with values appropriate for your live stream. It should follow a specific naming convention prescribed by Akamai:

    • The EVENT, ANGLE, and BITRATE should be alphanumeric values.
    • The values must be separated by underscores.
    • The EVENT must be identical for the same stream.
    • The ANGLE should stay constant, unless you are filming the same event from different angles.
    • The BITRATE should be the same as the bitrate that's being used in the live stream.

    For example, you might have a [EVENT_ANGLE_BITRATE] string like this: BostonGardenDec2010_center_300k 

Creating a video in Video Cloud for the live stream

To create your live stream as a video in your Video Cloud account, you create a video that uses remote assets. You can create this video using either:

Creating a live stream video using the Media module

You can create a live stream video using the Media module. In the Media module:

  1. Click Add Videos and select Remote Assets.
  2. In the Add Media to Library screen, select Live as the video type. Select Akamai HD as the delivery type.
  3. For each rendition of your live stream, enter the URL of your live stream. See Entering rendition information for details.

For more detailed information, read Creating videos with remote assets using the Media module.

Create and upload an XML manifest for the live video stream

To create a video that represents your live stream using Video Cloud's FTP batch provisioning and remote assets features:

  1. Create an XML manifest that identifies the live stream and sets metadata for the video.
  2. Upload the XML manifest to the Video Cloud FTP batch provisioning servers.

The XML manifest is a regular Video Cloud FTP batch provisioning manifest. Read about the FTP batch provisioning feature and about Creating videos with remote video files using FTP batch provisioning. The XML manifest must include a <remote-asset> element with the following attributes:

Attribute Description
refid A reference ID for the stream. This reference ID will link the <remote-asset> element to the <title> element in the XML manifest.
remote-url This is the Remote URL you received for the live stream from Brightcove customer support. Substitute your own event, angle, and bitrate values for the string [EVENT_ANGLE_BITRATE] in the middle of this URL.
remote-stream-name Leave blank.
video-duration -1
video-codec ON2 (use this setting even if you're actually using H.264)
size -1
controller-type Must be set to AKAMAI_HD_LIVE.

If you are creating multi-bitrate streams, the manifest must include a separate <remote-asset> element for each live stream rendition.

Your XML manifest also needs to include a <title> element. This element must include a flash-full-refid attribute, whose value is the refid attribute of the <remote-asset> element. The <title> element can also include useful metadata about the live video. Read more about setting metadata in the <title> element in FTP Batch Provisioning: Reference for the XML manifest.

Live video XML manifest example

Here's an example of an XML manifest for a live stream:

<?xml version="1.0" encoding="utf-8" ?>
<publisher-upload-manifest publisher-id="BC ACCOUNT ID" preparer="NAME" report-success="true">
    <notify email="EMAIL ADDRESS" />
    <remote-asset refid="livevideoasset_300kbps"
      display-name="Live Video Asset - 300 kbps"
      type="VIDEO_FULL"
      remote-url="http://something.akamaihd.net/conference_angle1_300k@12345"
      remote-stream-name=""
      video-duration="-1"
      size="-1"
      video-codec="ON2"
      controller-type="AKAMAI_HD_LIVE"
      />    
    <title name="Title with Akamai Live HD and DVR Streaming"
           refid="Akamai-Live-HD-and-DVR"
           video-full-refid="livevideoasset_300kbps"
           active="TRUE">
      <short-description>Live streaming title with one rendition.</short-description>
    </title>
</publisher-upload-manifest>

Configure multi-bitrate streaming for live video with DVR

You can create multiple streams of the same live video source at different quality levels, and the player will select the rendition that best fits each viewer's bandwidth and player size. This works differently from Video Cloud's on-demand video rendition switching, as Akamai HD controls when the stream is switched.

  1. Create multiple streams at different screen sizes and bit rates, using your live capture solution. When you choose your stream sizes and bit rates, consider the players, bandwidth, and devices you expect your audience to have available.
  2. In your FTP batch manifest, create a <remote-asset> element for each live stream rendition. Make sure you set each of these attributes in the <remote-asset> element to the same value as the live stream rendition: encoding-rate, frame-width, frame-height.
  3. In the <title> element of your FTP batch manifest, reference each of the live stream renditions in a <rendition-refid> child element. The value of each <rendition-refid> child element is the refid attribute of each rendition's <remote-asset> element.

If you are using Adobe Flash Media Live Encoder, simply enter the different URLs as you've set them up when creating the remote assets. The URLs should follow the pattern explained in Elements of the Remote URL in Configure the EntryPoint in your encoding software. Your FTP batch manifest for the live video will look like the following:

FTP batch manifest example for live video with multi-bitrate streams

<?xml version="1.0" encoding="utf-8"?>
<publisher-upload-manifest publisher-id="12345678" preparer="Robert Saint-Loup">
  <notify email="rstloup@example.com" />
    <remote-asset refid="LIVE_320x240_150kbps"
        display-name="LIVE_320x240_150kbps - Remote Asset"
        type="VIDEO_FULL"
        video-duration="-1"
        video-codec="ON2"
        remote-url="http://something.akamaihd.net/conference_angle1_150k@12345"
        remote-stream-name=""
        controller-type="AKAMAI_HD_LIVE"
        encoding-rate="150000"
        frame-width="320"
        frame-height="240"
        />

    <remote-asset refid="LIVE_640x480_300kbps"
        display-name="LIVE_640x480_300kbps - Remote Asset"
        type="VIDEO_FULL"
        video-duration="-1"
        video-codec="ON2"
        remote-url="http://something.akamaihd.net/conference_angle1_300k@12345"
        remote-stream-name=""
        controller-type="AKAMAI_HD_LIVE"
        encoding-rate="300000"
        frame-width="640"
        frame-height="480"
        />

    <remote-asset refid="LIVE_960x720_650kbps"
        display-name="LIVE_960x720_650kbps - Remote Asset"
        type="VIDEO_FULL"
        video-duration="-1"
        video-codec="ON2"
        remote-url="http://something.akamaihd.net/conference_angle1_650k@12345"
        remote-stream-name=""
        controller-type="AKAMAI_HD_LIVE"
        encoding-rate="650000"
        frame-width="960"
        frame-height="720"
        />

  <title name="MBR Title with Remote Assets" refid="MBR Live Remote Assets" active="TRUE">
    <short-description>Live streaming title with three renditions.</short-description>

    <rendition-refid>LIVE_320x240_150kbps</rendition-refid>
    <rendition-refid>LIVE_640x480_300kbps</rendition-refid>
    <rendition-refid>LIVE_960x720_650kbps</rendition-refid>
  </title>
</publisher-upload-manifest> 

Programming a player with live streaming

A live video DVR stream acts much like an on-demand video in Video Cloud. You can see your live video listed in your Media Library in the Media module. You can add the live video to a playlist and program it in a player. You can edit the metadata for the live video and set video properties, like the name, tags, short description, schedule, and so forth.

When you view a live video in the Media module, its thumbnail in the details pane is labeled as LIVE VIDEO.

Live Video
Live video in the Media module.

All Video Cloud player templates support live streams with DVR natively. When a Video Cloud player encounters a live video with DVR, it automatically switches into DVR mode. In this mode, there is a LIVE button which highlights the fact that the video playing back is Live:

Player with LIVE button
Player with LIVE button.

By clicking on the progress line in the player controls, a viewer can go back to an earlier point in the live stream. By clicking the LIVE button, a viewer can return to the present point in the live stream.

Player with DVR active
Player in DVR mode, with playhead visible.

If the live stream ends when a viewer is watching, then the LIVE button will be hidden. Viewers can continue to watch the video and scrub backward and forward, until you deactivate the video or delete or chop the Live DVR stream archive.

You can mix live and on-demand videos in the same playlists or players and the player will handle the live video appropriately. 

Adding the Live button to custom player templates

The live button is automatically present when a Live DVR stream is played back in a standard player or in a custom player that uses the VideoPlayer or ChromelessVideoPlayer BEML components. You can add a live button to the player controls of a custom player template, using the LiveButton BEML component. You can see an example of how to implement the LiveButton BEML component and read about it in the BEML DTD Reference.

Limitations

Live video with DVR has the following known limitations:

  • When delivering a live streaming video with DVR, there is no support for advertising or bumpers.
  • You can't use the Preview feature in the Media module Details pane to view live videos. If you want to preview a live video stream, select the live video in the Media module and use the quick video publishing feature in the Media module to get the URL of the live stream. You can then open that URL in a browser.
  • Video Cloud does not supply reporting information specifically about live streaming videos. Usage, including stream starts and bandwidth, is reported on a combined basis with all video usage including on-demand video. You can, however, look at per-video metrics to determine performance usage of live broadcasts. You can integrate custom analytics SWFs for any special tracking required for live video usage.

For further help

If you need help getting your live event to work, Brightcove Support is available to help. You can submit a case here. To make sure you get the fastest response possible, below is a list of what support will need to solve the problem.

  • The specific symptoms the stream is having. For example, does it not play at all or does it stutter or freeze?
  • Whether this stream worked correctly in the past
  • The entry point URL you are using in your encoder
  • The stream name
  • The encoding software and hardware are you using
  • The URL to the player to which you have published the live event
  • The video ID of your live asset in Video Cloud Studio
  • The results of a trace-route from your encoder to the publishing point host

Post new comment

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

Comments