[Libav-user] FLV muxer and AVC decoder configuration record

Michael Chisholm chisholm at mitre.org
Thu Sep 15 19:58:33 CEST 2011


I am using ffmpeg 0.6.3; I can upgrade if necessary.

My problem is that the FLV muxer, as far as I can tell, is putting an 
empty decoder config record into the stream.  I tried just transcoding a 
file using the ffmpeg commandline tool:

ffmpeg -i ../../test/somefile.mpg -vcodec libx264 -f flv -fpre 
../share/ffmpeg/libx264-default.ffpreset ../../somefile_h264.flv

and I have my own little file analyzer I wrote that dumps info about flv 
files.  It shows the following for the first few tags:

Tag type: script
   dataSize for this tag = 159
   timestamp = 0
Tag type: video
   dataSize for this tag = 5
   timestamp = 0
   Frame type: keyframe
   CodecID: AVC
   AVC packet details:
     Packet type: AVC sequence header
     Sequence header hex dump (0 bytes):
Tag type: video
   dataSize for this tag = 1839
   timestamp = 0
   Frame type: keyframe
   CodecID: AVC
   AVC packet details:
     Packet type: AVC NAL unit
     Composition time offset: 33
Tag type: video
   dataSize for this tag = 2625
   timestamp = 33
   Frame type: inter frame
   CodecID: AVC
   AVC packet details:
     Packet type: AVC NAL unit
     Composition time offset: 33

etc...

Notice that the "AVC sequence header" packet in the second tag has no 
data.  This also happens with the actual tool I'm building, which uses 
libav* programmatically to transcode video to flash that can be played 
in a flash plugin in a web browser.  I've never seen anything play in 
the plugin, and I've read that the plugin requires this decoder 
configuration record in order to work.

So my question is: does libav* support complete creation of this decoder 
config record?  Or is it written to always output an empty one?

Andy


More information about the Libav-user mailing list