Opened 9 years ago
Closed 7 years ago
#6591 closed defect (fixed)
Unable to read mp4/h264 caused by SPS decoding failure
| Reported by: | Christian Palmhøj | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avcodec |
| Version: | git-master | Keywords: | h264 regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Attempting to transcode the attached sample file results in an error for both 3.3.2 as well as git version N-86933-g80bc64.
This has been previously been known to work with version n2.7.2-3-gb1863e3.
Example shown for 3.3.2 (git version looks identical)
% ffmpeg -i test.mp4 -c:v libx264 -c:a aac test2.mp4
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument 'test.mp4'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'libx264'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'aac'.
Reading option 'test2.mp4' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Successfully parsed a group of options.
Parsing a group of options: input url test.mp4.
Successfully parsed a group of options.
Opening an input file: test.mp4.
[NULL @ 0x7fc902001000] Opening 'test.mp4' for reading
[file @ 0x7fc9016000a0] Setting default whitelist 'file,crypto'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] ISO: File Type Major Brand: f4v
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] rfps: 24.916667 0.010848
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] rfps: 24.916667 0.010848
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] rfps: 25.000000 0.000140
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] rfps: 25.083333 0.007202
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] rfps: 25.083333 0.007202
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] rfps: 50.000000 0.000558
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] Before avformat_find_stream_info() pos: 887991 bytes read:35746 seeks:1 nb_streams:2
[h264 @ 0x7fc902001600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fc902001600] Overread VUI by 2 bits
[h264 @ 0x7fc902001600] SPS decoding failure, trying again after escaping the NAL
[h264 @ 0x7fc902001600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fc902001600] Overread VUI by 2 bits
[h264 @ 0x7fc902001600] Decoding sps 0 from avcC failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] Failed to open codec in avformat_find_stream_info
[h264 @ 0x7fc902001600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fc902001600] Overread VUI by 2 bits
[h264 @ 0x7fc902001600] SPS decoding failure, trying again after escaping the NAL
[h264 @ 0x7fc902001600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fc902001600] Overread VUI by 2 bits
[h264 @ 0x7fc902001600] Decoding sps 0 from avcC failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc902001000] After avformat_find_stream_info() pos: 194497 bytes read:232354 seeks:2 frames:27
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : f4v
minor_version : 0
compatible_brands: isommp42m4v
creation_time : 2014-10-07T14:35:54.000000Z
Duration: 00:00:04.12, start: 0.000000, bitrate: 1725 kb/s
Stream #0:0(eng), 26, 1/90000: Video: h264 (avc1 / 0x31637661), none, 1280x720, 1655 kb/s, 25.01 fps, 25 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2014-10-07T14:35:54.000000Z
handler_name : WowzaStreamingEngine
encoder : WowzaStreamingEngine
Stream #0:1(eng), 1, 1/90000: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 65 kb/s (default)
Metadata:
creation_time : 2014-10-07T14:35:54.000000Z
handler_name : WowzaStreamingEngine
Successfully opened the file.
Parsing a group of options: output url test2.mp4.
Applying option c:v (codec name) with argument libx264.
Applying option c:a (codec name) with argument aac.
Successfully parsed a group of options.
Opening an output file: test2.mp4.
[file @ 0x7fc901600ec0] Setting default whitelist 'file,crypto'
Successfully opened the file.
detected 8 logical cores
[h264 @ 0x7fc902802c00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fc902802c00] Overread VUI by 2 bits
[h264 @ 0x7fc902802c00] SPS decoding failure, trying again after escaping the NAL
[h264 @ 0x7fc902802c00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fc902802c00] Overread VUI by 2 bits
[h264 @ 0x7fc902802c00] Decoding sps 0 from avcC failed
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Error while opening decoder for input stream #0:0 : Invalid data found when processing input
[AVIOContext @ 0x7fc901600f40] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x7fc9016001e0] Statistics: 232354 bytes read, 2 seeks
FFprobe suffers from the same failure:
% ffprobe test.mp4
ffprobe version 3.3.2 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
[NULL @ 0x7fd1be002a00] Opening 'test.mp4' for reading
[file @ 0x7fd1bc402680] Setting default whitelist 'file,crypto'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] ISO: File Type Major Brand: f4v
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] rfps: 24.916667 0.010848
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] rfps: 24.916667 0.010848
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] rfps: 25.000000 0.000140
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] rfps: 25.083333 0.007202
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] rfps: 25.083333 0.007202
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] rfps: 50.000000 0.000558
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] Before avformat_find_stream_info() pos: 887991 bytes read:35746 seeks:1 nb_streams:2
[h264 @ 0x7fd1be00b600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fd1be00b600] Overread VUI by 2 bits
[h264 @ 0x7fd1be00b600] SPS decoding failure, trying again after escaping the NAL
[h264 @ 0x7fd1be00b600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fd1be00b600] Overread VUI by 2 bits
[h264 @ 0x7fd1be00b600] Decoding sps 0 from avcC failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] Failed to open codec in avformat_find_stream_info
[h264 @ 0x7fd1be00b600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fd1be00b600] Overread VUI by 2 bits
[h264 @ 0x7fd1be00b600] SPS decoding failure, trying again after escaping the NAL
[h264 @ 0x7fd1be00b600] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fd1be00b600] Overread VUI by 2 bits
[h264 @ 0x7fd1be00b600] Decoding sps 0 from avcC failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd1be002a00] After avformat_find_stream_info() pos: 194497 bytes read:232354 seeks:2 frames:27
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : f4v
minor_version : 0
compatible_brands: isommp42m4v
creation_time : 2014-10-07T14:35:54.000000Z
Duration: 00:00:04.12, start: 0.000000, bitrate: 1725 kb/s
Stream #0:0(eng), 26, 1/90000: Video: h264 (avc1 / 0x31637661), none, 1280x720, 1655 kb/s, 25.01 fps, 25 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2014-10-07T14:35:54.000000Z
handler_name : WowzaStreamingEngine
encoder : WowzaStreamingEngine
Stream #0:1(eng), 1, 1/90000: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 65 kb/s (default)
Metadata:
creation_time : 2014-10-07T14:35:54.000000Z
handler_name : WowzaStreamingEngine
[h264 @ 0x7fd1bc800000] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fd1bc800000] Overread VUI by 2 bits
[h264 @ 0x7fd1bc800000] SPS decoding failure, trying again after escaping the NAL
[h264 @ 0x7fd1bc800000] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x7fd1bc800000] Overread VUI by 2 bits
[h264 @ 0x7fd1bc800000] Decoding sps 0 from avcC failed
Could not open codec for input stream 0
Working version:
% ffmpeg -i test.mp4 -c:v libx264 -c:a libfaac test2.mp4
ffmpeg version n2.7.2-3-gb1863e3 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/var/transcoder/dist/package/usr --enable-libspeex --enable-libfaac --enable-libfdk-aac --enable-libx264 --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-pthreads --enable-postproc --enable-nonfree --enable-librtmp --enable-shared --enable-libtheora --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libvpx --disable-demuxer='hls,applehttp' --disable-protocol=hls
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
[h264 @ 0xba2fe0] Overread VUI by 2 bits
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : f4v
minor_version : 0
compatible_brands: isommp42m4v
creation_time : 2014-10-07 14:35:54
Duration: 00:00:04.12, start: 0.000000, bitrate: 1725 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1280x720, 1655 kb/s, 25.01 fps, 25 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2014-10-07 14:35:54
handler_name : WowzaStreamingEngine
encoder : WowzaStreamingEngine
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 65 kb/s (default)
Metadata:
creation_time : 2014-10-07 14:35:54
handler_name : WowzaStreamingEngine
File 'test2.mp4' already exists. Overwrite ? [y/N] y
[libx264 @ 0xd59d20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0xd59d20] profile High, level 3.1
[libx264 @ 0xd59d20] 264 - core 146 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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=12 lookahead_threads=2 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=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[h264 @ 0x1264ae0] Overread VUI by 2 bits
Output #0, mp4, to 'test2.mp4':
Metadata:
major_brand : f4v
minor_version : 0
compatible_brands: isommp42m4v
encoder : Lavf56.36.100
Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720, q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
Metadata:
creation_time : 2014-10-07 14:35:54
handler_name : WowzaStreamingEngine
encoder : Lavc56.41.100 libx264
Stream #0:1(eng): Audio: aac (libfaac) ([64][0][0][0] / 0x0040), 44100 Hz, mono, s16, 128 kb/s (default)
Metadata:
creation_time : 2014-10-07 14:35:54
handler_name : WowzaStreamingEngine
encoder : Lavc56.41.100 libfaac
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (libfaac))
Press [q] to stop, [?] for help
[h264 @ 0x13937c0] Overread VUI by 2 bits
[h264 @ 0x1264ae0] Overread VUI by 2 bitsB time=00:00:02.85 bitrate= 502.0kbits/s
frame= 103 fps= 52 q=-1.0 Lsize= 620kB time=00:00:04.04 bitrate=1256.9kbits/s
video:577kB audio:37kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.874109%
[libx264 @ 0xd59d20] frame I:2 Avg QP:18.74 size: 19168
[libx264 @ 0xd59d20] frame P:65 Avg QP:20.67 size: 6911
[libx264 @ 0xd59d20] frame B:36 Avg QP:22.38 size: 2860
[libx264 @ 0xd59d20] consecutive B-frames: 46.6% 17.5% 8.7% 27.2%
[libx264 @ 0xd59d20] mb I I16..4: 35.5% 58.8% 5.7%
[libx264 @ 0xd59d20] mb P I16..4: 2.2% 3.4% 0.1% P16..4: 45.0% 5.2% 4.7% 0.0% 0.0% skip:39.3%
[libx264 @ 0xd59d20] mb B I16..4: 0.1% 0.1% 0.0% B16..8: 42.7% 0.8% 0.0% direct: 2.7% skip:53.5% L0:47.6% L1:52.0% BI: 0.4%
[libx264 @ 0xd59d20] 8x8 transform intra:59.1% inter:90.2%
[libx264 @ 0xd59d20] coded y,uvDC,uvAC intra: 31.7% 42.4% 1.6% inter: 8.4% 18.2% 0.0%
[libx264 @ 0xd59d20] i16 v,h,dc,p: 23% 26% 23% 28%
[libx264 @ 0xd59d20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 21% 42% 3% 2% 2% 3% 2% 7%
[libx264 @ 0xd59d20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 27% 19% 5% 6% 6% 4% 3% 10%
[libx264 @ 0xd59d20] i8c dc,h,v,p: 59% 24% 15% 3%
[libx264 @ 0xd59d20] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0xd59d20] ref P L0: 75.3% 4.1% 14.8% 5.8%
[libx264 @ 0xd59d20] ref B L0: 89.3% 9.5% 1.1%
[libx264 @ 0xd59d20] ref B L1: 95.3% 4.7%
[libx264 @ 0xd59d20] kb/s:1146.66
Note that because of the older version, libfaac is used instead of aac but the end result is the same (also tried with other output formats, it makes no difference to either the working or non-working versions.
Attachments (1)
Change History (3)
by , 9 years ago
comment:1 by , 9 years ago
| Component: | ffmpeg → avcodec |
|---|---|
| Keywords: | h264 regression added |
| Priority: | normal → important |
| Reproduced by developer: | set |
| Status: | new → open |
| Version: | unspecified → git-master |
Regression since 0bf5fd2e19b081ce17e523944c2735586b008159
comment:2 by , 7 years ago
| Resolution: | → fixed |
|---|---|
| Status: | open → closed |



Sample file (from live recording)