On Saturday 02 June 2007 11:40:16 am Jan Uhlir wrote: First of all, let me explain something about MLT and its history... I would not even expect to generate DVD compliant output directly from kdenlive/MLT at this time. MLT was written firstly and with priority given to *uncompressed* output. I have even hardly used the ffmpeg-based output module, and I already know of some limitations and flaws. I have on my TODO for MLT to revisit the avformat (ffmpeg) module.
For starters, it does not provide for any sort interlace-based encoding as is typical with DVD Video output. Therefore, you should be deinterlacing until this is fixed. Without it, you will get a lot of compression artifacts on inter-field motion. Try adding progressive=1 to the kdenlive export profile. > Avidemux exported sequence, non-jerking video: Avidemux has placed much emphasis on encoding and output, particularly DVD Video. > Frames sequnce > I(06) B(08) B(08) P(06) B(08) B(08) P(06) B(08) B(07) P(06) B(08) B(07) > I(06) > > I frame i every 12 frame, so GOP = 12 ? > B frames present, interesting. > > Image size 720x 576 > Frame Rate 25.000 fps > # of frames 332 frames > Codec 4CC MPEG > Video duration 00:00:13.280 > Aspect Ratio Pal 4:3 (16:15) > > Extra properties: > Packed Bitstream No > Quartel Pixel No > GMC No > > Audio: > Codec AC3 > Channels STEREO > Bitrate 32000 Bps / 256 kbps > Frequency 48000 Hz > Audio duration 00:00:13.472 > VBR No > > > Kdenlive rendered, jerking video, the same clip: > I(31) P(18) P(12) P(08) P(06) P(06) P(06) P(06) P(06) P(06) P(04) P(04) The "(31)" after the first frame (I) indicates quantisation, and 31 is the max quantisation. That explains the very poor quality at the beginning, but it might be a bug in consumer_avformat; I do not yet know. > P(06) P(06) P(06) I (06) I frame i every 15 frame, so GOP = 15 (as was set > in render profile) There are no B frames at all! In the kdenlive export profile you can add b_frames=2, and it should output with b frames. > Image size 720x 576 > Frame Rate 25.000 fps > # of frames 320 frames (12 frames missing, interesting!) Hmm.. is kdenlive adding real_time=0 to all export consumers? It should. If not, or to be sure, try adding real_time=0 to the export profile. Realtime behaviour will drop video frames when computer can not output fast enough. It should only be used for monitoring scenarios (playback) and turned off for transcoding. > Codec 4CC MPEG > Video duration 00:00:12.800 > Aspect Ratio Pal 4:3 (16:15) > > Extra properties: > Packed Bitstream No > Quartel Pixel No > GMC No > > Audio: > Codec AC3 (MP2 also tested) > Channels STEREO > Bitrate 56000 Bps / 448 kbps (128, 192, 256 kbps also > tested) > Frequency 48000 Hz > Audio duration 00:00:12.768 > VBR No > > forum.doom9.org: GOP's: I, P, and B frames explained... > http://forum.doom9.org/archive/index.php/t-19436.html > > This information is interesting: > > I noticed some confusion about B frames, so I thought I would write down a > quick explaination of an MPEG "GOP", or, "Group Of Pictures", as explained > to me by a professor ... > Oh, BTW, in MPEG2 at least, a GOP order is always IPBBPBBPBBIPBBPBB etc > etc. (pending on your GOP size), but it is always 1 I, 1 P, and 2 B's, then > you can stack more groups of "PBB"'s in that one GOP if needed (usually up > to 15 total frames. ... I do not believe this is correct. It represents a most typical scenario, but not a requirement AFAIK. I will have to lookup whether DVD Video specifies usage of b frames. > This information indicates that Avidemux processed clip (cut and copy > operation from original stream) is very close to this IBBPBBPBBPBBI.. > order. And this works! Well, avidemux does not directly use the ffmpeg implementation. It builds upon it as well as mpeg2enc. I think it is a bit of a stretch to say lack of B frames is the problem at this point, but it could be. > Contrary, Kdenlive exported video is IPPPPPPPPIPPPP.. only stuff. No B > frames at all. May this be related? Is this MTL or Kdenlive specific? What > avlib parameters I can use to achive desired IBP frames combination? b_frames=2 Also, I think it would be interesting to work on getting a good quality DV AVI out of kdenlive and then try using it with mjpegtools mpeg2enc (you can use Kino as a frontend) to see what the result is. At this time, I would suggest then just focus on getting a high quality output from kdenlive and then using avidemux if you want to get good encoded output to MPEG-2 or MPEG-4. -- +-DRD-+
