[FFmpeg-user] Detect interlaced video

Nicholas Robbins nickrobbins at yahoo.com
Tue May 13 22:44:26 CEST 2014

> On Tuesday, May 13, 2014 4:31 PM, Clément Bœsch <u at pkh.me> wrote:

> > On Tue, May 13, 2014 at 10:20:34PM +0200, Oliver Fromme wrote:
>>  Carl Eugen Hoyos wrote:
>>   > Oliver Fromme <oliver <at> fromme.com> writes:
>>   > 
>>   > > Actually I had hoped that there is a flag somewhere 
>>   > > on the DVD, either in the meta data or in the MPEG2 
>>   > > stream itself, indicating whether a title is 
>>   > > interlaced or progressive.
>>   > 
>>   > The flag tells you if the stream was encoded using 
>>   > mpeg2video interlaced or mpeg2video progressive, but 
>>   > to decide whether or mot to deinterlace a video, only 
>>   > the actual content is relevant: Progressive content 
>>   > is often encoded as interlaced and it is of course 
>>   > possible (although unlikely) that interlaced content 
>>   > is encoded using progressive frames.
>>  Ok, thanks for the explanation.  So I will just use the
>>  idet filter to determine whether deinterlacing is required.
>>  By the way, does it hurt to use the yadif filter on frames
>>  that are not interlaced?
> While it might be fine for playback, it will probably alter non interlaced
> frame a lot. You might want to use the timeline system of libavfilter to
> enable the filter in some specific time ranges.
> [...]
> -- 
> Clément B.

Yadif definitely hurts progressive video if it is done on everything. you can see it on smooth motion in particular.

If I understand correctly,

-vf idet,yadif=deint=interlaced:mode=1

should turn video that is a mix of 30 frames per second progressive and 30 fps interlaced into 30 fps progressive and 60 fps progressive. I've had mixed success with it. I've looked a little at the code and played with it and I don't see why it shouldn't work, but I wouldn't count on it.

I would also make sure that the content isn't telecined. If you are talking about something like deleted scenes with comentary from a dvd, it is often a mixed of 24fps->30fps telecine and 30fps progressive. On this, in theory,

 -vf pullup,dejudder,idet,yadif=deint=interlaced:mode=1

should produce a mix of 24fps (originally telecined), 30 fps (originally progressive) and 60 fps (originally interlaced) all progressive.


More information about the ffmpeg-user mailing list