12 Patterns for High Volume Video Encoding

Video transcoding is complex. It is a multi-dimensional problem, and each dimension is complex on its own; taken together, the complexity multiplies. If you have to transcode large volumes of video, you have to worry about massive data transfer, the nuts and bolts of encoding settings, player/device compatibility, and a range of other concerns. Many organizations have dedicated employees, or even teams, to manage encoding infrastructure - even when using third-party encoders. But not everyone has that luxury. So how do you manage this complexity? What are the best practices for encoding large volumes of video? As the leader in the cloud encoding space, Zencoder knows more about high volume video encoding than just about anyone. We encode millions of videos each month for hundreds of customers, and provide hands-on support to these customers whenever needed. So we have seen just about every approach to high volume video encoding, and we know what works well and what doesn't. Over the last few months, we've reflected on what we've learned, and have distilled a list of 12 rules or patterns for successful high-volume video encoding. Here is the basic list, along with a brief summary of each pattern. More discussion will follow. 1. Eliminate bandwidth bottlenecks. At large volumes, data transfer becomes a bigger problem than transcoding. Choose hosting and transfer approaches that eliminate this problem. 2. Focus on total library size. The right approach to bitrate can reduce library size by 30% or more, with no effect on perceived quality. At large volumes, this can mean enormous savings. 3. Make your video beautiful. There is no excuse anymore for less-than-perfect video. Take the time to find the encoding settings that make your video look great. 4. Target more than one device with each output. The same file can often be repurposed for multiple target devices - web, mobile, TV, and beyond. 5. Use adaptive bitrate streaming. Without this, you can't ensure a good user experience, your CDN bill will suffer, and you can't deliver video to certain devices at all. 6. Use elastic transcoding resources. Video transcoding loads are enormously variable. Encoding is a perfect candidate for cloud computing resources. 7. Demand 100% success. Transcoding shouldn't fail due to codec incompatibility, scalability problems, or random instability. 8. Use the same system for large batches and for daily workflow. These are two sides of the same problem, not two separate problems. 9. Stay above board with licensing. Legal, properly licensed video publishing isn't really that difficult. 10. Don't wait for others. Or for yourself. Keep queue times miniscule and predictable, at any scale. 11. Choose your speed. Some video encoding should happen near-instantly, while other encoding isn't needed for hours. 12. Keep a transparent quality copy for archiving. In the constantly changing world of video publishing, proper archiving is critical. We'll be writing more about these patterns in depth over the next few months, explaining each pattern and describing why it matters. Each pattern will be backed up by real-world examples, data, and recommendations. And while we're obviously biased towards some approaches, these rules are applicable to anyone doing large-scale transcoding, whether you're using a cloud encoding service like Zencoder, running in-house encoding software or hardware, or rolling your own. We'll be up front about our opinions, and we will even recommend some things that run counter to the way Zencoder works. And remember that if we weren't opinionated, and didn't care about finding the best approach to high volume encoding, we would never have grown to become the market leader.