OVERVIEW
Some video producers prefer to deliver an existing linear channel to Wurl for distribution across the Wurl Network. To do so, the video producer must follow this Wurl ReStreaming Guide, which covers everything from the methods to deliver the stream to how to deliver schedule metadata.
Basic Requirements:
- HLS linear stream, continuously running (24x7)
- HLS content must originate from one origin host location.
- H264 video (no null packet stuffing), AAC audio muxed.
- Media sequence specified in EXT-X-MEDIA-SEQUENCE must match across media manifests.
- PID values should not change. (recommended PID values PMT: 480, Video: 481, Audio: 482)
- PID values cannot overlap with the above recommend unless following the mapping EXACTLY
-
Wurl accepts one origin URL per channel brand. Multiple origins are accepted if:
- There is a new URL due to content licensing rights (for example, one stream features content for US distribution and another for international distribution)
- There is a new URL due to localization of content (for example, content has been dubbed in various languages or has different language captions per stream)
- A new origin is necessary to meet the ad load requirement specified in Streamer agreement
The table below states minimum requirements for the rendition ladder included in an HLS stream
Minimum Rendition Ladder:
ID |
Width |
Height |
Video Bitrate (kbps) |
Framerate (fps) |
Audio Bitrate (kbps) |
Audio Sample Rate (khz) |
Encoding Profile |
HD3000 |
1280 |
720 |
3000 |
30* |
128 |
48 |
Main, 4.1 |
SD2000 |
960 |
540 |
2000 |
30* |
128 |
48 |
Main, 4.1 |
SD1200 |
640 |
360 |
900 |
30* |
96 |
48 |
Main, 4.1 |
SD512 |
384 |
216 |
512 |
30* |
64 |
48 |
Main, 4.1 |
We highly recommend including a 1920x1080 rendition at the top end of the rendition ladder to improve customer experience. Certain video services prefer to have this available to viewers as well:
ID |
Width |
Height |
Video Bitrate (kbps) |
Framerate (fps) |
Audio Bitrate (kbps) |
Audio Sample Rate (khz) |
Encoding Profile |
HD4300 |
1920 |
1080 |
4300 |
30* |
128 |
48 |
Main, 4.1 |
* We support a range of framerates, including 24, 25, 29.97 and 30.
Captions
Embedded 608 captions are highly recommended for compatibility across the majority of Streamers. WebVTT can also be accepted, however may not be compatible with all streaming platforms.
HLS Ad Marker Format
Required HLS Tags:
- #EXT-X-PROGRAM-DATE-TIME
- #EXT-X-CUE-OUT:<duration>
- #EXT-X-CUE-IN
Example Ad Markup
The EXT-X-ASSET key value payload must be URL-encoded. This optional tag allows contextual metadata to be passed to the VAST requests made at the ad break.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:247347
#EXT-X-TARGETDURATION:10
#EXT-X-PROGRAM-DATE-TIME:2017-03-07T18:01:48.81434232Z
#EXTINF:2.467,
https://url
#EXT-OATCLS-SCTE35:WURL35
#EXT-X-ASSET:CAID=”content_id”,GENRE=”content_genre”,EPISODE=”episode_title”,
SERIES=”series_name”,SEASON=”season_number
#EXT-X-CUE-OUT:30
#EXT-X-DISCONTINUITY
#EXTINF:6.000,
https://url
#EXT-X-CUE-OUT-CONT:ElapsedTime=6,Duration=30,SCTE35=WURL35
#EXTINF:6.000,
https://url
#EXT-X-CUE-OUT-CONT:ElapsedTime=12,Duration=30,SCTE35=WURL35
#EXTINF:6.000,
https://url
#EXT-X-CUE-OUT-CONT:ElapsedTime=18,Duration=30,SCTE35=WURL35
#EXTINF:6.000,
https://url
#EXT-X-CUE-OUT-CONT:ElapsedTime=24,Duration=30,SCTE35=WURL35
#EXTINF:6.000,
https://
#EXT-X-CUE-IN
#EXT-X-DISCONTINUITY
#EXTINF:6.000,
https://
Dash Connectors
The DASH Connector converts HLS restreamers for DASH delivery. DASH connectors require TS SCTE-35 splice_insert() message with duration inside the Transport Stream (TS) files for ad insertion.
Unsupported Formatting
-
IP Based Origin Stream URL
- Each origin stream URL should use a hostname and not an IP address
- This prevents downstream affects if a server location is ever changed.
- Example (Bad): http://12.34.567.8/example/example.m3u8
- Example (Good): https://examplehostname/example/example.m3u8
-
Origin URL’s must come from a single domain
- Each segment URL must come from a single domain.
- For example if a segment comes from Wurl.com, then all segments should derive from that domain
-
Playlists defined using only query string parameters
-
Example: All renditions being named “rendition.m3u8” and differentiated by variants.
-
Example: All renditions being named “rendition.m3u8” and differentiated by variants.
-
Redundant playlists
-
Each playlist should be different and not be used as a backup.
-
Each playlist should be different and not be used as a backup.
-
I-Frame-only Playlists
-
Example: “#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1198769,AVERAGE-BANDWIDTH=1210000,CODECS="avc1.4d401f",RESOLUTION=1280x720,FRAME-RATE=29.970,URI="playlist-2.4mbps_I-Frame.m3u8"?key=61b2d9f61e3f52b98c31d8a6d4ba0970”
-
Example: “#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1198769,AVERAGE-BANDWIDTH=1210000,CODECS="avc1.4d401f",RESOLUTION=1280x720,FRAME-RATE=29.970,URI="playlist-2.4mbps_I-Frame.m3u8"?key=61b2d9f61e3f52b98c31d8a6d4ba0970”
-
Any level of redirection or dynamic playlist URL tracking
- All URLs we receive should point to the actual feed and not redirect to a different feed.
MPEG TS
Supported Delivery Methods
- Zixi & SRT
Stream Format:
- Minimum: 720p, MPEG2/H.264 CBR at 10mbps
- Recommended: 1080p, MPEG2/H.264 CBR at 10mbps to 15mbps
- H264 video, AAC audio
Ad Markers
- TS SCTE-35 splice_insert() message with duration
Closed Captions
- Embedded 608
Schedule Metadata / EPG
There are the two methods of delivering Schedule Metadata to Wurl to include in video service EPGs, browse experiences, etc.:
Option 1: Wurl Schedule Metadata API (Recommended)
- Wurl's API to accept episodic metadata for ReStream Channels
- Limitations: None (Metadata delivered through our API can be delivered to every Video Service connected to the Wurl Network)
Option 2: Gracenote Metadata Ingest
-
Requirements for ingest of Schedule metadata from Gracenote:
- Gracenote Call Sign
- Gracenote Channel ID
-
Limitations
- Content Companies must have an existing relationship with Gracenote in order to use this method
-
The following Streamer / Regions can not accept Gracenote metadata:
- Anoki
- Rakuten Japan
- Rakuten Europe
- Redbox
- Samsung TV Plus in Belgium, Denmark, Finland, Ireland, Luxembourg, Netherlands, Norway, Portugal, Sweden
- SportsTribal
- TCL
- Univision ViX
- VIDAA
- Xiaomi
- Zeasn
Option 3: EPG creation within Wurl
- If neither Gracenote or the Wurl Schedule Metadata API is an option, the Wurl Scheduler can be used to create a static (eg. Channel Name) EPG.