Bitmovin turns hours into minutes by transcoding video fast using Google Compute Engine

Challenge

These days, nearly everyone shoots video. Maybe it’s a three-minute movie of a cat chasing a laser pointer that’s about to go viral. Sometimes it’s real-time news footage streaming from a sporting event, an awards program or a natural disaster. The challenge: getting that video out onto the Internet so that it can be watched in a matter of minutes, or even seconds. A necessary step is transcoding – decompressing the raw analog or digital files, and then converting them into different compressed formats designed for fast, efficient streaming over the Internet right into a desktop or mobile client.

Traditional transcoding solutions require a lot of processors, a lot of memory and a lot of storage. Even then, most encoding services run far slower than real time – meaning it takes more than an hour to transcode an hour’s worth of high-definition video. That’s why so many entertainment companies, news sites and other broadcasters stream live Internet at low resolution, so their transcoders can keep up, explains Christopher Müller, co-founder and CTO of bitmovin.

Solution

The bitcodin service from bitmovin uses clusters of servers on Google Compute Engine to transcode HD, 4K and higher-definition video much faster than real time, both for live and on-demand streaming over the Internet. “We spool up servers for a few minutes, we load them, we run them, then we shut them down. That works really well with Google. We are impressed,” says Müller.

While bitcodin can accept input from and transcode output into any of the Web’s popular formats, the company’s founders were instrumental in the creation of a new streaming technology called MPEG-DASH (Dynamic Adaptive Streaming over HTTP) developed with MPEG (Moving Picture Experts Group), the industry association behind formats like MP3 music and MP4 movies. YouTube and Netflix are among the first to adopt MPEG-DASH, demonstrating that the format will be a major play in streaming. “We are happy that such big companies are pushing the standard.”

Running on parallel virtual servers on Compute Engine, Bitcodin is written in hand-coded and optimized C/C++. When a customer needs to transcode a high-def video, the data can be uploaded via a browser, streamed over APIs or accessed directly from the customer’s Google Cloud Storage.

With bitcodin, a high-definition video file is transcoded in multiple output qualities using the Compute Engine virtual servers. Recent performance improvements showed transcoding speeds of up to 66 time real-time, i.e., transcoding the video 66 time faster than its playback duration, while also enabling playback during the transcoding process. The resulting transcoded videos are stored in Google Cloud Storage, and then provided to the customer via a CDN. Transcoding content that fast and flexible is no simple task, given the complexity of synchronizing audio and video as well as the instant playback feature of bitcodin. The encoded content is then sent out to the Internet via the broadcaster’s own website.

“A benefit of the bitcodin system is that customers can view the videos as they are being transcoded, to ensure they meet all quality requirements or to immediately publish the content,” says Müller. This saves time, because with other transcoding methods, the work couldn’t be reviewed until the entire transcoding process is complete.

Results

“We have broadcasters as customers that produce news every day at 8 p.m. It took two hours to get the video online. With Google, they can do it in real time. They can encode while they are producing, in fact, in just minutes,” says Müller. “Our customers have immediate output. We can do the same for 4K and even 8K encoding. We can encode 4K video at 5x or 6x real time.”

When it comes to cloud, bitmovin is all in. “We never considered buying servers. bitcodin was designed from the beginning for the cloud. We want nothing to do with hardware. It’s too much overhead,” explains Müller. After all, with several servers used for transcoding one video, if you have hundreds of clients at any one moment you’d need several servers for each of them, resulting in thousands of servers. With Google Compute Engine, bitcodin scales as fast as the business and customers demand.

Müller credits the interconnection speed between Compute Engine and Cloud Storage for bitmovin’s high throughput. Another key benefit to using Google Cloud Platform: the fast provisioning time for spinning up a set of virtual servers, which usually takes less than two minutes, says Müller. “When we transcode the videos, we have to distribute the content between the server instances and the storage, which is really fast. Sometimes, we also need to start hundreds or thousands of servers in parallel. That also works perfectly in Google Cloud Platform.”