[Libav-user] Something specific with Theora and 'black empty frames' ?

Soltic Lucas soltic.lucas at gmail.com
Sun Jun 5 13:49:15 CEST 2011


I'm currently working on a C++ movie playback library relying on FFmpeg and I recently noticed audio would get desynchronized with video when reading OGV files, whereas it's working fine with H.264/AAC.

What I actually noticed is that the black frames at the beginning of the movie are skipped when using the OGV decoder. Whereas they're not with the H.264/AAC decoder. I also noticed that 3 frames at the beginning of the movies don't get decoded (return code -1). This is probably where the "few seconds of black images" disappear (actually there's exactly 3s of black images). But error code -1 is not really meaningful and I don't know how to handle these few frames. After these 3 frames everything is decoded properly.

Here's the output when reading the OGV file:
[ogg @ 0x11eb600]max_analyze_duration reached
Input #0, ogg, from '/Hors sauvegarde/sintel-1024-stereo.ogv':
  Duration: 00:14:48.04, start: 0.000000, bitrate: 2692 kb/s
    Stream #0.0: Data: skeleton
    Stream #0.1: Video: theora, yuv420p, 1024x436, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Stream #0.2: Audio: vorbis, 48000 Hz, stereo, s16, 448 kb/s
      ENCODER         : Lavf52.78.5
    Stream #0.3: Invalid Codec type -1
    Stream #0.4: Invalid Codec type -1
    Stream #0.5: Invalid Codec type -1
    Stream #0.6: Invalid Codec type -1
    Stream #0.7: Invalid Codec type -1
    Stream #0.8: Invalid Codec type -1
[theora @ 0x120c600]Header packet passed to frame decoder, skipping
(then the 3 decoding errors with code -1 when using avcodec_decode_video2())

If that can be of any help, the file was downloaded from : http://www.sintel.org/wp-content/content/download.html (OGV Stereo)

Lucas Soltic

More information about the Libav-user mailing list