[FFmpeg-trac] #8666(undetermined:new): ffmpeg hardware accel command line settings are inconsistent
FFmpeg
trac at avcodec.org
Wed May 13 00:26:29 EEST 2020
#8666: ffmpeg hardware accel command line settings are inconsistent
-------------------------------------+-------------------------------------
Reporter: Va1DER | Type:
| enhancement
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary:
The way that ffmpeg specifies different hardware acceleration options on
the command line spans different switch paradigms.
Examples:
cuvid (decode) must be specified with with -c:v codec switch.
cuda (decode) must be specified with -hwaccel cuda
Additionally, it would be beneficial to separate specifying the
decoding/encoding hardware from specifying the codec format and to remove
the requirement to specify the hardware decoding codec. ffmpeg should
detect the correct decoder and not require the user to know what the input
file's codec actually is.
ffpmeg -vdecoder=cuvid -i input.mkv -vencoder=cuda -c:v hevc output.mp4
Though this may be a step too far, it would also be beneficial to divorce
the codec method from the codec library. In other words, stop using the
-c:v to tell ffmpeg what library to use. libx264, h264_qsv, h264_nvenc,
h264_cuvid and others are all h.264 "codec" names in ffpmeg. It would be
much cleaner to:
ffmpeg -i input.mkv -vencoder=software -c:v h264 output.mp4
ffpmeg -i input.mkv -vencoder=cuda -c:v h264 output.mp4
ffpmeg -i input.mkv -vencoder=qsv -c:v h264 output.mp4
or, if you need fine grained specification of the actual software library
where there are multiple libraries providing the same codec, then:
ffmpeg -i input.mkv -vencoder=software:libx264 -c:v h264 output.mp4
ffmpeg -i input.mkv -vencoder=software:libnewcoolencoder -c:v h264
output.mp4
It wouldn't be hard to implement this system alongside the old one so as
not to break current scripts and GUIs.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8666>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list