You are not logged in.
I am trying to use the QTGMC deinterlacer with ffmpeg in Arch Linux. I can't seem to make it work and information online seems sparse. Does anyone know how to make it work? Here are the steps I've followed:
1) install the avisynthplus, devil, and ffms2 Arch packages
2) create the following script (file.mp4 is a video file on my computer):
$ cat test.avs
FFVideoSource("file.mp4")
QTGMC(Preset="Slow")
SelectEven()
3) I then run this ffmpeg command:
$ ffmpeg -i test.avs -an -c:v libx264 -pix_fmt yuv420p test.mp4
ffmpeg version n7.0.1 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14.1.1 (GCC) 20240522
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-mbedtls --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
The ffmpeg command generates a file called test.mp4.ffindex but doesn't generate test.mp4.
Last edited by tda (2024-07-17 04:41:58)
Offline
Update:
Looking at the documentation, I think there are some plugins which need to be installed, so I installed them with the following AUR packages:
MaskTools2: https://aur.archlinux.org/packages/avis … tools2-git
MVTools2: https://archlinux.org/packages/extra/x8 … n-mvtools/
nnedi3: https://aur.archlinux.org/packages/vapo … nnedi3-git
RgTools: https://aur.archlinux.org/packages/avis … gtools-git
Zs_RF_Shared: ?
I think the last plugin is just a script but I'm not sure where to put it. With the first four plugins installed, I tried running the ffmpeg command again but got the same result.
Offline
Ok I think I figured this out. Here are the steps I've followed. Some of them might not be necessary.
1) Install the avisynthplus, devil, and ffms2 Arch packages
2) Install the following Arch and AUR packages to install the core plugins: vapoursynth-plugin-mvtools, avisynth-plugin-masktools2-git, vapoursynth-plugin-nnedi3-git, and avisynth-plugin-rgtools-git
I didn't seem to need to put the Zs_RF_Shared.avsi script anywhere, or maybe it gets installed via one of the plugins.
3) Install the vapoursynth-plugin-havsfunc-git AUR package (which is needed for "import havsfunc" in the vpy file below). Due to its dependencies, installation of this package required installing 20-30 other VapourSynth plugin AUR packages named vapoursynth-plugin-*-git.
4) Create the following vpy file:
$ cat test.vpy
import vapoursynth as vs
import havsfunc as haf
core = vs.core
clip = core.ffms2.Source(source='video_file.mp4')
clip = vs.core.resize.Point(clip, format=vs.YUV422P10)
clip = haf.QTGMC(clip, Preset='Slower', TFF=False)
clip = core.resize.Spline36(clip, 720, 540)
clip.set_output()
Then run this command (from the VapourSynth manual):
$ vspipe -c y4m test.vpy - | ffmpeg -i - test.mkv
That vspipe command didn't work on the first try. I got a few errors like this:
AttributeError: No attribute with the name eedi3m exists. Did you mistype a plugin namespace or forget to install a plugin?
To fix this error, I had to search for a VapourSynth plugin AUR package that corresponds to "eedi3m". I found the appropriate package, which was named vapoursynth-plugin-eedi3m-git. I then re-ran the vspipe command, fixing any more of these errors in the same manner, until the vspipe command finally worked.
Offline