[FFmpeg-user] using YADIF_CUDA - how to fix error "Impossible to convert between the formats supported by the filter"

hydra3333 hydra3333 at gmail.com
Sun Mar 3 12:29:29 EET 2019


> Hello, seeking help to use the newly updated FFMPEG filter YADIF_CUDA.  
> 
> I keep getting error  "Impossible to convert between the formats supported
by the filter 'graph 0 input from stream 0:0' and the filter
'auto_scaler_0'"
>
> I'm obviously doing something wrong in (not?) converting between formats
in the second commandline, but I don't know what to do to fix it.
>
> Example 1 works, using NVDEC as source input filter.
> Example 2 fails, using vanilla ffmpeg mpeg2 source input filter.
>
> Can anyone please clarify and how to fix the issue ?
>

OK, in this forum post Selur indicated something which worked.
https://forum.videohelp.com/threads/392398-FFMPEG-and-new-GPU-based-YADIF_CU
DA-deinterlacer#post2544264
Viz adding "hwupload_cuda," as in
-init_hw_device opencl=ocl:0.0 -filter_hw_device ocl -vf
"hwupload_cuda,yadif_cuda=0:-1:0"
like
"C:\SOFTWARE\ffmpeg\0-homebuilt-x64\ffmpeg.exe" -loglevel verbose -stats -i
".\1.7TWO.mpg" -t 05 -map_metadata -1 -init_hw_device opencl=ocl:0.0
-filter_hw_device ocl -vf "hwupload_cuda,yadif_cuda=0:-1:0" -r 25 -c:v
h264_nvenc -preset slow -bf 2 -g 50 -refs 3 -rc:v vbr_hq -rc-lookahead:v 32
-cq 22 -qmin 16 -qmax 25 -coder cabac -strict experimental -movflags
+faststart+write_colr -profile:v high -level 4.1 -an  -y
".\1.7TWO.aac.yadif_cuda.mp4"

Great !

However - when I need to combine the YADIF_CUDA deinterlacer with a GPU
based sharpener such as the UNSHARP_OPENCL opencl filter (each filter works
OK by itself) then I can't seem to jag a commandline which works with both.
This fails

"C:\SOFTWARE\ffmpeg\0-homebuilt-x64\ffmpeg.exe" -loglevel debug -stats
-init_hw_device opencl=ocl:0.0 -filter_hw_device ocl -i ".\1.7TWO.mpg" -t 05
-map_metadata -1 -sws_flags
lanczos+accurate_rnd+full_chroma_int+full_chroma_inp -filter_complex
"[0:v]hwupload_cuda,yadif_cuda=0:-1:0,unsharp_opencl=lx=3:ly=3:la=0.5:cx=3:c
y=3:ca=0.5,hwdownload,format=pix_fmts=yuv420p,setdar=dar=16/9" -r 25 -c:v
h264_nvenc -pix_fmt nv12 -preset slow -bf 2 -g 50 -refs 3 -rc:v vbr_hq
-rc-lookahead:v 32 -cq 22 -qmin 16 -qmax 25 -coder cabac -strict
experimental -movflags +faststart+write_colr -profile:v high -level 4.1 -af
loudnorm=I=-16:TP=0.0:LRA=11:measured_I=-25.78:measured_LRA=4.50:measured_TP
=-6.82:measured_thresh=-36.00:offset=0.17:linear=true:print_format=summary
-c:a libfdk_aac -cutoff 18000 -ab 384k -ar 48000  -y ".\1.7TWO.aac.xxx.mp4"

with log

[format @ 0000021d2443d580] Setting 'pix_fmts' to value 'nv12'
[auto_scaler_0 @ 0000021d0db5a200] w:iw h:ih flags:'bilinear' interl:0
[Parsed_unsharp_opencl_2 @ 0000021d0db67000] auto-inserting filter
'auto_scaler_0' between the filter 'Parsed_yadif_cuda_1' and the filter
'Parsed_unsharp_opencl_2'
Impossible to convert between the formats supported by the filter
'Parsed_yadif_cuda_1' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0

Anyone able to indicate what to do to make this work ?



More information about the ffmpeg-user mailing list