- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Tue, 8 Jul 2014 17:21:34 +0000
- To: "public-ortc@w3.org" <public-ortc@w3.org>
Frank Li has filed 3 issues relating to the need to define Capabilities and Parameters for popular codecs such as Opus, VP8 and H.264. The following documents appear relevant to this issue: [RFC6184] Y.-K.. Wang; R. Even; T. Kristensen; R. Jesup. RTP Payload Format for H.264 Video. May 2011. RFC. URL: http://tools.ietf.org/html/rfc6184 [OPUS-RTP] J. Spittka; K. Vos; JM. Valin. RTP Payload Format for Opus Speech and Audio Codec. 30 June 2014. Internet Draft (work in progress). URL: http://tools.ietf.org/html/draft-ietf-payload-rtp-opus [RTCWEB-VIDEO] A.B. Roach. WebRTC Video Processing and Codec Requirements. 1 July 2014. Internet Draft (work in progress). URL: http://tools.ietf.org/html/draft-ietf-rtcweb-video [VP8-RTP] P. Westin; H. Lundin; M. Glover; J. Uberti; F. Galligan. RTP Payload Format for VP8 Video. 10 February 2014. Internet Draft (work in progress). URL: http://tools.ietf.org/html/draft-ietf-payload-vp8 Here are some (very) preliminary thoughts on what the Capabilities and Parameters would look like for these codecs. VP8 ---- [VP8-RTP] Section 6.1 describes two parameters that appear to represent decoder capabilities: Property Name Values Notes max-fr unsigned long This capability indicates the maximum frame rate in frames per second that the decoder is capable of decoding. max-fs unsigned long long This capability indicates the maximum frame size in macroblocks that the decoder is capable of decoding. The document does not appear to define any encoder capabilities. In order to ensure that the decoder limits are not exceeded, it would seem reasonable to have the above decoder capabilities also present as encoder parameters. H.264 ------- RFC 6184 Section 8.1 defines quite a few parameters. Currently [RTCWEB-VIDEO] does not contain much detail on which parameters are supported. There are quite a few parameters that relate to supported resolutions (profile-level-id, max-recv-level, max-fs, etc.) but rather than trying to include too many, it seems better to err on the side of caution. Here is a basic (probably too basic) set of decoder capabilities that also would make sense as encoder parameters: Property Name Values Notes max-recv-level unsigned long Indicates the highest level a receiver supports. packetization-mode unsigned short An integer in the range of 0 to 2 which indicates which packetization-mode this implementation supports. Opus ------ [OPUS-RTP] Section 6.1 describes quite a few OPTIONAL parameters. Here is a very basic set of decoder capabilities that might also make sense as encoder parameters: Property Name Values Notes maxplaybackrate usigned long A hint about the maximum output sampling rate that the receiver is capable of rendering in Hz. minptime unsigned long The decoder's minimum length of time in milliseconds rounded up to the next full integer value. stereo boolean Specifies whether the decoder prefers receiving stereo (if true) or mono signals (if false).
Received on Tuesday, 8 July 2014 17:22:05 UTC