Opened 12 years ago

Closed 12 years ago

#733 closed defect (fixed)

No pixel format for h264 in mov

Reported by: Rob Walch Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: mov h264
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Trying to output images from an mp4 recorded on a Vivotek ip8362 camera. File plays in QT and VLC. I tried forcing the input pixel format but that didn't do the trick.

To repro:

ffmpeg -pix_fmt yuv420p -i 20111208145933_59.mp4 -ss 5 -f image2 tmp.jpg

ffmpeg version 0.7.8, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec 10 2011 06:38:00 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
  configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libopenjpeg --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.2 --arch=x86_64 --enable-yasm
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.123. 0 / 52.123. 0
  libavformat  52.111. 0 / 52.111. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85c284ac00] multiple edit list entries, a/v desync might occur, patch welcome
    Last message repeated 2 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85c284ac00] stream 1, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85c284ac00] multiple edit list entries, a/v desync might occur, patch welcome
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85c284ac00] stream 3, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f85c284ac00] max_analyze_duration 5000000 reached at 5055500

Seems stream 2 codec frame rate differs from container frame rate: 600.00 (600/1) -> 300.00 (600/2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20111208145933_59.mp4':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 14:59:33
  Duration: 00:01:00.16, start: 0.030000, bitrate: 996 kb/s
    Stream #0.0(eng): Audio: aac, 16000 Hz, stereo, s16, 31 kb/s
    Metadata:
      creation_time   : 1945-12-07 14:51:33
    Stream #0.1(eng): Data: stts / 0x73747473
    Metadata:
      creation_time   : 1945-12-07 14:51:33
    Stream #0.2(eng): Video: h264, 29.95 fps, 300 tbr, 300 tbn, 600 tbc
    Metadata:
      creation_time   : 1945-12-07 14:51:33
    Stream #0.3(eng): Data: stts / 0x73747473
    Metadata:
      creation_time   : 1945-12-07 14:51:33
[buffer @ 0x7f85c2434c00] Invalid pixel format string '-1'
Error opening filters!

Change History (7)

comment:2 by Carl Eugen Hoyos, 12 years ago

Component: FFmpegundetermined

Does it work with current git head?

in reply to:  2 comment:3 by Rob Walch, 12 years ago

Replying to cehoyos:

Does it work with current git head?

Here is error output from a Windows machine with ffmpeg-git-2c44aed-win64-static.7z. Still no pixel format info for this video

ffmpeg version N-35057-g2c44aed, Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov 21 2011 02:41:21 with gcc 4.6.2
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil    51. 26. 0 / 51. 26. 0
  libavcodec   53. 36. 0 / 53. 36. 0
  libavformat  53. 21. 0 / 53. 21. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 49. 0 /  2. 49. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
-loop_input is deprecated, use -loop 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001C3D380] multiple edit list entries, a/v desync might occur, patch welcome
    Last message repeated 2 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001C3D380] stream 1, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001C3D380] multiple edit list entries, a/v desync might occur, patch welcome
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001C3D380] stream 3, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000001C3D380] max_analyze_duration 5000000 reached at 5055625

Seems stream 2 codec frame rate differs from container frame rate: 600.00 (600/1) -> 300.00 (600/2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\xampp\htdocs\fleye_vids\1000\20111208\16\20111208160934_09.mp4':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 16:09:34
  Duration: 00:01:00.09, start: 0.010000, bitrate: 922 kb/s
    Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, stereo, s16, 32 kb/s
    Metadata:
      handler_name    : Vivotek
    Stream #0:1(eng): Data: none (stts / 0x73747473)
    Metadata:
      handler_name    : Vivotek
    Stream #0:2(eng): Video: h264 (avc1 / 0x31637661), 29.95 fps, 300 tbr, 300 tbn, 600 tbc
    Metadata:
      handler_name    : Vivotek
    Stream #0:3(eng): Data: none (stts / 0x73747473)
    Metadata:
      handler_name    : Vivotek
Output #0, image2, to 'C:\Windows\TEMP\\frame4ee53be788b759.74632232.jpg':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 16:09:34
Output file #0 does not contain any stream

I will build and test from git head on my Mac which I used to log the bug, and can also update the version on our win server in a bit. Thanks!

comment:4 by Rob Walch, 12 years ago

I've tested using the git head for Windows and Mac. I've also tested with latest Mac Ports dev build (most feature rich build available to me) and got the same results as below.

All the files that I have tested with were generated from the same device. The pixel format is not listed, and the output does not contain a stream:

Windows:

ffmpeg version N-35462-g61b1d85, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec  5 2011 14:28:46 with gcc 4.6.2
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil    51. 30. 0 / 51. 30. 0
  libavcodec   53. 40. 0 / 53. 40. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 51. 0 /  2. 51. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
-loop_input is deprecated, use -loop 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000026D380] multiple edit list entries, a/v desync might occur, patch welcome
    Last message repeated 2 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000026D380] stream 1, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000026D380] multiple edit list entries, a/v desync might occur, patch welcome
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000026D380] stream 3, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000026D380] max_analyze_duration 5000000 reached at 5055625

Seems stream 2 codec frame rate differs from container frame rate: 600.00 (600/1) -> 300.00 (600/2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\xampp\htdocs\fleye_vids\1000\20111208\16\20111208162534_25.mp4':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 16:25:34
  Duration: 00:01:00.10, start: 0.010000, bitrate: 825 kb/s
    Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, stereo, s16, 31 kb/s
    Metadata:
      handler_name    : Vivotek
    Stream #0:1(eng): Data: none (stts / 0x73747473)
    Metadata:
      handler_name    : Vivotek
    Stream #0:2(eng): Video: h264 (avc1 / 0x31637661), 29.95 fps, 300 tbr, 300 tbn, 600 tbc
    Metadata:
      handler_name    : Vivotek
    Stream #0:3(eng): Data: none (stts / 0x73747473)
    Metadata:
      handler_name    : Vivotek
Output #0, image2, to 'C:\Windows\TEMP\\frame4ee540f05491e4.71203438.jpg':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 16:25:34
Output file #0 does not contain any stream

OS X:

ffmpeg -i 20111208162534_25.mp4 -s 1280x720 -ss 30 -vframes 1 -f image2 tmp.jpg

ffmpeg version N-35681-g16abd68, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec 11 2011 21:33:05 with llvm_gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
  configuration: --prefix=/opt/local --arch=x86_64
  libavutil    51. 32. 0 / 51. 32. 0
  libavcodec   53. 42. 0 / 53. 42. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 53. 0 /  2. 53. 0
  libswscale    2.  1. 0 /  2.  1. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc19203d800] multiple edit list entries, a/v desync might occur, patch welcome
    Last message repeated 2 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc19203d800] stream 1, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc19203d800] multiple edit list entries, a/v desync might occur, patch welcome
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc19203d800] stream 3, missing mandatory atoms, broken header
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc19203d800] max_analyze_duration 5000000 reached at 5055625

Seems stream 2 codec frame rate differs from container frame rate: 600.00 (600/1) -> 300.00 (600/2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20111208162534_25.mp4':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 16:25:34
  Duration: 00:01:00.10, start: 0.010000, bitrate: 825 kb/s
    Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, stereo, s16, 31 kb/s
    Metadata:
      creation_time   : 1945-12-07 14:51:33
      handler_name    : Vivotek
    Stream #0:1(eng): Data: none (stts / 0x73747473)
    Metadata:
      creation_time   : 1945-12-07 14:51:33
      handler_name    : Vivotek
    Stream #0:2(eng): Video: h264 (avc1 / 0x31637661), 29.95 fps, 300 tbr, 300 tbn, 600 tbc
    Metadata:
      creation_time   : 1945-12-07 14:51:33
      handler_name    : Vivotek
    Stream #0:3(eng): Data: none (stts / 0x73747473)
    Metadata:
      creation_time   : 1945-12-07 14:51:33
      handler_name    : Vivotek
Output #0, image2, to 'tmp.jpg':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 256
    compatible_brands: 3gp53gp4isom
    creation_time   : 2011-12-08 16:25:34
Output file #0 does not contain any stream

comment:5 by Carl Eugen Hoyos, 12 years ago

Keywords: mov h264 added
Reproduced by developer: set
Status: newopen
Summary: Invalid pixel format string '-1' for Input and Image2 outputNo pixel format for h264 in mov
Version: 0.7.8git-master

comment:6 by reimar, 12 years ago

Vivotek stuff generates seriously broken mov files, the length of their trak element is wrong, it (claims to) include about half of the following trak element.
My patch for issue #522 happens to fix this issue as well.

comment:7 by reimar, 12 years ago

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