[Live-devel] QuickTimeFileSink support for H.264/AVC

David Arnold darnold at futurec.net
Fri Nov 3 12:30:54 PST 2006


I have added support for H.264/AVC to QuickTimeFileSink.  The ultimate goal
of this was to be able to capture a stream with two tracks (H.264 and PCMU
audio) into a single container.  It kinda/sortof works--well, not really.
See below for issues.  The files
(QuickTimeFileSink.cpp,QuickTimeFileSink.hh) can be found here:
http://homepage.mac.com/mukilteo/

I added the "avc1" and "avcC" atoms.  Also, apparently for H.264 track data,
a 32-bit frame size must precede the frame, so I had to hack the code to
prepend this frame size.  I'm not sure I did this correctly.  The
fmtp_spropparametersets() function is used to retrieve the H.264 parameter
sets for use in the avcC atom.

Issues:

1) This doesn't work when syncStreams=true, such as when the "-y" option is
specified to openRTSP.  I have spent several hours trying to debug this
problem and I don't believe it was caused by my change.  I suspect it
existed before.  When "-y" is passed to openRTSP and the resulting file is
played in QuickTime, QuickTime crashes with a buffer overrun error.  The
file can be played in VLC, but the audio is intermitent and it isn't sync'd.

2) I believe there might be an existing bug in the stsz (sample sizes) atom.
When the atom is a single entry table, the sample count is not zero, but the
table is empty.

I am using QTAtomizer found here
(http://homepage.mac.com/ridgeworks/QTatomizer/index.htm) to debug this.  I
found this to be a very useful tool.

Do you have any ideas as to why this won't work when trying to sync the
streams?

Thank you,

Dave Arnold
Future Concepts, La Verne

The information contained in this electronic mail transmission is intended only for the use of the individual or entity named above and is privileged and confidential. If you are not the intended recipient, please do not read, copy, use or disclose this communication to others. Any dissemination, distribution or copying of this communication other than to the person or entity named above is strictly prohibited. If you have received this communication in error, please immediately delete it from your system.




More information about the live-devel mailing list