[Ffmpeg-devel] Interleaving audio and video

Baptiste Coudurier baptiste.coudurier
Fri Feb 2 12:34:10 CET 2007


Michael Niedermayer wrote:
> Hi
> 
> On Thu, Feb 01, 2007 at 09:57:15AM +0100, Baptiste Coudurier wrote:
>> Michael Niedermayer wrote:
>>> Hi
>>>
>>> On Wed, Jan 31, 2007 at 08:10:28PM -0800, Roman Shaposhnik wrote:
>>>> While implementing an idea suggested by Michael for restructuring DV 
>>>> audio muxer I've come to realize that DV muxer currently expects a 
>>>> caller to take care of interleaving audio and video properly based
>>>> on PTS valued. Now we know that ffmpeg.c does it, but is it fair
>>>> to require that kind of behaviour in general of all users of 
>>>> libavformat ?
>>>>
>>>> Or to put it differently, do I have to care about caller giving 
>>>> me the following pattern of DV audio/video packets:
>>> see av_interleaved_write_frame() (the docs above it)
>>> and AVOutputFormat.interleave_packet()
>>>
>> Would it be same to force using interleave_packet for some formats ?
>>
>> DV,GXF,MXF always require audio to be specially packed, and therefore
>> won't support passing 48000 samples packet like MOV can contain.
> 
> interleave_packet() wasnt designed to split and merge packets which seems
> to be what you want?

well, when I coded gxf muxer, which needs 65536 samples per packet, you
suggested me to use interlave_packet, I assumed that it was the correct
way to interleave samples.

> and about huge PCM packets, these should be never generated (=the demuxer
> should split them) the reason is simply memory requiremnt, audio buffering
> issues for playback and seeking granularity if the pcm is streamcopied
> if 48k samples is huge or not is another question, 10mb audio packets
> definitly are to large though and yes files which such audio packets
> exist

Maybe lavf need AVPacketizer ?

MXF specs enforce pcm audio samples packets at 48khz to
2000/1920/1601,2,1 for 24/25/29.97 fps, and so on, which ensures
perfect(almost for NTSC) sync.

That should be also perfect for other formats, there is no framer for
pcm atm, what do you suggests ?

Add option to ffmpeg.c ? Set enc->frame_size to 1920 or so, though that
will perturb mov muxer for example which expect frame_size to 1 for pcm.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
SMARTJOG S.A.                                    http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312




More information about the ffmpeg-devel mailing list