Opened 13 years ago

Closed 13 years ago

#28 closed defect (fixed)

Encoding mpeg-4 with threads and b-frames outputs errors on decoding

Reported by: Carl Eugen Hoyos Owned by: Michael Niedermayer
Priority: normal Component: avcodec
Version: git Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description (last modified by Carl Eugen Hoyos)

With this sample, at least four threads are necessary to trigger an error on decoding, three is enough for other samples (that trigger different errors on decoding). The container does not seem to matter.

$ ./ffmpeg -i fate-suite/svq3/Vertical400kbit.sorenson3.mov -threads 4 -bf 1 -an -qscale 5 out.avi
FFmpeg version git-N-28683-g2007c1b, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar 28 2011 23:49:16 with gcc 4.5.2
  configuration: --cc=/usr/local/gcc-4.5.2/bin/gcc --enable-gpl
  libavutil    50. 40. 0 / 50. 40. 0
  libavcodec   52.116. 0 / 52.116. 0
  libavformat  52.103. 0 / 52.103. 0
  libavdevice  52.  3. 0 / 52.  3. 0
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 13. 0 /  0. 13. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x11f6650] max_analyze_duration reached

Seems stream 0 codec frame rate differs from container frame rate: 600.00 (600/1) -> 30.00 (30/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fate-suite/svq3/Vertical400kbit.sorenson3.mov':
  Metadata:
    creation_time   : 2001-03-20 16:17:18
    title           : Vertical Online SV3 Demo
    title-eng       : Vertical Online SV3 Demo
    artist          : Logan Kelsey
    artist-eng      : Logan Kelsey
    copyright       : © Vertical Online 2001
    copyright-eng   : © Vertical Online 2001
    encoder         : Sorenson Video 3
    encoder-eng     : Sorenson Video 3
  Duration: 00:00:43.57, start: 0.000000, bitrate: 580 kb/s
    Stream #0.0(eng): Video: svq3, yuvj420p, 320x240, 391 kb/s, 30.02 fps, 30 tbr, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2001-03-20 16:17:18
    Stream #0.1(eng): Audio: adpcm_ima_qt, 44100 Hz, 1 channels, s16
    Metadata:
      creation_time   : 2001-03-20 16:17:18
Incompatible pixel format 'yuvj420p' for codec 'mpeg4', auto-selecting format 'yuv420p'
[buffer @ 0x11ff120] w:320 h:240 pixfmt:yuvj420p
[ffsink @ 0x11f7780] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x11f7a90] w:320 h:240 fmt:yuvj420p -> w:320 h:240 fmt:yuv420p flags:0xa0000004
Output #0, avi, to 'out.avi':
  Metadata:
    creation_time   : 2001-03-20 16:17:18
    INAM            : Vertical Online SV3 Demo
    title-eng       : Vertical Online SV3 Demo
    IART            : Logan Kelsey
    artist-eng      : Logan Kelsey
    ICOP            : © Vertical Online 2001
    copyright-eng   : © Vertical Online 2001
    encoder-eng     : Sorenson Video 3
    ISFT            : Lavf52.103.0
    Stream #0.0(eng): Video: mpeg4, yuv420p, 320x240, q=2-31, 200 kb/s, 30 tbn, 30 tbc
    Metadata:
      creation_time   : 2001-03-20 16:17:18
Stream mapping:
  Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
frame= 1308 fps=439 q=5.0 Lsize=    1977kB time=43.57 bitrate= 371.7kbits/s
video:1940kB audio:0kB global headers:0kB muxing overhead 1.904159%
$ ./ffmpeg -i out.avi -f null -
FFmpeg version git-N-28683-g2007c1b, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar 28 2011 23:49:16 with gcc 4.5.2
  configuration: --cc=/usr/local/gcc-4.5.2/bin/gcc --enable-gpl
  libavutil    50. 40. 0 / 50. 40. 0
  libavcodec   52.116. 0 / 52.116. 0
  libavformat  52.103. 0 / 52.103. 0
  libavdevice  52.  3. 0 / 52.  3. 0
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 13. 0 /  0. 13. 0
Input #0, avi, from 'out.avi':
  Metadata:
    artist          : Logan Kelsey
    copyright       : © Vertical Online 2001
    title           : Vertical Online SV3 Demo
    encoder         : Lavf52.103.0
  Duration: 00:00:43.60, start: 0.000000, bitrate: 371 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 30 tbr, 30 tbn, 30 tbc
[buffer @ 0x11f9ab0] w:320 h:240 pixfmt:yuv420p
[setdar @ 0x1210240] a:4/3
[setdar @ 0x1210240] w:320 h:240 -> dar:4/3 sar:1/1
Output #0, null, to 'pipe:':
  Metadata:
    artist          : Logan Kelsey
    copyright       : © Vertical Online 2001
    title           : Vertical Online SV3 Demo
    encoder         : Lavf52.103.0
    Stream #0.0: Video: rawvideo, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 30 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
[mpeg4 @ 0x11f9010] illegal MB_type
[mpeg4 @ 0x11f9010] Error at MB: 262
[mpeg4 @ 0x11f9010] concealing 0 DC, 0 AC, 0 MV errors
frame= 1308 fps=  0 q=0.0 Lsize=      -0kB time=43.60 bitrate=  -0.0kbits/s
video:0kB audio:0kB global headers:0kB muxing overhead -inf%

Change History (4)

comment:1 by Carl Eugen Hoyos, 13 years ago

Description: modified (diff)

comment:2 by Mark Locascio, 13 years ago

I can replicate this without specifying -threads. I've only tried it with xvid, but if the -bf flag is set during encoding, the output video appears corrupted when playing in VLC... totem plays them fine.

I assume that means the problem is due to VLC's use of ffmpeg in decoding.

I can provide a sample file if necessary.

comment:3 by Carl Eugen Hoyos, 13 years ago

@maldata: What you described in vlc ticket 5242 has nothing to do with this ticket.

Please open a new ticket here, provide complete, uncut output of your failing command line and provide (or point to) a sample.

http://trac.videolan.org/vlc/ticket/5242

comment:4 by Michael Niedermayer, 13 years ago

Reproduced by developer: set
Resolution: fixed
Status: newclosed

Fixed

Note: See TracTickets for help on using tickets.