Hi, I am trying to deinterlace a file using ffmpeg.
I tried the -f:v yadif and -f:v bwdif options, and variants like -vf yadif=1, but the resulting file is progressive but still looks interlaced.
While the handbrake with the decomb video option looks perfect.
I am not sure if I am even using the -f:v options correctly as I see no indication on the console output of a filter being used.
I also don't really know the difference between -vf and -f:v, maybe old and new formats, as I see examples use them interchangeably.
Here is my commandline:
ffmpeg.exe -i "D:\Temp\top.gear.s26e04.1080p.hdtv.h264-mtb.mkv" -map 0 -f:v yadif -c:v libx264 -crf 20 -preset medium -c:a copy -ccopy -max_muxing_queue_size 1024 -f matroska "D:\Temp\top.gear.s26e04.1080p.hdtv.h264-mtb.tmp.yadif.mkv"
1) How do I know from looking at the commandline output that a filter is active?
2) Am I using the -f:v option correctly?
3) Any other ideas?
thx
+ Reply to Thread
Results 1 to 8 of 8
-
-
Specify it like this:
Code:-vf yadif
Code:-vf yadif=1
If you're still having issues upload a section of the source showing steady movementLast edited by davexnet; 16th Mar 2019 at 14:34.
-
I tried a few options, looks like the -v:f option does not work while -fv works, if -v:f is supposed to work, am I using it wrong?
I tried yadaf, yadif=1, and bwdif, none produce great results.
Compared to Handbrake decomb, the ffmpeg results are very juddery.
I stepped frame by frame in virtualdub2, and it shows motion artifacts in the ffmpeg output, but not the handbrake output.
Here is a OneDrive link with sample files, I used mkvmerge to create a 3 minute snippet, skip to the 1 minute mark in the snippet to see lots of interlacing artifacts.
https://1drv.ms/f/s!AqeqhT0NczrNisN1mEjGU11WTemcAQ
I'd like to get ffmpeg to give similar results, ideally with commandline options that work on any material, interlaced or not? -
Do I get this right, you didn't upload the 1min source you filtered and want folks to suggest a command line that will help based on filtered content?
ideally with commandline options that work on any material, interlaced or not?
Also you won't get ffmpeg to work like handbrakes decomb filter since it doesn't have that filer.
If you want decomb from Handbrake, why not use HandbrakeCLI ?users currently on my ignore list: deadrats, Stears555, marcorocchini -
I don't follow, upload what 1 min source, I gave a link to a 3 min snippet of the full file, would you like me to add the whole file?
My automated workflow is based on ffmpeg, not handbrake, so I'd like to make handbrake work with this type of input content.
I could not get ffmpeg to work, so I tried handbrake, and handbrake produced good results, thus it should be somehow possible.
I'm not asking for ffmpeg to have the same filters as hanbrake, just your suggestions on how to produce similar quality output using ffmpeg.
As for work with all files, it does make life more complicated if I have to use different commanline arguments for different content, but it is possible, please just help me with the recipe. -
I don't follow, upload what 1 min source, I gave a link to a 3 min snippet of the full file, would you like me to add the whole file?
Your problem is that the snipped is mixed content.(progressive and interlaced content)
Personally I would use QTGMC with Vapoursynth (using Hybrid) and be done with it or I keep the interlaced encoding when encoding to H.264 since MBAFF (Macroblock-Adaptive Frame/Field Coding) is quite effective and kind of ideal for mixed content.
You won't get results like decomb (from Handbrake) or QTGMC (Avisynth/Vapoursynth) since those two both so additional filtering (denoising, etc.).
Instead of ffmpeg I would prefer NVEncC (assuming a decent NVIDIA graphic card is available) with something like:
Code:NVEnc --avhw native -i "C:\Users\Selur\Desktop\top.gear.s26e04.1080p.hdtv.h264-mtb.snippet.mkv" --fps 29.97 --codec h264 --profile high --level auto --sar 1:1 --lookahead 16 --cqp 20 --gop-len 0 --bframes 0 --ref 7 --mv-precision Q-pel --cabac --deblock --preset quality --colorprim bt709 --transfer bt709 --colormatrix bt709 --vpp-deinterlace adaptive --vpp-resize lanczos --output-res 1920x1080 --vpp-gauss disabled --output "E:\Temp\top.gear.s26e04.1080p.hdtv.h264-mtb.snippet_22_22_48_7710_01.264"
If I was on Linux and a NVIDIA card was available I would use YADIF_CUDA (see: https://forum.videohelp.com/threads/392398-FFMPEG-and-new-GPU-based-YADIF_CUDA-deinterlacer).
QSVEncC and the qsv support in ffmpeg would also be a possibility. (In my experience the hardware deinterlacers from NVEnc and QSVEnc are better than anything ffmpeg currently has.)
Assuming no gpu hardware acceleration is available and ffmpeg should be use, I would stick with yadif, and may be add some additional filtering.
Cu Selur
Ps.: Out of curiosity why not use StaxRip, MeGui or similar tools which all support batch processing? (No clue whether handbrake supports it.)users currently on my ignore list: deadrats, Stears555, marcorocchini -
I wrote an app to make sure that my media files can directplay on plex, so I have a variety of rules and processing logic that sets missing language attributes on streams, strips out unwanted streams, reencodes content that can't directplay or causes issues in plex, and I use mkvtoolnix and ffmpeg for processing, and ffprobe and mediainfo for file stream info.
The code runs on a W2K16 VM, so no hardware capabilitites are available, just vanilla x64 windows.
This particular file makes plex stutter very badly, so I was looking to add a new rule, how do I detect this type of file, what do I do with it.
The steps you describe seem much more elaborate compared to my current workflow, but if I can detect a file with interlaced or mixed interlaced content, I could call a new type of processor, maybe handbrake CLI, but vapoursynth and avisynth do seem overkill and much more complicated vs. a commandline app.
Unless somebody else has a good idea with ffmpeg options, I'l ltry to add handbrake cli to my toolset. -
I changed my code to use MediaInfo's interlaced info and then call HB CLI:
Scan type : MBAFF
Scan type, store method : Interleaved fields
Scan order : Top Field First
handbrakecli.exe --input "D:\Temp\top.gear.s26e04.1080p.hdtv.h264-mtb.snippet.mkv" --output "D:\Temp\top.gear.s26e04.1080p.hdtv.h264-mtb.hbcli.mkv" --format av_mkv --encoder x264 --encoder-preset medium --quality 21.0 --comb-detect --decomb --subtitle 1,2,3,4 --audio 1,2,3,4 --aencoder copy --audio-fallback eac3
Similar Threads
-
Handbrake - Home-Recorded DVDs to MP4s - Best Deinterlace Settings
By MrExcel in forum Video ConversionReplies: 47Last Post: 24th Feb 2018, 19:27 -
Ripping a DVD in order to deinterlace/decomb it
By Ultroman in forum Video ConversionReplies: 16Last Post: 13th Feb 2018, 22:10 -
ffmpeg and decomb filter?
By ProxyCell in forum Video ConversionReplies: 3Last Post: 29th Jan 2018, 14:41 -
Someone Explain Deinterlace , Decomb and Denoise.. ??
By FurqanHanif in forum Newbie / General discussionsReplies: 2Last Post: 22nd Jul 2016, 13:57 -
FFMPEG deinterlace, convert to square pixel, real frame rate.
By Wader8 in forum DVD RippingReplies: 47Last Post: 5th Sep 2014, 19:33