Transcoding: What it is and how does it work?
Last updated: 8 November 2022
Why adaptive video streaming is important?
The internet is an unreliable patchwork of thousands of interconnected networks. There is no end-to-end control or quality control. Some users have a great and steady gigabit link, while others are on a flaky shared WiFi connection. Their bandwidth will vary.
Video is by far the heaviest application on the web. To deliver a video in real-time to a viewer, the end-to-end connection needs to support faster than real-time delivery. If there is a hiccup or a performance drop, single bit rate streamed and progressive downloaded videos will buffer. And that’s a bad experience.
Here comes adaptive streaming. Instead of creating one quality, multiple qualities of videos and live streams are created by the process that is called transcoding.
How does adaptive streaming work?
Video players have small algorithms that check the device’s screen size, processing capacity and bandwidth. Depending on these variables, the player decides which quality it retrieves from the streaming platform.
In the old days, adaptive streaming was done over proprietary protocols, with proprietary players and servers, such as RealVideo and Windows Media Streaming.
Today adaptive streaming is based on HTTP traffic, with video chunks and manifest files. There are some downsides to this (no sessions, lots of logs!) but the upsides are CDN caching (scaling and performance), and finer granular bit rate switching.
The process of splitting videos into these small segments (or chunks) is called transmuxing. Some transcoders automatically transmux, but transmuxing can also be done on the fly after transcoding. Transcoding is CPU intensive, transmuxing is not. The most common formats for adaptive HTTP streaming are HLS (web) and DASH (OTT).
In order to offer adaptive streams, you need your videos transcoded to multiple bit rates.
What is transcoding?
Although transcoding is often confused with encoding, these are two different processes. Encoding is the creation of a video or streams out of a source. Transcoding is the process of creating one or multiple qualities of a video (or stream), suitable for playback on the web. If you want to do professional streaming on the web, you want to transcode to multiple qualities and use adaptive bit rate streaming instead of progressive downloads. The users will experience higher quality and much less buffering.
How to transcode a video?
1. Video platforms
Most video platforms transcode automatically for you. Upload a video, and magically they create multiple qualities. They charge a fee per minute. It’s easy. However, you have zero control over the qualities, and also no control over the price.
Monetising transcoding is one of the key revenue drivers for video platforms. Since this is CPU intensive, they outsource this to third-party cloud services. And they are expensive. Therefore, there is a potential incentive to reduce quality, which may not be in your interest.
2. Build your own transcoding farm
We call this on-premises transcoding. You buy or lease servers, install transcoding software, and process your own videos. This gives you full control over costs and quality.
You can tune the transcoding, and add additional processing, such as colour correction, dynamic content insertion and encryption. Full control. Unless you have a large operation, it can become quite expensive, both in technical and Human Resources.
Most video platforms don’t allow you to upload your transcoded media directly to their origin services. Their workflow is locked in with their own transcoding process. Thus, you need to find an alternative for hosting and delivery too.
3. Use cloud transcoding services
An alternative to video platforms and on-premises is to use cloud transcoding services. Clouds offer professional transcoding services and offer you a lot of control over the profiles. To implement and operate such a service, you need an expert, and clouds can become costly.
Clouds can become expensive since transcoding is a CPU-intensive service, especially for live streaming. But it is a nice alternative between on-prem, and video platform-based transcoding.
In the past, Jet-Stream outsourced transcoding to clouds too. We took the investment of building automated workflows and offering easily accessible transcoding services to our customers. By doing this once, for many, and by automation, we scaled and saved our customers’ costs. But it was time to move on. We wanted to offer our customers more control over quality. We also wanted to run transcoding in-house, due to GDPR compliance. And we wanted to manage costs better.
Last year we decided to build our own cloud. It is located in Europe, hosted by premier data centres, that use green energy. And we decided to run all applications in-house, on our own cloud. The good news was that we already had a transcoding workflow (GUI&API) in place. Therefore, we only had to replace the engine.
4. Jet-Stream Maelstrom.
The best of these three worlds. It is easier than video platforms. Yet it offers full control over quality and cost per video, and gives you the freedom to transcode, upload and automate video processing workflows.
How to transcode with Jet-Stream?
The fundament of the Jet-Stream MaelStrom transcoding service is FFmpeg. Basically, everyone in the industry uses this great library. We created our own tuned builds, with tuned transcoding profiles. We watched a lot of videos ;).
Moreover, we added extra profiles: QuadHD and 4K. And we tuned the existing profiles. Besides, we compared our own new profiles with the old AWS transcoded outputs, to make sure that the quality matched, or exceeded that service.
We analysed the behaviour of adaptive streaming players. Basically, they jump to the highest bit rate, or to the lowest bit rate. And sometimes a bit rate in the middle is used. We learned that 3-4 bit rates are sufficient for most use cases in the EU zone, while some platforms automatically transcode to 8 or even 12 bit rates: that requires unnecessary CPU resources and storage, while it does not offer a better QoE. Of course your use case may need many bit rates, and that is fine: we support it all.
Wach the Easy, Smart, Expert transcoding demo video (6 minutes) here.
We have a philosophy which we call easy, smart, and expert. We also applied it to the transcoding. Thus, Jet-Stream gives you all the freedom over transcoding:
Easy: drag and drop
Using Jet-Stream services should always be easier than video platforms. So, you can simply drag and drop a video file on one of the transcoding presets, and it magically creates the qualities. Pricing is competitive.
Smart: control quality and costs
Smart means that you can tune the service to match your specific needs, in costs and qualities. You can create custom transcoding profiles and select qualities. Per video, you can decide the qualities and the costs. A level of control you won’t find with video platforms.
You can select to keep the original video at the highest bit rate. The transcoder will add additional bit rates. This way you can stream up to 8K, adaptively. It’s a feature you won’t find with regular video platforms.
Expert: full automated control
Expert means that you can take full control. Some examples:
A great expert example is the bypass feature. Upload media directly to Jet-Stream Clouds origin servers. We automatically do the transmuxing for you. You can run your own on-premises or 3rd party cloud transcoding service, and directly upload your media to the Jet-Stream Origin services, in the original, pristine quality. You can even add remote origin video hosting services in a single click.
Why Jet-Steam transcoding?
With Jet-Stream you get easy, smart and expert features in one single platform. Imagine the costs savings compared to building such a workflow on a cloud yourself. Jet-Stream enables you to batch-to-ingest pipelines and you can decide per video which easy, smart or expert profile is used. Besides, APIs let you automate and control the entire workflow.
Moreover, you can also run your own origin services and transmuxers and connect these origins to Jet-Stream in a single click. Multiple quality renditions of the same video are automatically grouped into logical assets by Jet-Stream’s origin services. The built-in real-time transmuxing service outputs adaptive HTTP HLS and DASH videos.
If you want to stream professionally, you will want to use transcoding for HTTP adaptive streaming. Feel free to test drive our service and see for yourself how easy and powerful the MaelStrom transcoding service is.