23.08.2021, 18:07
(23.08.2021, 15:45)Selur Wrote: Sadly using:
instead of-hwaccel auto -deint 2
doesn't work.-c:v h264_cuvid -deint 2
So sadly, in case I would add "FFMPEG (cuvid)" as deinterlacer, it could only be used for specific formats.
- av1_cuvid
- h264_cuvid
- hevc_cuvid
- mjpeg_cuvid
- mpeg1_cuvid
- mpeg2_cuvid
- mpeg4_cuvid
- vc1_cuvid
- vp8_cuvid
- vp9_cuvid
Yes, I agree. So then
-c:v h264_cuvid -deint 2
In case the input format is not supported by CUVID, then CUVID should simply be grayed out or not available in Hybrid.
(23.08.2021, 15:45)Selur Wrote: So the user would need to specify:
- the deinterlace mode
- bob 1 .D.V....... Bob deinterlacing
- adaptive 2 .D.V....... Adaptive deinterlacing
- which field to drop first or second
- the decoder to use
Hybrid would then upon job creationg need to check whether the input format matches the selected decoder and decline the job creation in case format and decoder type are not compatible.
Yes, the user should be able to specify the deinterlace mode. The deinterlacer doesn't need to drop fields, but that option can be implemented, for a more complete support.
Now, to the part where it seems overcomplicated, in my book. Why should the user specify the decoder from the long list, since there is only one that will work - that being the one made for the specific format used by the input file. So, the way I was thinking was for Hybrid to identify the input format, something it can seemingly already do, and decide which CUVID to use automatically, based on the identified format. Can't such thing be implemented?
(23.08.2021, 17:49)Selur Wrote: Any idea why:
would abort with:ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\TestClips&Co\files\test.avi" -map 0:0 -an -sn -c:v mpeg4_cuvid -deint 1 -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p10le -strict -1 -vsync 0 -f yuv4mpegpipe - | ...
Quote:Unknown encoder 'mpeg4_cuvid'mpeg4_cuvid is listed when using "ffmpeg -decoders".
Same with h264_cuvid:
gives:ffmpeg -y -noautorotate -nostdin -threads 8 -r 30000/1001 -analyzeduration 24M -probesize 24M -i "G:\TestClips&Co\files\MPEG-4 H.264\00001.MTS" -map 0:0 -an -sn -c:v h264_cuvid -deint 1 -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p10le -strict -1 -vsync 0 -f yuv4mpegpipe - | ...
Quote:Unknown encoder 'h264_cuvid'
Are the cuvid decoders not usable with yuv4mpegpipe-pipe output?
They should be usable just fine with anything.
But the error says "encoder". CUVID is not an encoder, but a decoder. FFmpeg interprets your command as a request for an encoder named h264_cuvid, respectively mpeg4_cuvid. Those are not encoders, but rather decoders.