RTMP Ingest/ HD Flash 1.0 Output

The play() method of HDCore's HDNetStream accepts two types of objects.

These are different from standard RTMP URIs.

String inputs

String inputs can be pathnames to either a single stream resource, or a .smil file describing a multiple-bit-rate asset.

For HDS single stream, the URL typically looks like this:
 http://customerdomain-lh.akamaihd.net/event_angle_bitrate@xxxxx

Here, the domain is a Media Services Live-controlled Edge domain, and the stream name is event_angle_bitrate@xxxxx. The xxxxx is a unique numeric ID assigned by Media Services Live: Stream Packaging when the live stream name is configured in Control Center.

A String input might also represent a path to a .smil resource. This resource can reside on any web server, not necessarily a Media Services Live: Stream Packaging one. It can also be a relative path to a resource. Valid examples would be:

  • http://myserver.akamai.com/a/b/c/mystreams.smil
  • http://example.com/myfolders/mystreams.smil
  • firstgame/camera1/mystreams.smil

    SMIL files used for Media Services Live: Stream Packaging are a subset of the full SMIL standard. The following example shows a sample SMIL file:

    <?xml version="1.0"?>
    <!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN" "http://www.w3.org/2001/SMIL20/SMIL20.dtd">
    <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
    <head>
    <meta name="title" content="Trailer" />
    <meta name="httpBase" content="http://myserver.akamai.com/" />
    </head>
    <body>
    <switch id="Trailer">
    <video src="video_h264_3500@14411" system-bitrate="3500000"/>
    <video src="video_h264_2500@14411" system-bitrate="2500000"/>
    <video src="video_h264_1500@14411" system-bitrate="1500000"/>
    <video src="video_h264_700@14411" system-bitrate="700000"/>
    <video src="video_h264_300@14411" system-bitrate="300000"/>
    </switch>
    </body>
    </smil>
    Note: You must deliver your SMIL file through a regular HTTP configuration on your account. This is because Media Services Live: Stream Packaging for the RTMP Ingest/ HDS output configuration has advanced coding that is optimized for delivery of HD Flash 1.0 streaming, which makes it incompatible with SMIL file delivery.

    Note the httpBase metatag that defines the Edge domain over which the content is delivered. The switch element contains a list of video elements, each defined by its src attribute, which holds the stream name and the system bit rate, which holds the total bit rate (video bit rate + audio bit rate).

    For live events, the streams must have a name structure that is a_b_c@xxxx, where:

  • a represents the event,
  • b represents the angle,
  • c represents something that changes for each rendition, usually the bit rate.

    These names originated from webcasting live multiple-camera sporting events.

    For MBR packages, to switch smoothly between the renditions, the event_angle portion of the name must be consistent between each rendition. In the example above, this is video_h264. If this section of the stream name differs between the renditions, then you cannot switch smoothly between them. The event_angle_bitrate naming scheme does not literally need to hold those values. These stream names are all valid combinations:

  • 1_2_3@12345
  • 1_2_4@12345
  • 1_2_5@12345

    or

  • bob_carol_ted@34567
  • bob_carol_alice@34567

    or

  • 1_yellow_red@87459
  • 1_yellow_blue@87459
  • 1_yellow_green@87459

IMBR objects

This is an interface that defines a collection of renditions of the same piece of content at different bitrates. It represents a package of files whose class might switch as bandwidth conditions change.

The HDMBRObject implements IMBRObject and bundles an array representing the stream names and their bitrates and more stream specific details.