Comparing live streaming solutions? Researching the difference between using hardware and software for streaming? Looking to understand the fundamentals of encoding settings for streaming? Read on! We’ll be going over all of that and more in this hardware encoder primer.
What is a hardware encoder?
When it comes to streaming video across the web, uncompressed video and audio files are too large and bulky to send in real time. The solution is to compress these files first.
A hardware encoder is a dedicated appliance that captures, compresses (encodes), and delivers audio and video data to a destination. Specifically, a live streaming hardware encoder is a device that can stream video over local area networks (LAN), wide area networks (WAN), or across the Internet.
Online streaming destinations include streaming platforms like YouTube Live, LinkedIn Live, and Facebook Live as well as live streaming services like Vimeo, Akamai, and Wowza.
Examples of live streaming encoders include Epiphan’s Pearl Nano, Pearl Mini, and Pearl-2. In addition, many hardware encoders feature other capabilities, like live video switching and local video recording.
Audio and video inputs on hardware encoders
Hardware encoders typically have a variety of inputs that let you directly connect higher-end video and audio equipment like cameras and microphones. For example, Pearl-2 can capture local video over HDMI, USB, and SDI inputs, analog audio inputs over XLR and RCA, and networked AV inputs over NDI, SRT, and RTSP.
By contrast, to connect the same equipment to a general-purpose computer system, you’d need a capture card to stream video from a camera or a front-end audio interface for professional audio.
Hardware encoders vs. live streaming software
Live streaming software is an application running on general-purpose, off-the-shelf computers (such as a laptop or a desktop machine). A few examples of streaming software include vMix, Wirecast, and OBS. Much like a hardware encoder, live streaming software compresses and streams video to a destination.
The main difference is that hardware encoders dedicate all processing power to capturing, encoding, and streaming. In contrast, computer-run streaming software has to share resources with other processes on the machine. Hardware encoders are designed from the ground up specifically for encoding and streaming, which makes them a more reliable streaming solution compared to their software counterparts. This is why professional broadcasters rely on hardware encoders in mission-critical situations.
Encoding settings: Key terms to understand
Encoding settings have a direct impact on stream quality. Generally speaking, the higher the settings (within specific value ranges),the higher the video quality.
Streaming platforms often offer a list of recommended encoding settings for live streaming. It’s a good idea to use them as a guide. Here is an overview of the key encoding parameters users have control over.
A codec is the compression method for making media files smaller. Different codecs provide different types of compression to fit specific use cases. Not all video codecs are fit for live streaming.
A few examples of widely used video codecs for streaming are Motion-JPEG (MJPEG), H.264/AVC, and H.265/HEVC. H.264/AVC is arguably the most commonly used codec today. H.265/HEVC is the next generation of codecs after H.264/AVC. It promises identical quality to H.264 at about half the bitrate, decreasing upload bandwidth requirements.
Note that audio gets encoded separately from the video. The most commonly used audio codec is called AAC.
Encoding resolution is the video frame size, expressed in pixels as width x height. Two common resolutions are 1280 x 720 (i.e., 720p) and 1920 x 1080 (i.e., 1080p). Higher streaming resolutions such as 4K are less popular because they require significant processing power, upload bandwidth, and 4K resolution support on the viewer’s side.
Because everyone’s setup is a little different, it’s good practice to give viewers a choice of resolutions when viewing your content. If the CDN you’re using includes transcoding (many do), there’s no extra work to be done on your end. Simply send the highest quality stream and the CDN will present the viewer with a range of resolutions.
Frame rate is the number of images encoded per second, in frames per second (fps). Standard frame rates include 24, 25, 30, and 60 fps, with 30 fps being the most widely used setting for online streaming.
Bitrate describes how much data is transmitted per unit of time. Bitrate is commonly measured in kilobits per second (Kbps) and less frequently in megabits per second (Mbps). The higher the bitrate, the higher the video quality – but also the larger the file size.
Finding the right bitrate setting is about balance. A low bitrate setting will cause the live stream to look jittery and low quality. On the other hand, setting the bitrate too high may cause video buffering for viewers because the file size becomes too large.
The bitrate setting will depend on the chosen codec, resolution, and frame rate. For example, the video bitrate range for a 1080p at 30 fps stream is between 3,000–6,000 Kbps, whereas the bitrate range for 4K 60 fps streaming is between 20,000–51,000 Kbps.
In addition to adequately chosen bitrate, another crucial factor for high-quality online video delivery is sufficient local upload bandwidth. No matter how high the bitrate or how powerful the hardware encoder, low bandwidth can become the bottleneck for streaming quality.
Above is a screenshot of the encoding settings tab in Pearl Web UI
Streaming protocols: What they are and how they work
A streaming protocol is a method by which multimedia is delivered to the streaming destination. It’s a set of rules that decides how to cut up the encoded video into smaller chunks and deliver it to the destination, on time and in the correct order. Different hardware encoders support specific sets of streaming protocols. In addition, some streaming protocols will only work with particular codecs, whereas other protocols are codec-agostic.
Different video streaming protocols can deliver video online with varying degrees of delay. For example, some protocols can instantly transfer data from the hardware encoder to the destination, whereas others take more time. This is known as streaming latency.
For one-way transmissions, some latency is no big deal. For events with interactivity, however, high streaming latency is unacceptable. Thus, latency requirement is one of the factors that inform the choice of streaming protocol.
One of the most commonly used streaming protocols is the Real-Time Messaging Protocol (RTMP) and its secure variant (RTMPS). RTMP(S) is a robust and universally supported protocol. However, it only works with the H.264 codec and has some latency (3–30 seconds).
HTTP Live Streaming (HLS) is another common protocol supported by nearly every browser, operating system, and even Smart TVs. HLS only works with H.264 and H.265 codecs.
A direct HLS competitor is MPEG-DASH. Unlike HLS, MPEG-DASH is a codec-agnostic protocol. When it comes to streaming latency, both HLS and MPEG-DASH are on the higher end of the scale (30–45 seconds).
Secure Reliable Transport (SRT) is an open-source, codec-agnostic streaming protocol. It enables robust, low-latency streaming even over suboptimal networks. Its ability to deliver high-quality content in near real-time over the Internet gives broadcasters a viable alternative to expensive satellite technology. SRT is not as widely supported as RTMP, for example, but it is gaining popularity and support in the realm of hardware encoding.
Advice on choosing a hardware encoder
Hardware encoder models are priced based on the number and type of input connectors, supported streaming and encoding technologies, and, most importantly, processing power. Every additional input source and encoding channel adds extra load on the encoder’s CPU. Higher-end hardware encoders, like Pearl-2, can capture multiple audio and video sources, encode multiple channels at a high resolution, and stream to multiple destinations simultaneously. More basic models may only capture one or two sources and stream one program to one destination.
We recommend choosing a hardware encoder based on your encoding and streaming requirements. For example, if you are looking to capture just one input from a production mixer and stream it to a single online destination – consider a single-channel encoder like Pearl Nano. On the other hand, if you are looking to capture multiple HDMI, SDI, and perhaps NDI sources and stream multiple encoded channels to multiple destinations – consider a workhorse hardware encoder like Pearl-2.
Originally published on June 2, 2019, this post was updated on Nov 1, 2021, with more relevant information.