Skip to content
  • Fiona Glaser's avatar
    Add support for single-frame VBV, improve compliance · 24ef8748
    Fiona Glaser authored
    This allows both constant-framesize and capped-framesize encoding.
    Literal constant framesize isn't actually supported yet due to the lack of
    filler support.
    Example with 30fps video: --vbv-bufsize 200 --vbv-maxrate 6000 will ensure that
    no frame is ever larger than 200 kilobits.
    
    One example use-case of this is for zero-delay streaming where bandwidth costs
    need to be minimized.  If every frame is smaller than 200 kilobits and the
    client has a 6 megabit connection, every single frame can be instantly sent
    to the client and handled without any decoder-side buffer.
    
    Fix a mistake in VBV calculation--this may have caused the VBV to be slightly
    non-compliant in some situations without x264 realizing it.
    Add primitive prediction handling for rows with quantizers lower than their
    reference.  This slightly improves VBV in CBR mode.
    Various other minor improvements to VBV, mostly to make single-frame VBV work.
    
    Commit sponsored by a media streaming company that wishes to remain anonymous.
    24ef8748