[whatwg] Give guidance about RFC 4281 codecs parameter

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

Received on Monday, 15 October 2007 18:48:00 UTC