Log in

View Full Version : Does this video have field issues?


Busty
3rd June 2025, 21:55
I captured a video which plays fine in VLC, but as soon as I switch on Yadif2 deinterlacing, it stutters. This does not happen with another capture I did, the other one plays smoothly at 50 fps with those settings. I cannot make out a recording or encoding difference between the two, so I don't know what difference results in this stuttering.

I tried swapping fields and delaying fields with VirtualDub filters, but the stuttery behaviour remains.

Can this video be changed so it runs smoothly with Yadif2? Is this even caused by a video error or maybe a bug of Yadif2?

stuttery sample: https://limewire.com/d/OYyXz#K7tu3yBp3Q

smooth sample: https://limewire.com/d/gnkVw#2kCAj6IaY2

Busty
4th June 2025, 13:40
It seems that this is introduced while converting the capture from Apple 8bit lossless to utvideo lossless with ffmpeg.

It happens when I use "ffmpeg -i input.mov -c:v utvideo -an output.avi"

input.mov plays fine with yadif2 while output.avi does not.

Busty
4th June 2025, 17:58
I found a workaround here:

https://forum.videohelp.com/threads/404229-Field-order-inversion-using-ffmpeg

It says, I can trim the first field in avisynth like this:

Avisource:("mysource.avi")
AssumeTFF()
SeparateFields()
Trim(1,0)
Weave()
AssumeTTF()

I changed the last line from AssumeBFF() to TFF(). Both work for me, I see no difference. It also works without the last Assume line.

If anyone sees a problem with this workaround please let me know.

Also, if anyone knows a way to encode to utvideo avi without the field problem to begin with.

cubicibo
5th June 2025, 13:33
FFmpeg sometime gets the field order wrong. There are various ways to address the issue, it depends of the source idiosyncrasy.

Here's a subset:
flags:
-top 0 (BFF)/1 (TFF)/-1 (auto/none)

filters:
phase (https://ffmpeg.org/ffmpeg-filters.html#phase)
fieldorder (https://ffmpeg.org/ffmpeg-filters.html#fieldorder)
setfield (https://ffmpeg.org/ffmpeg-filters.html#setfield)

Any of these shall preceed the deinterlacer in the filter chain. Tweak them and encode small samples to verify you get the desired result.

Few more things:
- You should always tip FFmpeg everything you know about your source. Automatic detection can go wrong at anytime.
- FFmpeg has better deinterlace filters over yadif. Consider estdif or bwdif.