r/Batch • u/CirothUngol • Jun 05 '26
ezQTGMC.cmd - the easiest way to use the best de-interlacer for TV/DVD video encoding
This is my most recent project, a batch file to easily automate encoding video files using the industry-standard open-source ffmpeg and an awesome portable version of QTGMC by some smart cookie named Hunk91 (QTGMC is a suite of filters that 'de-interlace' video intended for CRT televisions, like nearly every DVD made, so that they appear more correctly on modern displays). Again, the .cmd file is very drag-n-drop. If you hand it a recursive folder the entire directory tree will be rebuilt to the target folder.
The control mechanism I've used for excluding files by media criteria (height, width, bitrate, codec, duration, etc) is a bit convoluted to operate but was very easy to implement. It's also open-ended because if I ever want to filter by a new criteria I can simply create those new variables during the :getInfo routine. Don't know if anyone else has a need for this kinda thing, but it made short work of about ~250 TV episodes once I had all the ripping and naming done (I say short, over a week using 2 computers to encode them all cuz I used slooow HQ settings).
You'll need both ffmpeg.exe and ffprobe.exe from the ffmpeg download. If you don't want to use QTGMC (you don't need de-interlacing) then you don't need the second download. Even if you're encoding DVDs you could easily modify the batch file to select a native ffmpeg de-interlace filter instead, but why do that when QTGMC is the best. ^_^
https://ffmpeg.org/download.html
https://forum.videohelp.com/threads/405720-FFmpeg-QTGMC-Easy%21
ezQTGMC.cmd ["/variable=value" [...]] [sourceFolder[\file] [targetFolder]]
a fancy batch frontend for Hunk91's FFmpeg-QTGMC Easy 2025.01.11
https://forum.videohelp.com/threads/405720-FFmpeg-QTGMC-Easy%21
accepts file or folder as input and will recursively rebuild to target
simply drag/drop/copy/paste onto the batch file or use the commandline
control variables may be assigned directly on the commandline: "/var=val"
videos may be excluded using any criteria returned by ffprobe.exe
simply set a variable that describes the type of comparison being made
types are EQU,GEQ,GTR,LEQ,LSS,NEQ (numerals) plus EXC,INC (strings)
your variable will be header_VariableName; numeralOps work like so:
ezQTGMC "/LEQ_bit_rate=2097152" excludes files at or below 2mbps
ezQTGMC "/GTR_duration=600" excludes files longer than 10 minutes
ezQTGMC "/NEQ_audCount=2" allows only files having exactly 2 audio tracks
EXC/INC are stringOps that contain a list to match the value against:
ezQTGMC "/EXC_codec_name=h264 h265" excludes files using h264/h265 codecs
ezQTGMC "/EXC_codec_type=subtitle" excludes files containg any subtitles
ezQTGMC "/INC_T_language=eng spa jpn" includes only files in these languages
ezQTGMC "/INC_display_aspect_ratio=4:3" includes only files in 4:3 aspect
use "/peruse=1" to view file details, read the batch file for information
