[FFmpeg-user] Warning: VBV buffer size not set

Hans Carlson forbyta at gmx.com
Wed Dec 12 21:06:04 EET 2018


On Sat, 8 Dec 2018, Ulf Zibis wrote:

> with:
> ffmpeg -i "concat:CYD-001.vob|CYD-002.vob|..." -c copy CYD_copy.vob
> I get the warning:
> [svcd @ 0x56377151e140] VBV buffer size not set, using default size of 130KB
> If you want the mpeg file to be compliant to some specification
> Like DVD, VCD or others, make sure you set the correct buffer size
>
> How can I aviod the warning?

Two things...

1) This has nothing to do with the warning you're receiving, but you 
should NOT concat VOB's like that. It works... "sometimes"... which is why 
many people unfortunately suggest it, but it quite often does not work. 
VOB's are not simple MPEG files.  You'd be better off using one of the 
following methods:

   - tools/dvd2concat (script included with ffmpeg source)
   - mpv ... --stream-dump ...
   - mplayer ... --dumpstream ...

You'll need to read the man pages for each to get the exact command and 
options.

2) With regards to the VBV buffer size warning...  Unfortunately, I don't 
have a good answer, only a little history.  This has been an issue for a 
few years and I wish I knew how to fix it.  I've resorted to patching the 
source to use a higher default buffer size but I know that's not the 
correct or even a good solution.  I've always intended to try and dig 
deeper to find the cause, but lack of time and experience with the code 
has always halted my progress.

The "VBV buffer size not set" warning itself is nothing new... it's been 
in the code for several years as far as I can tell.  But I never noticed 
the warning until around version ~3.0... specifically, this change:

   https://github.com/FFmpeg/FFmpeg/commit/079b5d4ef888bd42bf0147a6d964b8bc9ec0f3c5#diff-00823e6d5f4d3807869c905426e6bdd1

After that change, the VBV warning started to get displayed when doing a 
stream copy on mpeg files.  From what I can tell, in versions prior to 
this change ffmpeg determined the "VBV buffer size" for the destination 
file by looking at the source file. But when the above change happened 
that value was no longer available, so internally no buffer size was found 
for the destination file, which triggers the "VBV buffer size not set" 
warning message.

Starting with the above change (or there abouts), ffmpeg started to use a 
different internal structure ("side data") to store some of the 
information about a file.  My guess as to the problem with the VBV buffer 
warning is that it has something to do with how this "side data" is 
populated, but I've never dug deep enough to figure that out.


More information about the ffmpeg-user mailing list