#8207 closed defect (duplicate)
Invalid MOV file produced when encoding 4K (3840x2160) 10-bit YUV 4:2:2 libx264 stream
| Reported by: | Jon Frydensbjerg | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | unspecified | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
FFmpeg seems to produce an invalid MOV file (pixel format is missing and codec is incorrect) when encoding a 4K (3840x2160) stream using libx264 10-bit and YUV 4:2:2 chroma subsampling.
Other resolutions, other containers (MXF and ISO MP4 are fine at least) and other pixel formats seems to work fine.
The defect is present in both FFmpeg 4.1.3 and 4.2.1 - possibly more versions.
How to reproduce:
% ffmpeg -i test.mp4 -c:v libx264 -pix_fmt yuv422p10le out.mov
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.3)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --disable-securetransport --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:00:01.02, start: 0.000000, bitrate: 5657 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 3840x2160, 5690 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 70 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x7fa2e0055600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fa2e0055600] profile High 4:2:2, level 5.1, 4:2:2, 10-bit
[libx264 @ 0x7fa2e0055600] 264 - core 157 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=81 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mov, to 'out.mov':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv422p10le, 3840x2160, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.35.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s (default)
Metadata:
handler_name : SoundHandler
encoder : Lavc58.35.100 aac
frame= 30 fps=6.8 q=-1.0 Lsize= 804kB time=00:00:01.02 bitrate=6430.1kbits/s speed=0.231x
video:791kB audio:11kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.304305%
[libx264 @ 0x7fa2e0055600] frame I:1 Avg QP:29.59 size:162150
[libx264 @ 0x7fa2e0055600] frame P:8 Avg QP:29.92 size: 44100
[libx264 @ 0x7fa2e0055600] frame B:21 Avg QP:30.96 size: 14008
[libx264 @ 0x7fa2e0055600] consecutive B-frames: 6.7% 0.0% 0.0% 93.3%
[libx264 @ 0x7fa2e0055600] mb I I16..4: 46.5% 52.5% 1.0%
[libx264 @ 0x7fa2e0055600] mb P I16..4: 11.5% 9.5% 0.0% P16..4: 28.6% 2.5% 1.3% 0.0% 0.0% skip:46.5%
[libx264 @ 0x7fa2e0055600] mb B I16..4: 0.7% 0.4% 0.0% B16..8: 18.0% 0.2% 0.0% direct:11.7% skip:69.0% L0:45.3% L1:54.6% BI: 0.1%
[libx264 @ 0x7fa2e0055600] 8x8 transform intra:46.7% inter:96.4%
[libx264 @ 0x7fa2e0055600] coded y,uvDC,uvAC intra: 12.3% 33.0% 7.1% inter: 1.7% 19.3% 0.0%
[libx264 @ 0x7fa2e0055600] i16 v,h,dc,p: 16% 70% 8% 6%
[libx264 @ 0x7fa2e0055600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 25% 42% 2% 5% 3% 5% 1% 4%
[libx264 @ 0x7fa2e0055600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 27% 9% 2% 13% 10% 10% 3% 2%
[libx264 @ 0x7fa2e0055600] i8c dc,h,v,p: 51% 26% 19% 4%
[libx264 @ 0x7fa2e0055600] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fa2e0055600] ref P L0: 64.5% 16.5% 19.0%
[libx264 @ 0x7fa2e0055600] ref B L0: 80.6% 15.5% 3.8%
[libx264 @ 0x7fa2e0055600] ref B L1: 87.5% 12.5%
[libx264 @ 0x7fa2e0055600] kb/s:6472.95
[aac @ 0x7fa2e000da00] Qavg: 783.853
% ffprobe out.mov
ffprobe version 4.1.3 Copyright (c) 2007-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.3)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --disable-securetransport --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[h264 @ 0x7f949201f600] non-existing PPS 0 referenced
[h264 @ 0x7f949201f600] decode_slice_header error
[h264 @ 0x7f949201f600] no frame!
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9492001a00] decoding for stream 0 failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9492001a00] Could not find codec parameters for stream 0 (Video: h264 (aivx / 0x78766961), none, 3840x2160, 6478 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf58.20.100
Duration: 00:00:01.05, start: 0.000000, bitrate: 6294 kb/s
Stream #0:0(eng): Video: h264 (aivx / 0x78766961), none, 3840x2160, 6478 kb/s, 30 fps, 30 tbr, 15360 tbn, 30720 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.35.100 libx264
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 82 kb/s (default)
Metadata:
handler_name : SoundHandler
Attachments (1)
Change History (4)
by , 5 years ago
comment:1 by , 5 years ago
| Resolution: | → duplicate |
|---|---|
| Status: | new → closed |
comment:2 by , 5 years ago
Cool, thanks for the work-arond, cehoyos - I had to add -strict -2, as well.
Seems like this is a regression, BTW. I had an older 4.1 build lying around. Encoding worked back then even without adding -vtag avc1 -strict -2. I'm wondering if this is something that should to be addressed?
comment:3 by , 5 years ago
Hmm, interesting... -vtag avc1 isn't necessary it seems, but -strict is (BTW, -strict -1 works just as well).



Work-around is to use
-vtag avc1.Duplicate of ticket #7468, see 23f0e2edec3d9a87e3cc39f5d9a9384cb53b81bd, f2e53808e329c403d1a409f3c35a93854064b6a2 and 7a4be4315fd6c5e80cd24697d1a5b67c9a3cfcaf