You are not logged in.

#1 2024-07-11 21:01:48

tda
Member
Registered: 2020-06-27
Posts: 47

[SOLVED] using the QTGMC deinterlacer with ffmpeg in Arch Linux

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

#2 2024-07-12 03:41:09

tda
Member
Registered: 2020-06-27
Posts: 47

Re: [SOLVED] using the QTGMC deinterlacer with ffmpeg in Arch Linux

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

#3 2024-07-17 04:38:44

tda
Member
Registered: 2020-06-27
Posts: 47

Re: [SOLVED] using the QTGMC deinterlacer with ffmpeg in Arch Linux

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

Board footer

Powered by FluxBB