Opened 12 years ago

Closed 8 years ago

#631 closed defect (fixed)

Broken mp4 files need the h264_mp4toannexb filter and the parser

Reported by: Carl Eugen Hoyos Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: mov h264
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

http://thread.gmane.org/gmane.comp.video.ffmpeg.user/33553

http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111108/dae58f17/attachment.mp4
http://cache.gmane.org//gmane/comp/video/ffmpeg/user/33553-001.bin

File is said to play fine with WMP12, plays (too small but) without artefacts with QuickTime, shows many artefacts with FFmpeg.

Works mostly with
ffmpeg -i noStartCode.mp4 -vcodec copy -bsf h264_mp4toannexb out.h264

$ ffmpeg -i noStartCode.mp4 -qscale 2 out.avi
ffmpeg version N-34594-g3bdfef3, Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov  9 2011 09:56:19 with gcc 4.5.3
  configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc
  libavutil    51. 24. 0 / 51. 24. 0
  libavcodec   53. 29. 0 / 53. 29. 0
  libavformat  53. 20. 0 / 53. 20. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 47. 0 /  2. 47. 0
  libswscale    2.  1. 0 /  2.  1. 0
[h264 @ 0x1390720] no frame!

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 60.00 (60/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'noStartCode.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2011-09-26 19:20:57
  Duration: 00:00:37.81, start: 0.000000, bitrate: 881 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 8:9 DAR 4:3], 875 kb/s, 60 fps, 60 tbr, 600 tbn, 59.94 tbc
    Metadata:
      creation_time   : 2011-09-26 19:20:57
      handler_name    : ?Apple Alias Data Handler
[buffer @ 0x13885c0] w:720 h:480 pixfmt:yuv420p tb:1/1000000 sar:8/9 sws_param:
Output #0, avi, to 'out.avi':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2011-09-26 19:20:57
    ISFT            : Lavf53.20.0
    Stream #0:0(eng): Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 200 kb/s, 60 tbn, 60 tbc
    Metadata:
      creation_time   : 2011-09-26 19:20:57
      handler_name    : ?Apple Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> mpeg4)
Press [q] to stop, [?] for help
[h264 @ 0x1390720] no frame!
Error while decoding stream #0:0
[h264 @ 0x1390720] mmco: unref short failure
    Last message repeated 1 times
[h264 @ 0x1390720] no frame!
Error while decoding stream #0:0
[h264 @ 0x1390720] mmco: unref short failure
    Last message repeated 1 times

...

[h264 @ 0x1390720] no frame!
Error while decoding stream #0:0
[h264 @ 0x1390720] mmco: unref short failure
    Last message repeated 1 times
[h264 @ 0x1390720] no frame!
Error while decoding stream #0:0
[h264 @ 0x1390720] mmco: unref short failure
    Last message repeated 1 times
[h264 @ 0x1390720] no frame!
Error while decoding stream #0:0
frame=   85 fps= 54 q=2.0 Lsize=    6264kB time=00:00:06.03 bitrate=8505.1kbits/s
video:6250kB audio:0kB global headers:0kB muxing overhead 0.226366%

Change History (4)

comment:1 by Carl Eugen Hoyos, 12 years ago

Summary: h264 in mov shows artefactsh264 in mp4 shows artefacts

comment:2 by Carl Eugen Hoyos, 12 years ago

Status: newopen
Summary: h264 in mp4 shows artefactsBroken mp4 files need the h264_mp4toannexb filter and the parser

comment:3 by reimar, 12 years ago

That is a seriously broken file, it has each NAL in a separate "frame".
Plays fine with -flags2 chunks (if that does not work with your FFmpeg version, try -flags2 0x8000 instead).

comment:4 by Carl Eugen Hoyos, 8 years ago

Component: undeterminedavcodec
Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.