[whatwg] Give guidance about RFC 4281 codecs parameter
Dave Singer
singer at apple.com
Mon Oct 15 18:48:00 PDT 2007
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
More information about the whatwg
mailing list