Bugzilla – Bug 793
blocky artefacts between I-frames when decoding h.264 "IPB" from a Canon DSLR
Last modified: 2017-03-05 17:46:35 CET
I am trying to playback or transcode from h.264 "IPB" footage from a Canon DSLR (to any format). The problem: I get error messages and blocky artefacts between I-frames during playback with players using libavcodec or when decoding directly with avconv. The command: avconv -v 9 -loglevel 99 -i Canon_EOS_70D_1080_IPB.MOV -codec:v mpeg2video -q 1 debian_testing.mpg The output: -------- 8< -------- avconv version 11-6:11-2, Copyright (c) 2000-2014 the Libav developers built on Oct 19 2014 20:25:25 with gcc 4.9.1 (Debian 4.9.1-18) configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:11-2' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --disable-avserver --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static libavutil 54. 3. 0 / 54. 3. 0 libavcodec 56. 1. 0 / 56. 1. 0 libavformat 56. 1. 0 / 56. 1. 0 libavdevice 55. 0. 0 / 55. 0. 0 libavfilter 5. 0. 0 / 5. 0. 0 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 0. 0 / 3. 0. 0 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set libav* logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set libav* logging level) with argument '99'. Reading option '-i' ... matched as input file with argument 'Canon_EOS_70D_1080_IPB.MOV'. Reading option '-codec:v' ... matched as option 'codec' (codec name) with argument 'mpeg2video'. Reading option '-q' ... matched as option 'q' (use fixed quality scale (VBR)) with argument '1'. Reading option 'debian_testing.mpg' ... matched as output file. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set libav* logging level) with argument 9. Successfully parsed a group of options. Parsing a group of options: input file Canon_EOS_70D_1080_IPB.MOV. Successfully parsed a group of options. Opening an input file: Canon_EOS_70D_1080_IPB.MOV. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1913500] Probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1913500] ISO: File Type Major Brand: qt [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1913500] multiple edit list entries, a/v desync might occur, patch welcome [h264 @ 0x1924740] AVC: Consumed only 148545 bytes instead of 148548 [h264 @ 0x1924740] no picture [h264 @ 0x1924740] AVC: Consumed only 147113 bytes instead of 147116 [h264 @ 0x1924740] no picture [h264 @ 0x1924740] AVC: Consumed only 147945 bytes instead of 147948 [h264 @ 0x1924740] no picture [h264 @ 0x1924740] AVC: Consumed only 131077 bytes instead of 131080 [h264 @ 0x1924740] AVC: Consumed only 33 bytes instead of 36 [h264 @ 0x1924740] AVC: Consumed only 129517 bytes instead of 129520 [h264 @ 0x1924740] AVC: Consumed only 37 bytes instead of 40 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1913500] All info found Guessed Channel Layout for Input Stream #0.1 : stereo Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Canon_EOS_70D_1080_IPB.MOV': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2014-12-13 19:54:17 encoder : Lavf56.1.0 Duration: 00:00:02.24, start: 0.000000, bitrate: 29099 kb/s Stream #0.0(eng), 20, 1/25000: Video: h264 (High), yuvj420p, 1920x1080 [PAR 1:1 DAR 16:9], 0/1, 30433 kb/s, 25 fps, 25k tbn (default) Metadata: creation_time : 2014-12-13 19:54:17 Stream #0.1(eng), 34, 1/48000: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s (default) Metadata: creation_time : 2014-12-13 19:54:17 Successfully opened the file. Parsing a group of options: output file debian_testing.mpg. Applying option codec:v (codec name) with argument mpeg2video. Applying option q (use fixed quality scale (VBR)) with argument 1. Successfully parsed a group of options. Opening an output file: debian_testing.mpg. Successfully opened the file. Detected 1 logical cores. [buffer @ 0x192c3a0] w:1920 h:1080 pixfmt:yuvj420p [fps @ 0x19fa940] fps=25/1 [buffersink @ 0x19df060] auto-inserting filter 'auto-inserted fifo 0' between the filter 'fps for output stream 0:0' and the filter 'output stream 0:0' [format @ 0x19ab0a0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed filter 0 null' and the filter 'format' [scale @ 0x19a1fa0] w:1920 h:1080 fmt:yuvj420p -> w:1920 h:1080 fmt:yuv420p flags:0x4 Detected 1 logical cores. [abuffer @ 0x192c000] tb:1/48000 samplefmt:s16 samplerate: 48000 ch layout:0x3 [abuffersink @ 0x19c0ea0] auto-inserting filter 'auto-inserted fifo 0' between the filter 'audio format for output stream 0:1' and the filter 'output stream 0:1' [mpeg2video @ 0x19bfda0] detected 1 logical cores [h264 @ 0x1927fa0] detected 1 logical cores [mpeg @ 0x1927800] VBV buffer size not set, muxing may fail Output #0, mpeg, to 'debian_testing.mpg': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2014-12-13 19:54:17 encoder : Lavf56.1.0 Stream #0.0(eng), 0, 1/90000: Video: mpeg2video, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 1/25, q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc (default) Metadata: creation_time : 2014-12-13 19:54:17 encoder : Lavc56.1.0 mpeg2video Stream #0.1(eng), 0, 1/90000: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s (default) Metadata: creation_time : 2014-12-13 19:54:17 encoder : Lavc56.1.0 mp2 Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native)) Stream #0:1 -> #0:1 (pcm_s16le (native) -> mp2 (native)) Press ctrl-c to stop encoding [h264 @ 0x1927fa0] no picture [h264 @ 0x1927fa0] AVC: Consumed only 148545 bytes instead of 148548 [h264 @ 0x1927fa0] AVC: Consumed only 147113 bytes instead of 147116 [h264 @ 0x1927fa0] AVC: Consumed only 147945 bytes instead of 147948 [h264 @ 0x1927fa0] AVC: Consumed only 131077 bytes instead of 131080 [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 129517 bytes instead of 129520 [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [fps @ 0x19fa940] Duplicating frame. Last message repeated 1 times [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [fps @ 0x19fa940] Duplicating frame. AVC: Consumed only 33 bytes instead of 36 time=0.40 bitrate=11386.9kbits/s Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 [fps @ 0x19fa940] Duplicating frame. Last message repeated 1 times [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 131453 bytes instead of 131456 [h264 @ 0x1927fa0] AVC: Consumed only 142625 bytes instead of 142628 [fps @ 0x19fa940] Duplicating frame. [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [fps @ 0x19fa940] Duplicating frame. [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 AVC: Consumed only 33 bytes instead of 36 time=0.92 bitrate=12216.8kbits/s Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 132629 bytes instead of 132632 [h264 @ 0x1927fa0] Frame num gap 2 0 [fps @ 0x19fa940] Duplicating frame. Last message repeated 2 times [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [fps @ 0x19fa940] Duplicating frame. Last message repeated 1 times [h264 @ 0x1927fa0] AVC: Consumed only 295265 bytes instead of 295268 [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 33 bytes instead of 36 Error while decoding stream #0:0 [h264 @ 0x1927fa0] Frame num gap 2 0 [fps @ 0x19fa940] Duplicating frame. Last message repeated 1 times AVC: Consumed only 37 bytes instead of 40 time=1.48 bitrate=12199.4kbits/s Error while decoding stream #0:0 [h264 @ 0x1927fa0] AVC: Consumed only 128617 bytes instead of 128620 [fps @ 0x19fa940] Duplicating frame. Last message repeated 1 times [h264 @ 0x1927fa0] AVC: Consumed only 37 bytes instead of 40 Error while decoding stream #0:0 [fps @ 0x19fa940] Duplicating frame. No more output streams to write to, finishing.=1.98 bitrate=12209.6kbits/s frame= 51 fps= 23 q=1.0 Lsize= 3214kB time=1.98 bitrate=13284.2kbits/s video:3105kB audio:94kB other streams:0kB global headers:0kB muxing overhead: 0.467762% Input file #0 (Canon_EOS_70D_1080_IPB.MOV): Input stream #0:0 (video): 51 packets read (7760432 bytes); 34 frames decoded; Input stream #0:1 (audio): 94 packets read (385024 bytes); 94 frames decoded (96256 samples); Total: 145 packets (8145456 bytes) demuxed Output file #0 (debian_testing.mpg): Output stream #0:0 (video): 51 frames encoded; 51 packets muxed (3179045 bytes); Output stream #0:1 (audio): 84 frames encoded (96256 samples); 84 packets muxed (96768 bytes); Total: 135 packets (3275813 bytes) muxed [fps @ 0x19fa940] 34 frames in, 51 frames out; 0 frames dropped, 17 frames duplicated. -------- >8 --------
I uploaded the sample file Canon_EOS_70D_1080_IPB.MOV to ftp://upload.libav.org/incoming/bug793/
Thanks for your report, I did a little triaging and found the commit that broke it: e10fd08aa7fbe8645545ad2e8721f0ed03c8e06a
Fixed in 2cd7c99.
Wrong hardware -- IA-64 is for Intel's now defunct Itanium architecture.