[FFmpeg-user] deinterlacing with ntsc-dvd

Matthew Morgan matthew at lifandi.org
Fri May 24 02:59:30 CEST 2013


On 05/22/2013 11:29 AM, Francois Visagie wrote:
>> -----Original Message-----
>> From: ffmpeg-user-bounces at ffmpeg.org [mailto:ffmpeg-user-
>> bounces at ffmpeg.org] On Behalf Of Matthew Morgan
>> Sent: 22 May 2013 14:41
>> To: FFmpeg user questions
>> Subject: Re: [FFmpeg-user] deinterlacing with ntsc-dvd
>>
>> On 05/22/2013 08:08 AM, Francois Visagie wrote:
>>>> -----Original Message-----
>>>> From: ffmpeg-user-bounces at ffmpeg.org [mailto:ffmpeg-user-
>>>> bounces at ffmpeg.org] On Behalf Of Matthew Morgan
>>>> Sent: 22 May 2013 13:08
>>>> To: ffmpeg
>>>> Subject: [FFmpeg-user] deinterlacing with ntsc-dvd
>>>>
>>>> I'm having trouble with some material I'm converting to DVD with
>>>> ffmpeg; there is significant ghosting on some players, and some
>>>> google searches
>>> have
>>>> pointed out that this is often related to interlacing.
>>>>
>>>> The source materialis interlaced, top-field dominant, but when I run
>>>> it throughffmpeg using "-target ntsc-dvd", mediainfo shows the output
>>>> as being progressive.
>>>>
>>>> Here is my ffmpeg command line:
>>>>
>>>> ffmpeg -i dora_fairytale_cut.mpg -pass 1 -target ntsc-dvd -b:v 4000K
>>>> /dev/null && ffmpeg -i dora_fairytale_cut.mpg -pass 2 -target
>>>> ntsc-dvd
>>> -b:v
>>>> 4000K dora_fairytale_cut_compressed.mpg ffmpeg version N-53018-
>>>> ge70e258 Copyright (c) 2000-2013 the FFmpeg developers
>>>>   built on May 13 2013 07:50:37 with gcc 4.6 (Ubuntu/Linaro
>>> 4.6.3-1ubuntu5)
>>>>   configuration: --prefix=/opt/mmedia --enable-libxvid --enable-gpl
>>> --enable-
>>>> libtheora --enable-libmp3lame --enable-libfaac --enable-nonfree
>>>> --enable-
>>>> libv4l2 --enable-x11grab --enable-libvpx
>>>>   libavutil      52. 30.100 / 52. 30.100
>>>>   libavcodec     55.  9.100 / 55.  9.100
>>>>   libavformat    55.  7.100 / 55.  7.100
>>>>   libavdevice    55.  0.100 / 55.  0.100
>>>>   libavfilter     3. 65.100 /  3. 65.100
>>>>   libswscale      2.  3.100 /  2.  3.100
>>>>   libswresample   0. 17.102 /  0. 17.102
>>>>   libpostproc    52.  3.100 / 52.  3.100
>>>> [mpeg @ 0xa43ae00] max_analyze_duration 5000000 reached at 5024000
>>>> microseconds [NULL @ 0xa43b780] start time is not set in
>>>> estimate_timings_from_pts Input #0, mpeg, from
>> 'dora_fairytale_cut.mpg':
>>>>   Duration: 00:46:56.26, start: 0.500000, bitrate: 6569 kb/s
>>>>     Stream #0:0[0x1bf]: Data: dvd_nav_packet
>>>>     Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s
>>>>     Stream #0:2[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480
>>>> [SAR
>>> 8:9
>>>> DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc File '/dev/null'
>>> already exists.
>>>> Overwrite ? [y/N] y Output #0, dvd, to '/dev/null':
>>>>   Metadata:
>>>>     encoder         : Lavf55.7.100
>>>>     Stream #0:0: Video: mpeg2video, yuv420p, 720x480 [SAR 8:9 DAR
>>>> 4:3],
>>> q=2-
>>>> 31, pass 1, 4000 kb/s, 90k tbn, 29.97 tbc
>>>>     Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s Stream
>>> mapping:
>>>>   Stream #0:2 -> #0:0 (mpeg2video -> mpeg2video)
>>>>   Stream #0:1 -> #0:1 (ac3 -> ac3)
>>>> Press [q] to stop, [?] for help
>>>> frame=84404 fps=107 q=3.4 Lsize= 1562918kB time=00:46:56.28
>>>> bitrate=4546.2kbits/s dup=8 drop=0 video:1375112kB audio:154016kB
>>>> subtitle:0 global headers:0kB muxing overhead 2.209759%
>>>>
>>>> My question is, should I be specifying any kind of options to make
>>>> the deinterlacing happen correctly?  Is this even likely to be my
>>>> problem?  If
>>> you
>>>> need it, I can also post mediainfo output for the source and output
> files.
>>> PS. The options ' -flags ildct+ilme' _preserve_ interlacing. This is
>>> accepted by the DVD standard and incurs least quality loss.
>> Thanks!  Where in the command line should I put this?  After `-target
> ntsc-
>> dvd`?
> I normally do, to prevent my options being overridden by macro settings such
> as -target.
>
Just in case anyone else on this list has had the same ghosting problem, preserving the interlacing DOES fix it!  I did have to add `-top 1` to get it to mark it as top-field-first, but otherwise Francois' flags were perfect.  So it's all in one place, here's my command now:

ffmpeg -y -i dora_map_cut.mpg -pass 1 -target ntsc-dvd -b:v 4000K -flags ildct+ilme -top 1 /dev/null &&  ffmpeg -y -i dora_map_cut.mpg -pass 2 -target ntsc-dvd -b:v 4000K -flags ildct+ilme -top 1 dora_map_cut_compressed.mpg

My question now is what do these flags actually do:  prevent a deinterlacing filter from being run, or simply change what the header info says?  Without the flags is the output video still interlaced but incorrectly marked as progressive?


More information about the ffmpeg-user mailing list