The Beginner’s Guide to Video Encoding, Decoding, and Transcoding
Are you new to the world of video streaming or broadcast? With so much terminology, it’s easy for beginners to get confused and overwhelmed. That’s why we started the video encoding basics series of blog posts to explain in simple terms, the basic principles that underlie what we do here at Haivision.
Einstein said, “If you can’t explain it simply, you don’t understand it well enough”. So, in this post, we’re going back to basics with an answer to a commonly asked question: what are the differences between video encoding, decoding, and transcoding?
What is Video Encoding?
There are two types of video encoding; live and file-based, and it’s important to make the distinction between them. Live video encoding is the process of compressing large, raw video and audio files so that they use less network bandwidth. When it comes to transporting uncompressed raw video, this can mean a colossal amount of data to send over any connection. Given the constant struggle for bandwidth efficiency, compression significantly reduces the bandwidth required, making it possible for real-time video streams or files to be easily transmitted across constrained networks such as the public internet.
When working with video files rather than live video, encoders are used to compress and reduce the size of video content so that it can take up less storage space and be easier to transfer from one part of a video production workflow to another.
Haivision CMO, Peter Maag explains more about video encoders is in this video:
Hardware encoders are turnkey devices with dedicated processing power for low latency encoding of video streams whereas software encoders have to share CPU and other hardware resources. Hardware video encoders like the Haivision Makito X series are used by a wide range of industries for delivering flawless quality, low latency video in many different applications including:
- Broadcast – for backhaul, live remote interviews, return feeds, and remote production
- Enterprise – for internet streaming of your all-hands meetings, remote contribution, as IPTV, and digital signage
- Defense – for mission critical Intelligence, Surveillance and Reconnaissance (ISR) applications
Software encoders can be installed on standard off the shelf hardware or as virtual machines (VM) in data centers or cloud platforms. Although software can be a great option for file-based encoding of video content, they don’t offer ultra low latency levels comparable to dedicated hardware encoders and therefore not suitable for most live broadcast contribution applications.
What is Video Decoding?
Essentially the opposite of live encoding, video decoding is the process of decoding or uncompressing encoded video in real-time. A video decoder converts an encoded video stream to HDMI for display on a screen or to SDI for connected to broadcast production systems including video production switchers. Video decoders can also decode embedded audio tracks for sound production as well as metadata for information on video formatting, time codes, subtitles, and closed captioning. For non-broadcast applications such as ISR, metadata may also include vital KLV information.
Some video decoders are able to support multiple incoming streams and include the ability to resync them prior to decoding to SDI.
Watch the video for more about decoding:
What is Video Transcoding?
Video transcoding is the process of converting an encoded stream from one format to another, or from one size to another. The source video can either be real-time or file-based. Most transcoders use a two-step process of decoding and re-encoding. Step one involves decoding the original data into an intermediate format, sometimes called a mezzanine, and step two re-sizes and re-encodes the video to a new or several new formats depending on the final viewing device. Some transcoders such as Haivision’s KB Series can also act as encoders by accepting an uncompressed video source such as SDI for encoding into multiple formats.
A typical application for a video transcoder is for OTT services where a high quality source is re-encoded into a multitude of bitrates and resolutions for adaptive bitrate streaming protocols such as HLS and MPEG-DASH. This enables a single video source to be delivered to many different types of viewing devices including TVs, computers, and smartphones as well as directly to social media platforms such as Facebook and YouTube.
Watch Haivision’s Product Marketing Director, Mark Horchler as he shares some of the most common use cases for video transcoders: