HDS

Once you complete your Media Services Live: HDS Ingest setup, you need to configure your encoder to capture and push your stream to the entrypoints.

For a list of the third-party live encoders and the latest software versions qualified with Media Services Live HDS Ingest, see Qualified Encoders (MSL 3.2 & MSL 4.x).

📘

HDS streams pushed from unqualified live encoders will be rejected. Contact your Account Representative if you need previously qualified third-party live encoders' software versions.

Media Services Live: HDS Ingest does not work with the live encoder HTTP DELETE requests. While the servers returns a 200 HTTP status code, the content is not actually deleted as requested.

To avoid interruptions in the distributed system, the encoder should be capable of publishing the same content to primary and backup locations.

The encoder should be able to input primary and backup publishing and playback hostnames and primary and backup paths for a given stream. The same content (set-level manifest, stream-level manifest, drm meta files, fragments, and bootstrap) should be simultaneously published to primary and backup paths.

Publish HDS streams

The encoder publishes primary and backup streams for the HDS protocol according to this URL syntax.

Stream TypeHostnamePathExample
Primaryp-ep{stream_id}.i.akamaientrypoint.net hds/{stream_id}/{event_name} http://p-ep50002.i.akamaientrypoint.net/hds/50002/test79/testmaster.f4m
Backupb-ep{stream_id}.i.akamaientrypoint.net hds/{stream_id}-b/{event_name} http://b-ep50002.i.akamaientrypoint.net/hds/50002-b/test79/testmaster.f4m

📘

The segments and .f4m files are duplicated across primary and backup and should be identical.

The MSL system considers a stream as a combination of stream_idand event_name. All ingested content, such as variant playlists, bitrate playlists, and segments, should have a common event_namein the path. For example:

http://p-ep50002.i.akamaientrypoint.net/50002/test79/setlevelmanifest.f4m

http://p-ep50002.i.akamaientrypoint.net/50002/test79/300kbps.f4m

http://p-ep50002.i.akamaientrypoint.net/50002/test79/1000kbps.f4m

📘

To improve security and reduce potential vulnerabilities, ​Akamai​ supports TLS 1.2 and above in accordance with Internet Engineering Task Force recommendations.

Play HDS streams

To play HDS streams, construct the URL according to this syntax.

https://amd-property-hostname/hds/live/stream-id/event_name/testmaster.f4m

The amd-property-hostname depends on the CDN that you use. For ​Akamai​ CDN, the hostname is origin.akamaized.net, so the Playback URL is:

http://origin.akamaized.net/hds/live/50002/test79/testmaster.f4m
StreamPathExample
Primaryhds/live/{streamID}/{eventname}/{object}
http://origin.akamaized.net/hds/live/50002/test79/testmaster.f4m
Backuphds/live/{streamID}-b/{eventname}/{object}
http://origin.akamaized.net/hds/live/50002-b/test79/testmaster.f4m

Example manifest

The playback information input from a user is embedded in the set-level manifest as two separate adaptive sets.


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" version="3.0">
<id>myVideo</id>
<streamType>live</streamType>
<baseURL>http://origin.akamaized.net/hds/live/</baseURL>
<adaptiveSet>
<media href="50002/test79/testmaster.f4m" bitrate="5000"/>
</adaptiveSet>
<adaptiveSet>
<media href="50002-b/test79/testmaster.f4m" bitrate="5000"/>
</adaptiveSet>
</manifest>

The HDS player requests the stream-level manifest using the URL. The player then parses information in the stream-level manifest and requests object names by appending to the base URLs in stream-level manifests. The player uses HTTP error responses from the server to use the backup stream content.

👍

To check the quality of your HDS streaming content, you can use this player: https://players.akamai.com/legacy_site/hds/Main.html.