At the start of October 2009, x264 was completely unsuitable for this use-case. Its handling of tiny VBV buffers, especially without the RC-lookahead (which we’re forced to turn off), was disastrous. And the latency added by threading was completely intolerable in many cases, especially considering that we want to use as much of that 200ms as possible for the VBV buffer. None of this was surprising, of course: low-latency is a use-case that requires very specialized features that most encoders don’t have. In short, x264 needed a miracle.
Fortunately, there was a startup–which has requested not to be named–that saw the potential here. With a few features, x264 could be turned into the most powerful low-latency streaming platform in the world. So, in October 2009, we began work.
...
No longer does 200ms seem out of reach. If anything, it’s now far more than we need. Because with –tune zerolatency, single-frame VBV, and intra refresh, x264 can achieve end-to-end latency (not including transport) of under 10 milliseconds for an 800×600 video stream. And it’s all open source. Furthermore, CELT provides the perfect open source low-latency audio equivalent for x264’s video. We already have multiple companies building software around these new features.
Videoconferencing? Pah! I’m playing Call of Duty 4 over a live video stream!