PLUTO TV LIVE STREAMING TECHNICAL REQUIREMENTS V2.2
As of May 29, 2024
Pluto TV Live Streaming Technical Requirements v2.2
All streams must be tested and integrated before they may be added to the Pluto TV platform.
The specification included in this document is not intended to provide partners with an exhaustive list of potential integration paths, rather to provide an example of what a preferred profile should look like. Nonconforming streams may require additional work to integrate and may increase the time it takes to onboard a stream.
Please submit stream information at least 4 weeks prior to launch or a live event to ensure there is sufficient time to validate across all platforms and ample time to address any issues with latency, performance, or playback quality.
Required items are marked with an asterisk (✱)
Preferred Stream Format
Streaming Protocol |
Apple HLS (Pull), RTP Push*, Zixi (Push/Pull)* *(Zixi or RTP delivery requires an HLS confidence feed for monitoring) |
DRM |
None ✱ |
CODEC |
H.264 (Level 3.1 or above) ✱ |
Frames Per Second |
30 fps |
Aspect Ratio |
16x9 full bleed ✱ |
Container |
.ts |
HLS Segment length |
5 seconds (must be consistent length) |
Origin TTL |
Minimum 120 seconds ✱ |
Preferred Resolution and Bitrates
Resolution |
Target bitrate |
1920x1080 |
5 Mbps to 10 Mbps |
1280x720 |
3 Mbps-10 Mbps |
Preferred Audio Stream Specifications
Audio Codec |
AAC_LC |
Channels |
2 |
Sample Rate |
48KHz |
Bitrate |
96 Kbps |
Audio Normalization |
EBUR128 |
HLS MANIFEST PACKAGING
URL |
http or https (HLS) |
HLS version |
EXT-X-VERSION: 3 or higher ✱ |
HLS Playlist Sliding Window |
10 segments |
AD TRIGGER SPECIFICATIONS
Ad Triggers |
SCTE-35 markers must be present in both .m3u8 playlists and PID ✱ Supported formats: #EXT-X-CUE-OUT #EXT-X-OCTALS-SCTE35 |
Duration |
● Breaks must be 30 seconds or more in duration ● Breaks must not exceed 300 seconds ● Elapsed Time/Duration in seconds required ● Elapsed Time may not exceed Duration ● Must have at least 4 segments between CUE-IN and CUE-OUT ● Duration may not change after CUE-OUT ● CUE-OUT must be followed by a CUE-IN * |
AD TRIGGER SPECIFICATIONS
#EXT-X-CUE-OUT —————————————————————————
#EXT-X-CUE-OUT: Duration=30
...
...
...
#EXT-X-CUE-OUT-CONT:ElapsedTime=2.000,Duration=30
...
...
...
#EXT-X-CUE-IN Note: Decimal is optional. #EXT-OATCLS-SCTE35 ————————————————————————— #EXT-OATCLS-SCTE35:/DAgAAAAAAAAAAAADwVAAADgf0+2E2yFgAAAAAAAJgnEsxH #EXT-X-ASSET:CAID=0x0000000020FA6877 #EXT-X-CUE-OUT:101.115
...
...
...
#EXT-X-CUE-OUT-CONT:ElapsedTime=10.1,Duration=101.115,SCTE35=/DAgAAAAAAA AAAAADwVAAADgf0+2E2yFgAAAAAAAJgnEsxH
...
...
...
#EXT-X-CUE-IN
CLOSED CAPTIONING SPECIFICATIONS
Pluto TV is committed to providing the best viewer experience possible to a universal audience. In accordance with FCC guidelines, any live (or near-live ) TV programming, or pre-recorded English or Spanish content that has aired on television in the United States, must be delivered to Pluto TV with closed captions. This also applies to any dubbed language content that has previously aired. Captions must comply with FCC-14-12A1 Closed Captioning Quality Order (2014).
Closed Captioning |
EIA-708 |
Tag* |
MUST be declared via an EXT-X-MEDIA tag that contains a LANGUAGE attribute (sample below) |
Caption decoration should follow this form and must be included in master manifest: #EXT-X-MEDIA:TYPE=CLOSED-CAPTIONS,GROUP-ID="CC",LANGUAGE="eng",NAME="english",DEFAULT=YES,AUTOSELECT=YES,INSTREAM-ID="CC1"
BACKUP SPECIFICATIONS (optional)
Pluto TV does not support automated primary/backup stream switching or primary and backup streams in the same playlist. However, partners may provide backup that can be integrated should a manual change be required.
Streaming Format |
Same as primary feed |
Origin |
Back-up feed should be streamed from a different data center than primary, ideally in a disparate geographical location. |
Summary of Updates:
None