[FFmpeg-trac] #11110(avcodec:closed): Corrupted output on h264 veryslow preset with common hardware decoders
FFmpeg
trac at avcodec.org
Sun Jul 28 00:29:18 EEST 2024
#11110: Corrupted output on h264 veryslow preset with common hardware decoders
------------------------------------+-----------------------------------
Reporter: Zeblote | Owner: (none)
Type: defect | Status: closed
Priority: normal | Component: avcodec
Version: git-master | Resolution: invalid
Keywords: h264 | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+-----------------------------------
Comment (by Zeblote):
Thanks for the hint! Searching for the Decoding Pictures Buffer led me to
discover that there are different feature levels of H.264, which among
other things, change how many frames this can hold.
On the NVIDIA documentation, we find: https://docs.nvidia.com/video-
technologies/video-codec-sdk/12.2/nvdec-video-decoder-api-prog-
guide/index.html#video-decoder-capabilities
> Maximum Resolution: 4096x4096 Profile: Baseline, Main, High profile up
to Level 5.1
But in the log above, it is trying to use:
> [libx264 @ 00000224a6ee6bc0] profile High, level 6.0, 4:2:0, 8-bit
So the underlying issue is that ffmpeg defaults to using a feature level
that the hardware decoder can't support.
Adding {{{ -level 5.1 }}} to the command line fixes the problem.
Why there is no mechanism for the hardware decoder to report that a given
file is "too new", and perhaps refuse to play it rather than corrupt
everything, is anyone's guess...
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11110#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list