AV1¶
- 最終更新日:
2021-04-05
WebRTC への対応状況¶
2021 年 4 月 13 日にリリースされる Chrome M90 にて AV1 に対応します。
RTP Payload Format For AV1¶
WebRTC で AV1 を利用するためには RTP Payload Format が定義されている必要があります。その仕様がオープンになっています。
RTP の対応¶
特に必要なさそうです。
RTP ヘッダー拡張への対応¶
H.264 や VPX 系ではどんなコーデックを使っているかどうかの判断は SDP レイヤー、または Payload の中身を見る必要がありましたが、 AV1 では RTP 拡張を利用する方向で進んでいるようです。
RTP ヘッダー拡張は RTP ヘッダーに存在しないものをあとで追加できる仕組みです。
AV1 の RTP ヘッダー拡張は 2 バイトヘッダーと呼ばれる仕組みを利用しています。AV1 を WebRTC で利用するにはまず 2 バイトヘッダーとの混在への対応が必要になります。 Chrome ではデフォルトで a=extmap-allow-mixed
有効になっています。
SDP への対応¶
現時点では a=rtpmap で利用するコーデック名は AV1X
となっていますが、これは今後 AV1
となるようです。 また a=fmtp のパラメータに profile と level_idx が含まれていることが必須になるようです。
WebRTC で AV1 を利用する際の m= はおそらくこうなるだろうという SDP を書き出してみました。
m=video 9 UDP/TLS/RTP/SAVPF 120
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:Orx1
a=ice-pwd:7k939Q8Pm5YCHbiuWRBc6y+D
a=ice-options:trickle
a=fingerprint:sha-256 72:2C:4E:47:24:DD:15:25:5B:5D:AA:24:E7:05:53:3A:05:E0:D8:5D:5D:7F:B6:A0:AA:52:AB:99:D5:C3:EF:05
a=setup:actpass
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:12 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 AV1/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 profile=0; level_idx=0;
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
a=extmap が AV1 のものが用意されるかどうかはまだ発表されていないため、記載していません。
資料¶
a technial overview of the AV1 - YouTube
Google のシニア AV1 エンジニアの方の発表動画です