HDS requirements
This topic explains the requirements and recommendations for live stream encoders compatible with Media Services Live for Adobe HTTP Dynamic Streaming (HDS). Compatible encoders should be capable of successfully streaming a live event, but meeting these guidelines does not guarantee performance of any encoder on Media Services Live.
HDS streams pushed from unqualified live encoders will be rejected.
Media Services Live for HDS does not honor live encoder HTTP DELETE
requests. While Media Services servers will return a 200
HTTP status code, the content is not actually deleted as requested.
Alternate hostname uploads
Encoders should be capable of using multiple hostnames when publishing multiple bitrates to better handle failure situations. Encoders that cannot use multiple hostnames will have a single point of failure. If the single upload host being used is lost, the event is interrupted until the host returns or a new host is provisioned.
Primary and backup HDS stream URLs
Encoders should be able to input primary and backup publishing and playback hostnames and primary and backup paths for a given stream.
To avoid interruptions in stream delivery, set up your encoder to publish the same content simultaneously to primary and backup URLs, including:
- Set-level manifest
- Stream-level manifest
- DRM metadata files
- Fragments
- Bootstrap
Refer to Publish HDS streams for syntax.
The HDS player requests the stream-level manifest using the URLs. It 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 one of these HTTP error responses from the server to request the backup stream content:
https://testconfig-i.akamaihd.net/hds/live/50002-b/test79/5000kbpsSeg24Frag41
https://testconfig-i.akamaihd.net/hds/live/50002-b/test79/5000kbps.drmmeta
PUT/POST request
Encoders must be capable of uploading media fragments, bootstrap, DRM metadata, and manifest files using POST/PUT requests. Each media fragment, bootstrap, DRM metadata, and manifest file should be uploaded in its own HTTP request.
Upload order
Upload the files and segments for HDS in this order:
- Set-level manifest. Upload once at the beginning of each stream/event.
- DRM metadata file if using PHDS or Adobe Access. Upload once for each representation or bitrate.
- Media fragment file. Upload for every fragment duration.
- Bootstrap file. Upload for every fragment duration.
- Stream-level manifest. Upload for every fragment duration or more frequently if captioning or other media is involved.
URL format
The encoder must be capable of posting URL in the formats described in these sections.
Set-Level Manifest
Encoders should allow the Set-Level manifest file to be uploaded only once for each stream/event. In addition, the Set-Level Manifest name must end with key words setlevelmanifest
or master
. For example, a set level manifest name could be testsetlevelmanifest.f4m
or examplemaster.f4m
, or simply master.f4m
or setlevelmanifest.f4m
.
The URL format for the Set-Level manifest is: https://hostname/format/streamID/eventname/anyname{setlevelmanifest or master}.f4m
For example:
https://p-ep50002.i.akamaientrypoint.net/hds/50002/test67/test67setlevelmanifest.f4m
https://p-ep50002.i.akamaientrypoint.net/hds/50002/test67/test67master.f4m
https://p-ep50002.i.akamaientrypoint.net/hds/50002/test67/master.f4m
https://p-ep50002.i.akamaientrypoint.net/hds/50002/test67/setlevelmanifest.f4m
DRM metadata
The DRM metadata must be uploaded once for each representation or bitrate and stored in a permanent storage location.
The URL format is: https://hostname/format/streamID/eventname/representationID.drm
Example: https://p-ep50002.i.akamaientrypoint.net/hds/50002/test79/5000kbps.drm
Media fragment file
The Media fragment file must be uploaded every six seconds for fragment duration of six seconds for each bitrate or representation.
The URL format is: https://hostname/format/streamID/eventname/representationIDSeg1-Fragnumber
Example: https://p-ep50002.i.akamaientrypoint.net/hds/50002/test79/5000kbpsSeg1-Frag34
Bootstrap file
The bootstrap file must be uploaded every six seconds for fragment duration of six seconds for each bitrate or representation. This file must be an external file, not embedded one.
The URL format is: https://hostname/format/streamID/eventname/representationID.bootstrap
Example: https://p-ep50002.i.akamaientrypoint.net/hds/50002/test79/5000kbps.bootstrap
Stream-Level manifest
The Stream-Level manifest must be uploaded every six seconds (the same as fragment duration of six seconds) for each bitrate or representation.
The URL format is: https://hostname/format/streamID/eventname/representationID.f4m
Example: https://p-ep50002.i.akamaientrypoint.net/hds/50002/test79/5000kbps.f4m
Updated almost 3 years ago