At 7:38 +0000 13/10/07, Ian Hickson wrote:
> When the first element of a value is 'avc1', indicating H.264 (AVC) video
[29], the second element is the hexadecimal representation of the following
three bytes in the sequence parameter set NAL unit specified in [29]: 1)
profile_idc, 2) a byte composed of the values of constraint_set0_flag,
constraint_set1_flag, constraint_set2_flag, constraint_set3_flag, and
reserved_zero_4bits in bit-significance order, starting from the most
significant bit, and 3) level_idc. Note that reserved_zero_4bits is required
to be equal to 0 in [29], but other values for it may be specified in the
future by ITU-T or ISO/IEC.
You don't give me a level number, so I put xx for those hex digits below.
Assuming we're simple baseline, and also main and extended compatible
avc1.42E0xx
Assuming level 3, I assume that the correct example here would be:
H.264 Simple baseline profile video (main and extended video compatible)
level 3 and Low-Complexity AAC audio in MP4 container
type="video/mp4; codecs="avc1.42E030, mp4a.40.2"
Hex/decimal confusion here. Level_idc is *ten* times the level
number, so level 3 == level_idc 30 == 0x1E.
> avc1.58A0xx
Again assuming level 3:
H.264 Extended profile video (baseline-compatible) level 3 and
Low-Complexity AAC audio in MP4 container
type="video/mp4; codecs="avc1.58A030, mp4a.40.2""
and again
> * H.264 Main profile video and Low-Complexity AAC audio in MP4 container.
> (video/mp4; .mp4)
Main profile is decimal 77, so something like
avc1.4D40xx
"something like" seems a bit vague... what do I tell authors to put? Is
this correct?:
we should tell authors to follow the RFC, and not pretend to be
authoritative.... :-)
H.264 Main profile video level 3 and Low-Complexity AAC audio in MP4
container
type="video/mp4; codecs="avc1.4D4030, mp4a.40.2""
as above
So is this the right thing to put in the spec?
H.264 "High" profile video (incompatible with main, baseline, or
extended profiles) level 3 and Low-Complexity AAC audio in MP4
container
type="video/mp4; codecs="avc1.640030, mp4a.40.2""
and again
> * MPEG-4 Simple Profile profile video and Low-Complexity AAC audio in MP4
> container. (video/mp4; .mp4)
> Covered by the RFC:
For example, MPEG-4 Visual Simple Profile Level 0 has the value 9,
so a complete string for MPEG-4 Visual Simple Profile Level 0 would
be "mp4v.20.9".
Though when checking the next answer, I read in the spec. that we may have a
typo here, it might be 8. Ooops, if so.
Simple Profile/Level 0 00001000
Reserved 00001001 - 00001111
So:
MPEG-4 Visual Simple Profile Level 0 video and Low-Complexity AAC
audio in MP4 container
type="video/mp4; codecs="mp4v.20.8, mp4a.40.2""
...?
think so
> * MPEG-4 Advanced Simple Profile profile video and
Low-Complexity AAC audio
> in MP4 container. (video/mp4; .mp4)
Advanced Simple Profile/Level 0 11110000
so, mp4v.20.240
Advanced Simple? Really? How do you guys come up with these names!
not I, said the sparrow.
Is this right?:
MPEG-4 Advanced Simple Profile Level 0 video and Low-Complexity AAC
audio in MP4 container
type="video/mp4; codecs="mp4v.20.240, mp4a.40.2""
> * MPEG-4 Simple Profile profile video and AMR audio in 3GPP container.
> (video/3gpp; .3gp)
Video we've covered. AMR is in 26.244,
samr
So to confirm:
MPEG-4 Visual Simple Profile Level 0 video and AMR audio in 3GPP
container
type="video/3gpp; codecs="mp4v.20.8, samr""
yes
> > * WMV9 video and WMA 2 audio in ASF container. (video/x-ms-wmv; .wmv)
> * WMV8 video and WMA 2 audio in ASF container. (video/x-ms-wmv; .wmv)
These would be up to Microsoft to define, I assume. I am not aware of a
definition.
> * VC-1 video and WMA 10 Pro audio in ASF container.
(video/x-ms-wmv; .wmv)
VC-1 is standardized by SMPTE, but again this container format is
Microsoft's.
> * Real Video 10 video and High-Efficiency AAC audio in Real Media
> container. (application/vnd.rn-realmedia; rm)
We'd have to ask Real, but I don't think it is defined.
> * XviD video and MP3 audio in AVI container. (video/x-msvideo; .avi)
> * Motion-JPEG video and uncompressed PCM audio in AVI container.
> (video/x-msvideo; .avi)
> AVI I *think* is owned by Microsoft, and I *think* they deprecate
it; it's up
to the owner to define. Again, I am not aware of a definition, but the 4CC
style from MP4 might be appropriate.
Do we think these companies come up with appropriate definitions any time
soon? It might be in our interests to do this for them.
Randy, what do you think?
> * MPEG-1 video and MPEG-1 Audio Layer II audio in MPEG-1 program stream
> (video/mpeg; .mpg)
MPEG has not defined the codecs parameter for these 'file' (stream) formats,
as far as I know.
So what should someone use?
I'll ask next week at MPEG.
It seems RFC4281 is actually not as useful as I'd hoped, if it doesn't
define the majority of cases -- it seems to only handle recent MPEG
standards.
That was the one for which we knew the 'community of interest' and
the standards bodies.
--
David Singer
Apple/QuickTime