View Single Post
Old 26th December 2018, 16:25   #1766  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by Rocinante View Post
Thanks for explaining on x264 and linking the vbv related articles, I got a better understanding of using vbv now.

Mainly the problem that I'm facing is how to properly define the buffering model for different types of video. Like there is a CBR/2pass encoding to get accurate targeted average bitrate even though the quality will differ in encoding different sources, so I was looking for a similar function that can produce constant result for max bitrate, and perhaps there is something that I did wrong, I can't seem to get that with vbv.


I can cope with the fact that it maxes out the maximum bitrate, but in my case, sometimes it will exceed it depending on sources and that's what troubling me.

Thanks again for your time.
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)
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 26th December 2018 at 17:05.
LoRd_MuldeR is offline   Reply With Quote