[FFmpeg-user] how to compile for getting yadif_cuda ?

andrei ka andrei.k.gml at gmail.com
Wed Jan 20 00:53:46 EET 2021


hi all,

i can't figure out  how to get yadif_cuda in my ffmpeg...

i compile more or less ok ffmpeg w/ cuda (ff 4.3.1 + cuda 11.2 on ubuntu
20.4), i've just dropped fontconfig in ffmpeg, cuz in my first try it
screwed up a few cuda's explected fontconfig's symbolds. so

i configured :

./configure \
--enable-libcaca \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi  \
--enable-libopenjpeg \
--enable-ffnvcodec \
--enable-libsnappy \
--enable-libssh \
--enable-libzmq \
--disable-debug \
--disable-doc \
--disable-ffplay \
--enable-shared \
--enable-avresample \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-gpl \
--enable-libass \
--enable-libvidstab \
--enable-libmp3lame \
--enable-libopus \
--enable-libvpx \
--enable-libwebp \
--enable-libxcb \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
--enable-nonfree \
--enable-openssl \
--enable-libfdk_aac \
--enable-postproc \
--enable-small \
--enable-version3 \
--extra-libs=-ldl \
--prefix="${PREFIX}" \
--enable-libopenjpeg \
--enable-libkvazaar \
--disable-libaom \
--extra-libs=-lpthread \
--enable-nvenc \
--enable-nvdec \
--enable-cuda \
--enable-cuvid \
--enable-libvmaf \
--enable-libnpp \
--extra-cflags="-I${PREFIX}/include -I${PREFIX}/include/ffnvcodec
-I/usr/local/cuda/include/"  \
--extra-ldflags="-L${PREFIX}/lib -L/usr/local/cuda/lib64
-L/usr/local/cuda/lib32/"

and binary would report :

ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
  configuration:
--enable-libcaca
--enable-libfreetype
--enable-libfribidi
--enable-libopenjpeg
--enable-ffnvcodec
--enable-libsnappy
--enable-libssh
--enable-libzmq
--disable-debug
--disable-doc
--disable-ffplay
--enable-shared
--enable-avresample
--enable-libopencore-amrnb
--enable-libopencore-amrwb
--enable-gpl
--enable-libass
--enable-libvidstab
--enable-libmp3lame
 --enable-libopus
--enable-libvpx
--enable-libwebp
--enable-libxcb
--enable-libx265
--enable-libxvid
--enable-libx264
--enable-nonfree
--enable-openssl
--enable-libfdk_aac
--enable-postproc
--enable-small
--enable-version3
--extra-libs=-ldl
--prefix=/opt/ffmpeg
--enable-libopenjpeg
--enable-libkvazaar
--disable-libaom
--extra-libs=-lpthread
--enable-nvenc
--enable-nvdec
 --enable-cuda
--enable-cuvid
--enable-libvmaf
--enable-libnpp
--extra-cflags='-I/opt/ffmpeg/include -I/opt/ffmpeg/include/ffnvcodec
-I/usr/local/cuda/include/' --extra-ldflags='-L/opt/ffmpeg/lib
-L/usr/local/cuda/lib64 -L/usr/local/cuda/lib32/

but yadif_cuda is not where... :

doing yadif in cpu works fine :
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i
4k_30s_420p.mp4 -c:a copy -c:v h264_nvenc -vf
hwdownload,format=nv12,yadif=mode=1,hwupload_cuda  -pix_fmt cuda -rc:v
vbr_hq -cq:v 19 -profile:v high out1.mp4

and trying (on tesla t4, amazons ) :
 ffmpeg -init_hw_device cuda=0 -i interlaced.mp4 -vcodec h264_nvenc
-pix_fmt cuda -preset lossless -filter_hw_device 0 -vf
hwupload,yadif_cuda=1 -acodec copy -r 50 -f mp4 deinterlaced_yadif_cuda.mp4

would yell :
[AVFilterGraph @ 0x55bea5d7e280] No such filter: 'yadif_cuda'

so, obviously, i haven't compiled it ok... anyone could wise me up what's
missing ?

i did my runs on t4 :
CUDA Device Query (Driver API) statically linked version
Detected 1 CUDA Capable device(s)
Device 0: "Tesla T4"
CUDA Driver Version:                           11.2
CUDA Capability Major/Minor version number:    7.5
Total amount of global memory:                 15110 MBytes (15843721216
bytes)
 (40) Multiprocessors, ( 64) CUDA Cores/MP:     2560 CUDA Cores
...

tnx


More information about the ffmpeg-user mailing list