[FFmpeg-trac] #9571(undetermined:new): MXF muxer using long gop with x264 essence creates corrupt output
FFmpeg
trac at avcodec.org
Sun Dec 26 22:23:52 EET 2021
#9571: MXF muxer using long gop with x264 essence creates corrupt output
-------------------------------------+-------------------------------------
Reporter: steipal | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
The file is not playable in Premiere, Vegas, VirtualDub or VLC.
It seems to be an issue that x264 with reordered frames is not indexed
correctly in MXF.
How to reproduce:
{{{
>ffmpeg -f lavfi -i mandelbrot -t 10 -c:v libx264 -pix_fmt yuv420p
output.mxf
ffmpeg version N-104973-g26dcb05b97 Copyright (c) 2000-2021 the FFmpeg
developers
built with gcc 11.2.0 (Rev5, Built by MSYS2 project)
configuration: --disable-static --enable-shared --pkg-config=pkgconf
--cc='ccache gcc' --cxx='ccache g++' --ld='ccache g++' --disable-
autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid
--enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-
nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec
--enable-cuda-llvm --enable-libmp3lame --enable-libopus --enable-libvorbis
--enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d
--enable-libaom --disable-debug --enable-fontconfig --enable-libass
--enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora
--enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-
libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl
--enable-avisynth --enable-libxvid --enable-libopenmpt --enable-version3
--enable-librav1e --enable-libsrt --enable-libgsm --enable-libvmaf
--enable-libsvtav1 --enable-librubberband --enable-mbedtls --extra-
cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-
cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads
--shlibdir=/local64/bin-video
libavutil 57. 12.100 / 57. 12.100
libavcodec 59. 14.100 / 59. 14.100
libavformat 59. 10.100 / 59. 10.100
libavdevice 59. 0.101 / 59. 0.101
libavfilter 8. 20.100 / 8. 20.100
libswscale 6. 1.101 / 6. 1.101
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
Input #0, lavfi, from 'mandelbrot':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (RGB[0] / 0x424752), rgb0, 640x480 [SAR 1:1
DAR 4:3], 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 00000227b5e00d00] using SAR=1/1
[libx264 @ 00000227b5e00d00] using cpu capabilities: MMX2 SSE2Fast SSSE3
SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 00000227b5e00d00] profile High, level 3.0, 4:2:0, 8-bit
Output #0, mxf, to 'output.mxf':
Metadata:
encoder : Lavf59.10.100
Stream #0:0: Video: h264, yuv420p(tv, progressive), 640x480 [SAR 1:1 DAR
4:3], q=2-31, 25 fps, 25 tbn
Metadata:
encoder : Lavc59.14.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 250 fps=123 q=-1.0 Lsize= 2968kB time=00:00:09.92
bitrate=2450.6kbits/s speed=4.88x
video:2764kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 7.369122%
[libx264 @ 00000227b5e00d00] frame I:1 Avg QP:20.70 size: 24904
[libx264 @ 00000227b5e00d00] frame P:63 Avg QP:23.47 size: 17056
[libx264 @ 00000227b5e00d00] frame B:186 Avg QP:29.95 size: 9305
[libx264 @ 00000227b5e00d00] consecutive B-frames: 0.8% 0.0% 0.0% 99.2%
[libx264 @ 00000227b5e00d00] mb I I16..4: 37.8% 45.2% 16.9%
[libx264 @ 00000227b5e00d00] mb P I16..4: 0.6% 0.1% 0.0% P16..4:
44.5% 14.5% 10.8% 0.0% 0.0% skip:29.5%
[libx264 @ 00000227b5e00d00] mb B I16..4: 0.0% 0.0% 0.0% B16..8:
30.5% 5.8% 2.7% direct: 4.5% skip:56.5% L0:45.4% L1:45.1% BI: 9.5%
[libx264 @ 00000227b5e00d00] 8x8 transform intra:35.8% inter:16.5%
[libx264 @ 00000227b5e00d00] coded y,uvDC,uvAC intra: 23.2% 68.6% 26.7%
inter: 12.5% 24.4% 19.3%
[libx264 @ 00000227b5e00d00] i16 v,h,dc,p: 9% 7% 2% 81%
[libx264 @ 00000227b5e00d00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 10% 22%
11% 13% 6% 12% 6% 4%
[libx264 @ 00000227b5e00d00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 16% 12%
10% 11% 9% 10% 9% 8%
[libx264 @ 00000227b5e00d00] i8c dc,h,v,p: 27% 9% 12% 52%
[libx264 @ 00000227b5e00d00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 00000227b5e00d00] ref P L0: 56.2% 5.4% 26.8% 11.7%
[libx264 @ 00000227b5e00d00] ref B L0: 71.6% 21.4% 6.9%
[libx264 @ 00000227b5e00d00] ref B L1: 87.9% 12.1%
[libx264 @ 00000227b5e00d00] kb/s:2264.17
}}}
It plays well in MPV and ffprobe.
Changing muxer to MOV works as expected.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9571>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list