For example, if I encode using the following ffmpeg command line:
ffmpeg -s 1920x1080 -pix_fmt yuv420p -framerate 25 -i input.yuv -c:v h264_nvenc -preset medium -rc cbr -profile:v high -coder cabac -bf 3 -b_ref_mode middle -flags +ildct -top 1 -b:v 5000k -y output.h264
attempting to decode the file using ffmpeg results in repeated errors of the form
[h264 @ 0x210f800] reference picture missing during reorder
[h264 @ 0x210f800] Missing reference picture, default is 65540
[h264 @ 0x224d740] abs_diff_pic_num overflow
[h264 @ 0x224d740] decode_slice_header error
and corrupt output.
Analysing the file (using Intel’s Video Pro Analyzer) shows the fault occurs in every P picture bottom field slice header, in the ref_pic_list_reordering reorder_value[0] syntax element.
Is this a known fault, and is there any workaround (other than disabling B references, which significantly degrades quality)?
I’m using the following software versions:
Centos 7.4
kernel-3.10.0-693.21.1.el7.x86_64
nvidia-kmod-396.44-2.el7.x86_64
ffmpeg 4.0.2
ffnvcodec-8.1.24.2
and a Quadro P4000 card.