Working with OrkaTV

Welcome to OrkaTV, we’re happy to have you join our streaming service as a content partner!

OrkaTV supports content delivery in three ways: Live Streaming, FAST channels, and Video On Demand. These specs provide the preferred way to connect content for each of these methods of delivering content to us.

We know there is a wide variation in content formats, so please contact us if you have questions about content format compatibility or would like to discuss your existing configurations.

Specification

Live

Video Requirements

Connecting to OrkaTV: Our SRT endpoint is a listener, which means it waits for your encoder to connect to it. Set your encoder to SRT caller mode (the default in OBS and most encoders) and paste in the SRT URL from the User Portal.

EncoderH.265 (HEVC), preferred, or H.264 (AVC)
Output Resolution1920×1080
Bitrate3200 Kbps (HEVC) / 5000 Kbps (AVC)
FramerateFor 29.97 or 30 fps sources, preserve the source frame rate
Keyframe Interval2 seconds (60 frames at 29.97 or 30 fps)

Connecting to OrkaTV: Enter the RTMP server URL and stream key from the User Portal in your encoder.

EncoderH.264 (AVC)
Output Resolution1920×1080
Bitrate5000 Kbps
FramerateFor 29.97 or 30 fps sources, preserve the source frame rate
Keyframe Interval2 seconds (60 frames at 29.97 or 30 fps)

Audio Requirements

EncoderAAC-LC, stereo, 128 Kbps, 48 kHz

Live Stream Delivery (SRT and RTMP)

Partners can deliver live streams to OrkaTV’s SRT and RTMP ingest endpoints using the encoder settings above.

  • SRT (recommended): designed for reliable, secure delivery over the public internet, with packet-loss recovery and encryption.
  • RTMP: supported for broad compatibility with hardware and software encoders.
  • SRT passphrase: where applicable, your SRT passphrase is also listed in the portal.
  • Keep credentials private: treat your stream key and passphrase like a password and do not share them publicly.

Don’t have portal access yet? Contact your OrkaTV representative to get set up.

These are our recommended delivery settings. Contact us to confirm compatibility with other configurations.

FAST

PreferredHLS stream delivered via .m3u8 URL
SummaryHEVC/H.265 + AAC-LC + HLS (fMP4/CMAF segments)
HEVC/H.265
  • 1080p HEVC/H.265 Main Profile — 3.2 Mbps
  • 720p HEVC/H.265 Main Profile — 1.8 Mbps
  • 540p HEVC/H.265 Main Profile — 1.0 Mbps
Profile / LevelMain Profile (8-bit), Level 4.0 or lower, Main Tier, for maximum device compatibility.
Frame RateFor 29.97 or 30 fps sources, preserve the source frame rate
Keyframe Interval2 seconds (60 frames at 29.97 or 30 fps)
PackagingFragmented MP4 (fMP4/CMAF) segments, required for HEVC in HLS (MPEG-TS is not supported for HEVC). Use the hvc1 codec tag (not hev1).
AudioAAC-LC, stereo, 128 Kbps, 48 kHz
Closed CaptionsWebVTT
HLS-Based Ad Markers#EXT-X-CUE-OUT / #EXT-X-CUE-IN and #EXT-X-DATERANGE
EPGOrkaTV supports XMLTV as its standard Electronic Program Guide (EPG) format. XMLTV specification: github.com/XMLTV/xmltv. Contact us regarding support for a JSON representation of XMLTV.
PreferredHLS stream delivered via .m3u8 URL
SummaryAVC/H.264 + AAC-LC + HLS
AVC/H.264
  • 1080p AVC/H.264 High Profile — 5.0 Mbps
  • 720p AVC/H.264 High Profile — 3.0 Mbps
  • 540p AVC/H.264 Main Profile — 2.0 Mbps
Frame RateFor 29.97 or 30 fps sources, preserve the source frame rate
Keyframe Interval2 seconds (60 frames at 29.97 or 30 fps)
AudioAAC-LC, stereo, 128 Kbps, 48 kHz
Closed CaptionsWebVTT
HLS-Based Ad Markers#EXT-X-CUE-OUT / #EXT-X-CUE-IN and #EXT-X-DATERANGE
EPGOrkaTV supports XMLTV as its standard Electronic Program Guide (EPG) format. XMLTV specification: github.com/XMLTV/xmltv. Contact us regarding support for a JSON representation of XMLTV.

ffmpeg Command Reference

AVC (H.264)

Use this command to encode a live stream for delivery to OrkaTV as multi-bitrate AVC (H.264).

Live HLS ffmpeg command: AVC (H.264)

ffmpeg -re -i INPUT \
-filter_complex \
"[0:v]split=3[v1080][v720][v540]; \
 [v720]scale=1280:720[v720out]; \
 [v540]scale=960:540[v540out]" \
-map "[v1080]" -map 0:a:0 \
-map "[v720out]" -map 0:a:0 \
-map "[v540out]" -map 0:a:0 \
-c:v:0 libx264 -preset:v:0 medium -profile:v:0 high \
-tag:v:0 avc1 \
-b:v:0 5000k \
-maxrate:v:0 5350k \
-bufsize:v:0 10000k \
-x264-params:v:0 "scenecut=0:open-gop=0" \
-c:v:1 libx264 -preset:v:1 medium -profile:v:1 high \
-tag:v:1 avc1 \
-b:v:1 3000k \
-maxrate:v:1 3210k \
-bufsize:v:1 6000k \
-x264-params:v:1 "scenecut=0:open-gop=0" \
-c:v:2 libx264 -preset:v:2 medium -profile:v:2 main \
-tag:v:2 avc1 \
-b:v:2 2000k \
-maxrate:v:2 2140k \
-bufsize:v:2 4000k \
-x264-params:v:2 "scenecut=0:open-gop=0" \
-c:a:0 aac -b:a:0 128k -ac:a:0 2 -ar:a:0 48000 \
-c:a:1 aac -b:a:1 128k -ac:a:1 2 -ar:a:1 48000 \
-c:a:2 aac -b:a:2 128k -ac:a:2 2 -ar:a:2 48000 \
-sc_threshold 0 \
-force_key_frames "expr:gte(t,n_forced*2)" \
-f hls \
-hls_segment_type fmp4 \
-hls_time 6 \
-hls_list_size 10 \
-hls_flags independent_segments+append_list+omit_endlist+program_date_time \
-hls_fmp4_init_filename "init_%v.mp4" \
-hls_segment_filename "live_%v_%06d.m4s" \
-master_pl_name master.m3u8 \
-var_stream_map \
"v:0,a:0,name:1080p_avc v:1,a:1,name:720p_avc v:2,a:2,name:540p_avc" \
"live_%v.m3u8"

HEVC (H.265)

Use this command to encode a live stream for delivery to OrkaTV as multi-bitrate HEVC (H.265).

Live HLS ffmpeg command: HEVC (H.265)

ffmpeg -re -i INPUT \
-filter_complex \
"[0:v]split=3[v1080][v720][v540]; \
 [v720]scale=1280:720[v720out]; \
 [v540]scale=960:540[v540out]" \
-map "[v1080]" -map 0:a:0 \
-map "[v720out]" -map 0:a:0 \
-map "[v540out]" -map 0:a:0 \
-c:v:0 libx265 -preset:v:0 medium -profile:v:0 main \
-tag:v:0 hvc1 \
-b:v:0 3200k \
-maxrate:v:0 3500k \
-bufsize:v:0 6400k \
-x265-params:v:0 "scenecut=0:open-gop=0" \
-c:v:1 libx265 -preset:v:1 medium -profile:v:1 main \
-tag:v:1 hvc1 \
-b:v:1 1800k \
-maxrate:v:1 2000k \
-bufsize:v:1 3600k \
-x265-params:v:1 "scenecut=0:open-gop=0" \
-c:v:2 libx265 -preset:v:2 medium -profile:v:2 main \
-tag:v:2 hvc1 \
-b:v:2 1000k \
-maxrate:v:2 1200k \
-bufsize:v:2 2000k \
-x265-params:v:2 "scenecut=0:open-gop=0" \
-c:a:0 aac -b:a:0 128k -ac:a:0 2 -ar:a:0 48000 \
-c:a:1 aac -b:a:1 128k -ac:a:1 2 -ar:a:1 48000 \
-c:a:2 aac -b:a:2 128k -ac:a:2 2 -ar:a:2 48000 \
-sc_threshold 0 \
-force_key_frames "expr:gte(t,n_forced*2)" \
-f hls \
-hls_segment_type fmp4 \
-hls_time 6 \
-hls_list_size 10 \
-hls_flags independent_segments+append_list+omit_endlist+program_date_time \
-hls_fmp4_init_filename "init_%v.mp4" \
-hls_segment_filename "live_%v_%06d.m4s" \
-master_pl_name master.m3u8 \
-var_stream_map \
"v:0,a:0,name:1080p_hevc v:1,a:1,name:720p_hevc v:2,a:2,name:540p_hevc" \
"live_%v.m3u8"

These are our recommended delivery settings. Contact us to confirm compatibility with other configurations.

VOD

Upload VOD files through the OrkaTV User Portal. Don’t have access? Contact your OrkaTV representative.

File Upload

OrkaTV transcodes uploaded files for streaming.

Accepted Upload FormatsMP4 or fMP4 (fragmented MP4)
SummaryHEVC/H.265 video + AAC-LC audio in MP4 or fMP4
Source Bitrate3–7 Mbps
Resolution1920×1080 (square pixels)
Pixel Formatyuv420p (8-bit 4:2:0)
Frame RateFor 29.97 or 30 fps sources, preserve the source frame rate
Keyframe Interval2 seconds (60 frames at 29.97 or 30 fps); fixed, scene-cut keyframes disabled, closed GOP
AudioAAC-LC, stereo, 128 Kbps, 48 kHz
Closed CaptionsWebVTT

File Upload

OrkaTV transcodes uploaded files for streaming. The AVC/H.264 row lists the streaming renditions OrkaTV produces.

Accepted Upload FormatsMP4 or fMP4 (fragmented MP4)
SummaryAVC/H.264 video + AAC-LC audio in MP4 or fMP4
AVC/H.264
  • 1080p AVC/H.264 Main Profile, Level 4.0 — 10.4 Mbps max bitrate
  • 720p AVC/H.264 Main Profile, Level 3.1 — 7.2 Mbps max bitrate
  • 480p AVC/H.264 Main Profile, Level 3.0–3.1 — 3.6 Mbps max bitrate
  • 360p AVC/H.264 Main Profile, Level 3.0 — 1.6 Mbps max bitrate
  • 240p AVC/H.264 Constrained Baseline Profile, Level 2.1 — 800 Kbps max bitrate
ResolutionsLandscape: 1920×1080, 1280×720, 852×480, 640×360, 426×240
Portrait: 1080×1920, 720×1280, 480×852, 360×640, 240×426
Square pixels
Pixel Formatyuv420p (8-bit 4:2:0)
Frame RatePreserve the source frame rate; 29.970 fps or 30 fps
Keyframe Interval4 to 8 second segment-boundary IDRs
AudioAAC-LC, 2-channel stereo, nominal 128 Kbps CBR; source sample rate preserved at 48 kHz
Closed CaptionsWebVTT uploaded separately after video processing; embedded MP4 mov_text is not retained

File Upload

OrkaTV transcodes uploaded files for streaming.

Accepted Upload FormatsQuickTime .mov
SummaryApple ProRes 422 video + uncompressed PCM audio in a QuickTime .mov
Apple ProRes
  • Apple ProRes 422 — recommended
  • Apple ProRes 422 HQ — accepted (larger files)
  • Apple ProRes 422 LT — accepted (smaller files for longer programs)
Maximum File SizeLess than 30 GB per file (about 27 minutes of 1080p ProRes 422 at 29.97 fps; about 18 minutes for ProRes 422 HQ; about 39 minutes for ProRes 422 LT)
ResolutionsLandscape: 1920×1080
Portrait: 1080×1920
Square pixels, progressive (no interlacing)
Pixel Formatyuv422p10le (10-bit 4:2:2, inherent to ProRes 422)
ColorSDR, BT.709
Frame RatePreserve the source frame rate; 29.970 fps or 30 fps
Keyframe IntervalNot applicable; ProRes is intra-frame, so every frame is a keyframe
AudioUncompressed PCM, 24-bit, 48 kHz, 2-channel stereo (recommended); AAC-LC, 2-channel stereo, 128 Kbps, 48 kHz also accepted
Closed CaptionsWebVTT uploaded separately after video processing; embedded caption tracks are not retained

VOD ffmpeg Command Reference

Use this command to convert a source file into an Apple ProRes 422 .mov for upload.

VOD upload ffmpeg command: Apple ProRes 422 (MOV)

ffmpeg -i INPUT \
-map 0:v:0 -map 0:a:0 \
-vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709" \
-c:v prores_ks \
-profile:v 2 \
-vendor apl0 \
-pix_fmt yuv422p10le \
-c:a pcm_s24le \
-ar 48000 \
-ac 2 \
"orka_vod_prores.mov"

These are our recommended delivery settings. Contact us to confirm compatibility with other configurations.