FFmpeg deinterlacing filter yadif_cuda not available?

0

FFmpeg reports "No such filter: 'yadif_cuda" for both the release build and the static build. FFmpeg Documentation has no stipulations.

$ ffmpeg -loglevel debug -ss 01:16:20 -i Hi8_02.dv -t 10 -vf "yadif_cuda, scale=hd720:flags=bilinear" -c:v dnxhd -profile:v dnxhr_sq Hi8_02test.mov
ffmpeg version N-47911-g1dcb5b7dca-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 25.100 / 56. 25.100
  libavcodec     58. 43.100 / 58. 43.100
  libavformat    58. 25.100 / 58. 25.100
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 46.101 /  7. 46.101
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.                                                                                            
Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '01:16:20'.                                                                                             
Reading option '-i' ... matched as input url with argument 'Hi8_02.dv'.                          
Reading option '-t' ... matched as option 't' (record or transcode "duration" seconds of audio/video) with argument '10'.                                                                         
Reading option '-vf' ... matched as option 'vf' (set video filters) with argument 'yadif_cuda, scale=hd720:flags=bilinear'.                                                                       
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'dnxhd'.              
Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument 'dnxhr_sq'.
Reading option 'Hi8_02test.mov' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url Hi8_02.dv.
Applying option ss (set the start time offset) with argument 01:16:20.
Successfully parsed a group of options.
Opening an input file: Hi8_02.dv.
[NULL @ 0x673f740] Opening 'Hi8_02.dv' for reading
[file @ 0x6740040] Setting default whitelist 'file,crypto'
[dv @ 0x673f740] Format dv probed with size=2048 and score=75
[dv @ 0x673f740] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[dv @ 0x673f740] All info found
[dv @ 0x673f740] Estimating duration from bitrate, this may be inaccurate
[dv @ 0x673f740] After avformat_find_stream_info() pos: 120000 bytes read:120000 seeks:0 frames:2
Input #0, dv, from 'Hi8_02.dv':
  Metadata:
    timecode        : 02:01:40;13
  Duration: 01:42:32.05, start: 0.000000, bitrate: 28771 kb/s
    Stream #0:0, 1, 1001/30000: Video: dvvideo, 1 reference frame, yuv411p(topleft), 720x480 [SAR 8:9 DAR 4:3], 0/1, 25000 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1, 1, 1/30000: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Successfully opened the file.
Parsing a group of options: output url Hi8_02test.mov.
Applying option t (record or transcode "duration" seconds of audio/video) with argument 10.
Applying option vf (set video filters) with argument yadif_cuda, scale=hd720:flags=bilinear.
Applying option c:v (codec name) with argument dnxhd.
Applying option profile:v (set profile) with argument dnxhr_sq.
Successfully parsed a group of options.
Opening an output file: Hi8_02test.mov.
File 'Hi8_02test.mov' already exists. Overwrite ? [y/N] y
[file @ 0x6747a40] Setting default whitelist 'file,crypto'
Successfully opened the file.
detected 4 logical cores
Stream mapping:
  Stream #0:0 -> #0:0 (dvvideo (native) -> dnxhd (native))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[AVFilterGraph @ 0x6747d40] No such filter: 'yadif_cuda'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
[AVIOContext @ 0x6747ac0] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x6748440] Statistics: 240000 bytes read, 1 seeks
Conversion failed!

kenj70

Posted 2019-01-05T21:42:32.697

Reputation: 11

Answers

0

The static build doesn't have that filter, as it requires linking against the NVIDIA SDK, which is nonfree software, so it cannot be redistributed. Also it wouldn't much sense to bundle it for users without an NVIDIA GPU.

You therefore have to:

to get support for that filter plus other NVENC/NVDEC features.

slhck

Posted 2019-01-05T21:42:32.697

Reputation: 182 472

Thanks for the reply. Perhaps the Documentation should reflect those conditions? BTW, the Shotcut video editor has recently made this capability available and it speeds things up considerably. -=Ken=- – kenj70 – 2019-01-05T22:56:27.030

1

Building an Nvidia-enabled ffmpeg is not very hard, take a look at https://gist.github.com/Brainiarc7/988473b79fd5c8f0db54b92ebb47387a

– Eugen Rieck – 2019-01-05T23:00:14.243

I'm still not sure how this board works. No PM capability? No discussion area? I re-did my question for clarity. I really appreciate the procedure for building FFmpeg! Perhaps even a non-programmer could do it. I posted here primarily to prompt for clarity in the official Documentation. It reminds me of the bad old days in unix administration where we were instructed to RTFM and stumble around until we got something to work. I have a GT-710 and I know NVENC works for me. -=Ken=- – kenj70 – 2019-01-06T00:18:47.497

There are no direct messages here. If you have any specific problems with the build, please update your question. I agree that the requirements for filters (and encoders) should be part of the documentation, but this is not the right place for asking that – that's something the official ffmpeg mailing list would be better suited for. – slhck – 2019-01-06T08:32:57.670