94% reduction in basic Instagram video processing time. At the beginning of 2021, we made a projection that within 12 months we will not have enough capacity to serve everyone a video upload. But in our never-ending quest to prioritize efficiency, we found ways to meet this growing demand and expand our infrastructure by making more use of our existing machines.
Instagram makes numerous encrypted versions of uploaded videos, each with different properties. By reusing one type of video encoding to generate another, we spent 94% less computational resources on low-view video encodes. With more resources available, more advanced encodings can be created, allowing more people to enjoy crisper, smoother video.
Instagram Outputs Video Computing
For each video uploaded to Instagram, we generate two types of video encoding.
Minimal feature encoding is compatible with all Instagram clients. Low compression efficiency makes it easier to decode and play on older devices.
The advanced encoding uses new compression techniques for higher-quality playback. In the example below, a close-up of two video frames shows how fewer bits can provide sharper detail (note the sharpness of the video on the right compared to the video on the left).
As a result, videos take a long time to publish, or they don’t publish at all. Our advanced encoding was only able to cover 15% of the total playback time. We also predicted that spending all of our processing power on a minimalist version would soon fail to deliver advanced video encoding playtime.
Instagram creates two classes of encodings with minimal functionality. Generates basic adaptive bitrate (ABR) encoding for each video. For the most stable playback, customers can choose the version that best fits their connection speed to avoid hangs due to bandwidth changes. This is a technique called adaptive bitrate streaming.