[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