7

I'm trying to figure out how to use yadif / yadif-2x with ffmpeg to convert 50i source material into 50p output that preserves the motion of all fifty fields per second. Right now, I am using the following command, which creates a frame-doubled version, essentially the same as 25p output.

ffmpeg -i input.m2t -f:v yadif=1 -c:v prores output.mov

Using yadif=0 makes a deinterlaced 25p file. Using yadif=1 makes a deinterlaced 50p file with doubled 25p frames. I need to make a deinterlaced file with 50 unique frames per second, and I'm pretty well certain this is possible. Is that what yadif(2x) is supposed to do?

8
  • 1
    Please show your complete ffmpeg console output.
    – llogan
    Jun 21, 2013 at 21:55
  • Available here: pastebin.com/CqsD5D8L
    – moot
    Jun 21, 2013 at 23:52
  • After a great deal of searching, I may have found another way to accomplish this conversion. I will attempt this method tomorrow and report results. hddv.net/…
    – moot
    Jun 22, 2013 at 8:21
  • yadif=1 works for me: twice as many frames and each is different
    – mark4o
    Jun 22, 2013 at 16:55
  • 2
    Are you sure that your input is interlaced? You can use ffmpeg -i input.m2t -filter:v idet -f null - to analyze it for frames that appear to be top-frame-first interlaced, bottom-frame-first interlaced, or progressive.
    – mark4o
    Jun 24, 2013 at 3:54

4 Answers 4

4

It turns out that the video I was attempting to double-deinterlace was actually 25p that was encoded into a 50i video file in order to conform to an older AVCHD standard. Apparently this is a common practice for tapeless cameras from the mid-late 2000s. So of course when I attempt to deinterlace I only end up with, at most, the original source 25 frames per second because there is no motion between the fields.

f:v yadif=1 does exactly what is described - it takes true interlaced 50i footage and turns it into astonishingly high-quality 50p output using a motion-weighted bob algorithm, just the same as the "yadif 2x" realtime filter does in VLC. The output is of nearly double the effective vertical resolution over frame-discarded deinterlace. It is now one of my favorite video filters because practically nothing else appears to offer this capability.

3

I used this command:

ffmpeg -i source_50i.MTS -aspect 1920:1080 -vf yadif=1,scale=1920:1080 -c:v libx264 -preset fast -profile:v high -crf 23 -ac 2 -strict experimental -c:a aac -b:a 96k -movflags +faststart -y result_50p.mp4

and it worked fine!

I didn't check if the yadif method good or not good quality, but really created from 50i MTS to 50p mp4 from a camcorder source file. The source file was 19 MB and the result was 21MB.

1
  • I used this answer successfully to create a video out of a GoPro time lapse at 60fps, in hopes that others find it useful: ffmpeg -i 'G%*.JPG' -r 60 -vf "scale=1920:ih*1920/iw, crop=1920:1080, yadif=1" -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 192k -pix_fmt yuv420p output.mkv Feb 12, 2018 at 21:52
0

I think many don't understand that 29.97 only referred to how frequently the cathode ray tube returned to scan the same 'pixel'. It had been at the adjacent (above or below) 'pixel' only 1/60th of a second earlier.

Each raster scan was a 1/60th sec. exposure. The next scan was the next 1/60th. They were not held; they were sent out 60x per second as half-resolution rasters stretched vertically to fill the screen. Through alternating odd-line and even-line scans, the appearance of full resolution was achieved with only half the 'bandwidth'.

It was always 60 distinct rasters per second, never 30.

-1

Please understand-- 50i means 50 fields = 25 frames of 50 interleaved fields. You CANNOT get unique 50 frames. If at all possible, then these frames would have missing alternate lines in the video frame. So 25p is 50i top + 50i bottom combined. That's how it should be, and hopefully always will be. Else the result could be duplicated frames (terrible) as you have got.

9
  • 1
    This is wrong. Yadif can interpolate missing lines and create real 50fps video from 50i, if this is indeed real 50i video (no duplicated fields — i.e. 2 fields from one frame). Aug 29, 2014 at 10:41
  • @SargeBorsch Please provide the answer- I'll gladly delete mine. Thanks for the information. Unfortunately I cannot test because I have no access to interlaced video any more.
    – Rajib
    Aug 29, 2014 at 12:02
  • I don't have time to search how to (properly) make it happen with ffmpeg — but it clearly has the effect in VLC player (while playing 60i video & having Yadif x2 enabled). looks like ffmpeg has a bug — it always duplicates frames, so I get either 120fps or 60fps and in either case I must drop every 2nd frame, which is kind of "hacky" and ffmpeg has no clear way of dropping every 2nd frame Aug 29, 2014 at 12:42
  • If you care to share a short interlaced clip I'll give it a shot.
    – Rajib
    Aug 30, 2014 at 7:21
  • Currently I have only one such video which is not supposed for sharing, but I may shoot another one sooner or later (my DSLR camera has option of recording in 60i), and send example of both original (interlaced) video and processed one. Aug 30, 2014 at 7:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .