![]() |
ffmpeg quirks and corrections
Command line argument -bf states that it is for: use "B frames" (only MPEG-4)
This is incorrect :!: The -bf applies to MPEG-1 ( maybe also MPEG-2 :?: ) -kwag |
Maybe it's a good suggestion to subscribe to the ffmpeg mailinglist?
It's a devel list so most off the posting are source related, but since your a coder U are probebly most welcom there. Maybe after some postings, they will give some support on the kvcd matrixes too... (preferably as in mpeg2enc, yust -K kvcd ;) |
Hi japie, major, and all :)
Yesterday, I spent a good 5+ hours playing with ffmpeg, and I found some tricks to make ffmpeg work better than the default settings. One HUGE problem right now with ffmpeg is that it can't use B frames correctly. It's an encoded mess if you turn on B frames :!: Also, the default VBV buffer is too small. The VBV parameter (-bufsize), which states to be in kbit, is completely erroneous, just like the -bf (use B frames ( only MPEG-4 ), which does add B frames to the MPEG-1 :!: So after hours of playing aroung, and not being able to get good quality with a GOP size of 18 ( worse quality with 24 ), I came up with these settings: Code:
./ffmpeg -on -i your_INPUT_movie_name -s 528x480 -hq -minrate 300 -maxrate 2500 -qmin 6 -qmax 25 -r 23.976 -bufsize 320 -g 18 -i_qfactor .1 your_OUTPUT_movie_nameThis gives a correct VBV size of 40KB ( 20 displayed in Bitrate Viewer ), and a good balance for the P frame compression, to compensate for the loss of B frames. In this case, I was trying 528x480, encoding directly from a VOB piece. Here's the result: http://www.kvcd.net/downloads/ffmpeg-rp-mod.mpg And with the same settings, without adjusting VBV and I to P factor, this is what you get with this line: Code:
./ffmpeg -on -i your_INPUT_movie_name -s 528x480 -hq -minrate 300 -maxrate 2500 -qmin 6 -qmax 25 -r 23.976 -g 18 your_OUTPUT_movie_nameIt's an obvious difference, and in file size too :!: It's VERY sad that ffmpeg can't use B frames correctly. Hopefully, they'll fix it in a future release. Right now, I can see the motion estimation is far better than TMPEG. But the loss of B frames, spoils the quality, specially in higher resolutions. You can clearly see the old "flashing" effect every time a new I frame is inserted. So we really need B frames :( -kwag |
hi kwag
ffmpeg is so promising that its different quirks MUST be spotted and addressed :-D I'd suggest to sign-up to the ffmpeg-devel list and post there detailed reports. I consider the wrong muxing being a big problem, even if it's possible to demux/remux and get some usable results. The mpeg-1/2 b-frames is another important issue. The unstable mpeg-2 support another. Also it seems that the newer CVS does no longer accept VOB input. |
Quote:
This looks extremely promising, and as a matter of fact, It's very useable at 352x240, and probably better than TMPEG :!: I also believe that for making DVDs, where low bitrates are not really used, ffmpeg might just do fine with a GOP of 12 and I, P frames only :cool: Quote:
Quote:
Because I downloaded and recompiled ffmpeg 0.4.7 from the CVS tree last night, and I can process VOBs directly. -kwag |
@major,
Never mind. You are correct.The current ffmpeg CVS version ( 0.4.8 ) is broken :( It can't open VOBs or MPEG-2 files. Waiting for the next CVS update :roll: -kwag |
Site design, images and content © 2002-2026 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2026 Jelsoft Enterprises Ltd.