If you use 2-Pass RC, there
normally is
no need to set VBV at all. And the same applies to CRF mode.
Just set the target
average bitrate as needed (via "--bitrate" option) in order to hit the desired target file size, and let the encoder
optimally distribute the available bits. If the encoder creates some bitrate "spikes" or bitrate "drops", then this is the perfectly normal and expected behavior of 2-Pass ABR (or CRF) mode – it happens for a reason! It's because the bits are "moved" to where they are actually needed
With VBV enabled, you are effectively
forcing the encoder to create a more "uniform" distribution of the available bits. This avoids strong bitrate "spikes" or bitrate "drops", yes. But it also means that the distribution of the available bits is going to
deviate from the "optimal" distribution that the encoder would have chosen
without the VBV restrictions – sometimes more, sometimes less
In other words: VBV can only make the resulting video quality
worse. In the best case, VBV won't affect video quality in a noticeable way. But, certainly, VBV restrictions do
not improve video quality!
VBV is required for two scenarios:- Streaming: Here you necessarily need to avoid bitrate "spikes" that exceed the available network bandwidth in order to ensure "smooth" playback.
- Hardware Players: These players read video data from the disc at a certain (maximum) speed, and they have limited buffering capabilities. So, again, strong bitrate "spikes" are to be avoided in order to ensure "smooth" playback.
(In both of these scenarios, we choose VBV as the lesser of two evils. And, in both scenarios, the required VBV parameters are obvious from the use case)