x264 has long held the crown as one of the best, if not the best, general-purpose H.264 video encoder. With state-of-the-art psy optimizations and powerful internal algorithms, its quality and performance in “normal” situations is mostly unrivaled.
But there are many very important use-cases where this simply isn’t good enough. All the quality and performance in the world does nothing if x264 can’t meet other requirements necessary for a given business. Which brings us to today’s topic: low-latency streaming.
The encoding familiar to most users has effectively “infinite” latency: the output file is not needed by the user until the entire encode is completed. This allows algorithms such as 2-pass encoding, which require that the entire input be processed before even a single frame of the final output is available. This of course becomes infeasible for any sort of live streaming, in which the viewer must see the video some predictable amount of time after it reaches the encoder. Which brings us to our first platform: broadcast television.