What Is Transcoding and Why Is It Critical for Streaming?
March 20, 2015 by
You, like most folks thinking about streaming media, probably fall into one of two camps—you either already know something about transcoding, or you’re wondering why you keep hearing about it. If you aren’t sure you need it, bear with me for a few paragraphs. I’ll explain what it is (and isn’t) and why it might be critical for your success with future streaming, especially if you want to deliver adaptive streams to any device.
So, what is transcoding?
First, the word transcoding is commonly used as an umbrella term that covers a number of digital media tasks:
Transcoding, at a high level, is taking already-compressed (or encoded) content, decompressing (decoding) it, and then somehow altering and recompressing it. As an example, you might change the audio and/or video format (codec) from one to another, such as converting from an MPEG2 source (commonly used in broadcast television) to H.264 video and AAC audio (the most popular codecs for streaming). Other basic tasks could include adding watermarks, logos, or other graphics to your video.
Transrating refers specifically to changing bitrates, such as taking an HD video input stream at 5 Mbps and converting it into one or more lower-bitrate streams (also known as renditions): 3 Mbps, 1.8 Mbps, 1 Mbps, 600 kbps, etc.
Trans-sizing refers specifically to resizing the video frame; say, from a resolution of 1920x1080 (1080p) down to 1280x720 (720p).
When you say transcoding, you might be referring to any combination of the above tasks—and typically are. Video conversion is computationally intensive, so transcoding usually requires more powerful hardware resources, including faster CPUs or graphics acceleration capabilities.
Let’s look at what transcoding is not.
Transcoding should not be confused with transmuxing, which can also be referred to as repackaging, packetizing, or rewrapping. Transmuxing is when you take compressed audio and video and—without changing the actual audio or video content—(re)package it into different delivery formats. For example, you might have H.264/AAC content, and by changing the container it’s packaged in, you can deliver it as HTTP Live Streaming (HLS), Smooth Streaming, HTTP Dynamic Streaming (HDS), or Dynamic Adaptive Streaming over HTTP (DASH). The computational overhead for transmuxing is much smaller than for transcoding.
When is transcoding critical? Simply put, when you want your content to reach more end users.
For example, let’s say you want to do a live webinar from your office. You might be capturing your webcam audio and video with a Flash-based desktop application that generates 1080p H.264 video and Speex audio, and then delivering that to viewers on the Internet.
However, if you stream that directly to end users, you will have a few problems. First, viewers without sufficient bandwidth aren’t going to be able to view the stream—their players will be buffering constantly as they wait for packets of that 1080p video to arrive. Secondly, in order to render the Speex audio, most people will need to watch using Flash Player on a computer. Collectively, you’ve just excluded almost anyone with slower data speeds, tablets, mobile phones, and connected TV devices.
Using a transcoder, you can simultaneously create a set of time-aligned video streams, each with a different bitrate and frame size, while converting the Speex audio to AAC audio. This set of Internet-friendly streams could then be packaged into several adaptive streaming formats (HLS, etc.), allowing you to now reach almost any screen on the planet.
A more common example is when you're doing a live broadcast using a camera and encoder, or with an IP camera. Again, to reach the largest number of viewers with the best possible quality their bandwidth and devices allow, you’d want to support adaptive streaming. You’d stream one HD H.264/AAC stream to your transcoder (typically located on a server image in the cloud) to create multiple H.264/AAC renditions at different bitrates and resolutions. Then you’d have your media server (which might be the same server as your transcoder) package those renditions into one or more adaptive streaming formats before delivering them to viewers.
Where does Wowza fit in?
Wowza provides robust live transcoding software capabilities to power any workflow. With Wowza Streaming Engine media server software you can take full control of your workflow by deploying downloadable software onto an on-premises or cloud server. If you don't want to manage and configure your own server, you can use the Wowza Streaming Cloud live-streaming service, which is a fully managed video solution that can transcode and deliver your content globally with HTTP adaptive bitrate streaming.
Interested in learning more about transcoding? Check out some of our popular resources: