[FFmpeg-devel] [RFC] Sending H.264 stream to multiple containers
nicolas.george at normalesup.org
Tue Jul 16 15:27:00 CEST 2013
L'octidi 28 messidor, an CCXXI, Peng a écrit :
> You are correct. There are only two bitstream formats: the NAL unit
> stream format and the byte stream format
> (ISO 14496-10 Annex B).
> I apologize for confusing you by misusing the term 'MP4-compliant
> stream'. The so called 'stream'
> should be more precisely called 'AVC sample structure within MP4
> file format (ISO 14496-12)', which is
> part of the AVC file format (ISO14496-15) definition. That's why
> ffmpeg does the transformation in MOV muxer.
Thanks, but now I am even more confused. I see three binary toggles:
- NAL unit stream / Annex B byte stream
- global headers / no global headers
- MP4 compliant / not MP4 compliant
Theoretically, that makes eight combinations, but I suppose most of them are
impossible / irrelevant.
You say that the lavf MOV muxer transforms into MP4-compliant structure.
Logically, the MOV demuxer should do the reverse transformation, and nobody
should worry about except people implementing MOV tools and people examining
a MOV file in a binary editor. Am I missing something?
That leaves four combinations:
1. NAL unit stream with global headers;
2. NAL unit stream without global headers;
3. Annex B byte stream with global headers;
4. Annex B byte stream without global headers.
I suspect the third one is useless, but I really do not know. Can you tell
for each combination in what kind of circumstances it is used? For example,
what goes in Matroska? I suspect 1. What goes in MPEG-TS? I suspect 4. What
goes in RTP? I have no idea.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: Digital signature
More information about the ffmpeg-devel