Broadcast

Guide to Encoding Content for Broadcasting Streams

Broadcasting content requires access to the public internet and encoding, which can be accomplished in a browser, software, hardware, or with the Dolby.io Client-side broadcaster SDKs.

The Dolby.io CDN can ingest streams encoded in a few main formats:

WebRTC, an internet transfer protocol that supports video codecs H.264, H.265, VP8, VP9, AV1, and the Opus audio codec. Broad support is made possible through implementations of WebRTC HTTP Ingest Protocol (WHIP).

SRT, a video transfer protocol that can be transmuxed to WebRTC via the Dolby.io CDN and supports H.264 video and AAC audio.

RTMP and RTMPS, internet transfer protocols that can be transmuxed to WebRTC via the Dolby.io CDN that supports only the H.264 video codec.

SRT and RTMP will automatically have AAC audio converted to Opus via the CDN

Start building

Encoding

With different broadcast protocols across the industry comes the need for encoders to create seamless video transmission. By employing encoders, video content can be efficiently compressed, reduce in file size, and conserve bandwidth during streaming. It also ensures compatibility across various devices and platforms, enabling playback and accessibility for viewers. Codecs play a crucial role since it is what encoders utilize to build the compression.

Codecs

A few terms to remember are:

H.264 (AVC), Advanced Video Coding, is a widely used video codec that efficiently compresses video data while maintaining video quality. It is widely supported, making it a highly versatile codec for various applications, as the de facto standard for many.

H.265 (HEVC), or High-Efficiency Video Coding, is an advanced video codec that offers even higher compression efficiency compared to H.264. It achieves a significant reduction in file size and bit rate while maintaining or improving video quality. This makes H.265 suitable for applications with limited bandwidth or storage capacity.

VP9 is an advanced video codec designed to provide higher compression efficiency and improved video quality compared to its predecessor, VP8. VP9 offers significant bitrate savings, allowing higher-quality video streaming at lower bitrates.

AV1 is designed to deliver high-quality compression while achieving significant bitrate reduction utilizing compression techniques like improved motion prediction, advanced entropy coding, and intra-frame coding. Best suited for applications with limited bandwidth.

AAC, Advanced Audio Coding, is an audio codec known for its high audio quality while maintaining a low bitrate, resulting in smaller file sizes and efficient transmission. It is widely supported across devices and platforms, making it a versatile choice for various audio applications.

Encoders

A hardware encoder can help transform capture devices used in professional broadcast setups into a real-time streaming solution. The typical hardware encoder will have drivers that support interfaces like SDI, HDMI, etc., while optimizing for fast encoding to standards like WHIP or RTMP for streaming broadcast workflows. There are also software encoders that can help with encoding by using compute resources.

Here is a breakdown of some distinct encoders with their corresponding codec and protocol compatibility.

EncoderProtocolsCodecs
Osprey TalonRTMP, RTMPS, RTSP, HLS, RTP, SRT, WebRTC, WHIPH.264 (AVC), H.265 (HEVC), AAC
Teradek WaveRTMP, RTMPS, RTSP, SRT, HLS, NDIH.264 (AVC), H.265 (HEVC), AAC
Videon EdgeCasterRTMP, RTMPs, SRT, HLSH.264 (AVC), H.265 (HEVC), VP9, AAC
Haivision KB EncoderRTMP, RTMPS, RTSP, HLS, SRTH.264 (AVC), H.265 (HEVC), AAC
FlowCasterRTMP, RTMPs, WHIP, NDI, HLS, SRT, WebRTCH.264 (AVC), H.265 (HEVC)
FFmpegRTMP, RTMPs, RTSP, HLSH.264 (AVC), H.265 (HEVC), VP9, AV1, AAC
GStreamerRTMP, RTMPs, RTSP, SRT, HLS, WHIPH.264 (AVC), H.265 (HEVC), VP9, AV1, AAC
OBSWebRTC, RTMP, RTMPs, NDI, HLS, SRT, RTSPH.264 (AVC), H.265 (HEVC), VP9, AAC
LiveURTMP, RTMPs, HLS, RTSP, NDIH.264 (AVC), H.265 (HEVC), VP9, AAC
vMixRTMP, RTMPs, RTSP, NDI, SRT, WebRTCH.264 (AVC), H.265 (HEVC), ProRes, DNxHD/DNxHR, AAC

Broadcast protocols

The line between how a video feed is captured and how it is encoded can be a subtle distinction. In order to prepare for distribution, you need to ensure you have the right encoding to optimize delivery and meet your broadcast requirements.

Encoding with WHIP

The WebRTC-HTTP Ingestion Protocol (WHIP) is an IETF standard developed to leverage the capabilities of WebRTC to ingest content into a streaming platform over HTTP. WHIP addresses problems with Real-time Streaming by removing translation layers during encoding.

WHIP acts like a signaler, handling the creation and deletion of endpoints needed during transport while maintaining the benefits of WebRTC, such as end-to-end encryption and ultra-low latency.

How-to use GStreamer with WHIP
GStreamer is a popular pipeline-based media framework that links together multiple nodes into a media processing workflow. Using WHIP, you can encode an output node to broadcast streaming content through Dolby.io.

How-to use FlowCaster with WHIP
FlowCaster software provides a secure connection to provide IP streaming for editors and remote collaboration.

How-to use LiveU Studio with WHIP
LiveU Studio is a cloud-based SaaS solution for live video production. By supporting WHIP, media streams ingested from LiveU Studio and can be broadcast by Dolby.io.

How-to Setup an Osprey Talon for WHIP
The Osprey Talon provides exceptional quality with 4k resolution and a plug-and-play interface. There are some recommended settings to enable broadcasting to the Dolby.io platform by using this encoder in the pipeline.

To learn how to create a stream from OBS using WebRTC, see the following video:

Encoding with SRT

The Secure Reliable Transport (SRT) is an open-source protocol that uses an intelligent packet retransmission mechanism on otp of a UDP data flow along with AES-128 and 256-bit encryption. Dolby is part of the SRT Alliance, an organization to promote the technology for optimizing streaming performance.

How-to setup a Dolby.io SRT Stream
The Dolby.io dashboard is used to configure the publish path and stream id for an incoming SRT media stream.

How-to use OBS with SRT
Open Broadcaster Software (OBS) is free and open source software is popular for cross-platform streaming. You will need to download a recent version of OBS that has been extended to provide SRT support.

To learn how to create a stream from OBS using SRT, see the following video:

RTMP Ingest

Real-time Messaging Protocol (RTMP) is well-established in many hardware and software applications. With many years of use, RTMP is a good option for compatibility while sacrificing some latency in order to handle transmuxing the incoming stream to WebRTC.

How-to setup a Dolby.io RTMP Stream
The Dolby.io dashboard is used to configure the publish path and stream id for an incoming RTMP or RTMPs media stream.

How-to use FFmpeg with RTMP
FFmpeg is a free and open-source software project that is commonly used in legacy media workflows. It is a command-line tool that is capable of outputing streaming content via RTMP, RTMPS, and RTSP.

How-to use vMix with RTMP
vMix is a software vision mixer available for Windows. It is useful for certain live video production workflows and supports RTMP output that can be broadcast by Dolby.io.

How-to Setup a Haivision KB encoder for RTMP
The Haivision KB series of media encoders deliver high-quality video streaming with 4k resolution and a plug-and-play interface with a small rack-mountable form factor. There are some recommended encoding sessions to optimize this encoder in the broadcast pipeline.

How-to Setup a Teradek VidiU Go for RTMP
The Teradek VidiU Go is a hardware encoder is capable of broadcast quality video that can be sent over RTMP for compatibility with Dolby.io broadcast workflows.

Publish parameters

Broadcast URL Parameters
Publish parameters allow modifying broadcasting preferences to customize streaming experience in more complex workflows with multiple sources.

Begin broadcasting

Web and mobile browsers are widely available and have wide encoding support, whether broadcasting from Chrome, Safari, Firefox, or Edge. To start broadcasting, see the Getting Started with Broadcasting guide.

You can also start broadcasting directly from the Dolby.io dashboard. For more information, see the following video:

Learn more

You can find examples of using Avid Media Composer, Larix Broadcaster, and more on the developer blog.