Opened 11 years ago

Closed 11 years ago

#1915 closed defect (fixed)

mjpeg: fix/support morgan not interleaved

Reported by: ami_stuff Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: avi mjpeg
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

decodes ok with "-f mjpeg"

C:\>ffmpeg -i not_interleaved.avi out.avi
ffmpeg version N-46616-g3a7f008 Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 12 2012 02:22:44 with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.
0-1.fc14)
  configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
  libavutil      52.  5.100 / 52.  5.100
  libavcodec     54. 71.100 / 54. 71.100
  libavformat    54. 36.100 / 54. 36.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 22.101 /  3. 22.101
  libswscale      2.  1.102 /  2.  1.102
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
Input #0, avi, from 'not_interleaved.avi':
  Duration: 00:00:00.10, start: 0.000000, bitrate: 29015 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 1024x768, 10 tbr, 1
0 tbn, 10 tbc
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf54.36.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1024x768, q=2-31, 20
0 kb/s, 10 tbn, 10 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> mpeg4)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=0.0 Lsize=       6kB time=00:00:00.00 bitrate=   0.0kbits/
s
video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead inf%
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters i
f used)
C:\>ffmpeg -f mjpeg -i not_interleaved.avi out.avi
ffmpeg version N-46616-g3a7f008 Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 12 2012 02:22:44 with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.
0-1.fc14)
  configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
  libavutil      52.  5.100 / 52.  5.100
  libavcodec     54. 71.100 / 54. 71.100
  libavformat    54. 36.100 / 54. 36.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 22.101 /  3. 22.101
  libswscale      2.  1.102 /  2.  1.102
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
[mjpeg @ 0x1edc3a0] Estimating duration from bitrate, this may be inaccurate
Input #0, mjpeg, from 'not_interleaved.avi':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p, 1024x384, 25 tbr, 1200k tbn, 25 tbc
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf54.36.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1024x384, q=2-31, 20
0 kb/s, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> mpeg4)
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=5.6 Lsize=      47kB time=00:00:00.04 bitrate=9706.4kbits/
s
video:42kB audio:0kB subtitle:0 global headers:0kB muxing overhead 13.323682%

Attachments (2)

interleaved.avi (700.2 KB ) - added by ami_stuff 11 years ago.
not_interleaved.avi (354.2 KB ) - added by ami_stuff 11 years ago.

Download all attachments as: .zip

Change History (9)

by ami_stuff, 11 years ago

Attachment: interleaved.avi added

by ami_stuff, 11 years ago

Attachment: not_interleaved.avi added

comment:1 by Carl Eugen Hoyos, 11 years ago

Keywords: avi mjpeg added
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master

Is the problem also reproducible with longer streams (more than one frame)?

in reply to:  1 comment:2 by ami_stuff, 11 years ago

Replying to cehoyos:

Is the problem also reproducible with longer streams (more than one frame)?

yes

http://www.datafilehost.com/download-78bae83b.html

C:\>ffmpeg -i m_noint.avi out.avi
ffmpeg version N-46616-g3a7f008 Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 12 2012 02:22:44 with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.
0-1.fc14)
  configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
  libavutil      52.  5.100 / 52.  5.100
  libavcodec     54. 71.100 / 54. 71.100
  libavformat    54. 36.100 / 54. 36.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 22.101 /  3. 22.101
  libswscale      2.  1.102 /  2.  1.102
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
[mp3 @ 0x1fc6ac0] Header missing
Input #0, avi, from 'm_noint.avi':
  Duration: 00:00:02.71, start: 0.000000, bitrate: 19242 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 640x480, 23.97 tbr,
 23.97 tbn, 23.97 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16, 128 kb
/s
File 'out.avi' already exists. Overwrite ? [y/N] y
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf54.36.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 640x480, q=2-31, 200
 kb/s, 23.97 tbn, 23.97 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> mpeg4)
  Stream #0:1 -> #0:1 (mp3 -> libmp3lame)
Press [q] to stop, [?] for help
[mp3 @ 0x1fc6ac0] Header missing
Error while decoding stream #0:1: Invalid data found when processing input
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mjpeg @ 0x1edcb40] Can not process SOS before SOF, skipping
[mjpeg @ 0x1edcb40] Found EOI before any SOF, ignoring
[mp3 @ 0x1fc6ac0] incomplete frame
Error while decoding stream #0:1: Invalid data found when processing input
frame=    0 fps=0.0 q=0.0 Lsize=      54kB time=00:00:02.69 bitrate= 164.9kbits/
s
video:0kB audio:42kB subtitle:0 global headers:0kB muxing overhead 28.797417%

comment:3 by Michael Niedermayer, 11 years ago

Component: undeterminedavcodec
Resolution: fixed
Status: openclosed

comment:4 by ami_stuff, 11 years ago

The big file decodes ok now, but 1-framed not.

comment:5 by ami_stuff, 11 years ago

or maybe this is a bug of the codec/VirtualDub that it stored only one field for interlaced frame? If that's the case then maybe an error message could be added (skipping frame, only one field found or something).

comment:6 by Carl Eugen Hoyos, 11 years ago

Resolution: fixed
Status: closedreopened
$ ffmpeg -i not_interleaved.avi out.jpg
ffmpeg version N-47402-g5e2be27 Copyright (c) 2000-2012 the FFmpeg developers
  built on Dec  3 2012 05:17:20 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack --disable-yasm --disable-asm
  libavutil      52. 11.101 / 52. 11.101
  libavcodec     54. 78.101 / 54. 78.101
  libavformat    54. 42.100 / 54. 42.100
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 23.105 /  3. 23.105
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.101 /  0. 17.101
  libpostproc    52.  2.100 / 52.  2.100
Input #0, avi, from 'not_interleaved.avi':
  Duration: 00:00:00.10, start: 0.000000, bitrate: 29015 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 1024x768, 10 tbr, 10 tbn, 10 tbc
Output #0, image2, to 'out.jpg':
  Metadata:
    encoder         : Lavf54.42.100
    Stream #0:0: Video: mjpeg, yuvj422p, 1024x768, q=2-31, 200 kb/s, 90k tbn, 10 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> mjpeg)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=00:00:00.00 bitrate=   0.0kbits/s
video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead -nan%
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

comment:7 by Michael Niedermayer, 11 years ago

Resolution: fixed
Status: reopenedclosed

informational Message added in dabfa80ce27f1e93e3d265db9d3f38a819e144af

Note: See TracTickets for help on using tickets.