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 Type | Hostname | Path | Example |
---|---|---|---|
Primary | p-ep{stream_id}.i.akamaientrypoint.net | hds/{stream_id}/{event_name} | http://p-ep50002.i.akamaientrypoint.net/hds/50002/test79/testmaster.f4m |
Backup | b-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_id
and event_name
. All ingested content, such as variant playlists, bitrate playlists, and segments, should have a common event_name
in 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
Stream | Path | Example |
---|---|---|
Primary | hds/live/{streamID}/{eventname}/{object} | http://origin.akamaized.net/hds/live/50002/test79/testmaster.f4m |
Backup | hds/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.
Updated about 3 years ago