Chrome/Firefox/EdgeのWebRTCアップデート情報のまとめ.
API実装状況
各ブラウザにおける実装状況は次を参照.(@gtk2さん作)
Chrome
◯:デフォルト △:オプション/flag
(A):Android,(i):iOS
M47-M51
項目 | M47 | M48 | M49 | M50 | M51 | 備考 |
---|---|---|---|---|---|---|
gUM HTTPS化 | ◯ | |||||
Proxy handling | △ | LANアドレスの情報隠蔽 | ||||
MediaDevices.enumerateDevices() | ◯ | |||||
MediaStream recording API | △ | ◯ | ||||
RTC Event log | △ | ◯ | WebRTCの診断用ログ | |||
Audio output device selection | ◯ | |||||
ECDSA | △ | ◯ | ||||
VP9 | ◯ | |||||
H.264 | △ | フラグで設定切り替え | ||||
音声付きスクリーン共有 | △ | |||||
PeerConnection offer/Answerのエラーハンドラ強制化 | ○ | エラーハンドラの設定が必須 | ||||
受信側で複数種類のコーデックをサポート | ○ | |||||
帯域推定の改善 | ○ | メッシュ接続での帯域推定を改善 | ||||
Opus v1.1.2 | ○ | |||||
Audio Screen Share | ◯ | |||||
Canvas CaptureStream | ◯ | |||||
FirefoxとのH.264相互接続性の向上 | ◯ |
M52-M56
項目 | M52 | M53 | M54 | M55 | M56 | 備考 |
---|---|---|---|---|---|---|
H.264(デスクトップ) | ○ | |||||
RTCCertificateのIndexedDBによる永続化 | ○ | |||||
コマンドラインスイッチによるAECチューニングのテスト | ○ | |||||
Opus可変フレームサイズ対応 | ○ | |||||
Camera2 API support on Android | ○ | |||||
getUserMedia() Promise | ○ | |||||
複数のPeerConnectionのログを同時に記録 | ○ | |||||
Opus 1.1.3 | ○ | |||||
New screen share picker UI | ○ | |||||
UDPポートの範囲設定 | ○ | 組織の管理者がUDPポートの範囲を制限できる | ||||
iOSのビデオパフォーマンスの改善 | ○ | |||||
ICE restart時に新しいufragでSTUN bindig request | ○ | |||||
(A,i)AppRTCMobileへリネーム | ○ | |||||
(A)スクリーンキャプチャ | △ | |||||
(i)ビデオの縦横切替 | ○ | |||||
(A)Camera2での自動フォーカス,videoの安定化 | ○ | |||||
送信側での帯域推定 | ○ | RTCP拡張 | ||||
ビデオの定期的な統計情報の取得 | ○ | |||||
End-to-Endの遅延を統計情報に記録 | ○ | |||||
利用者が存在しない場合のスクリーンキャプチャ一時停止 | ○ | |||||
H.264 profile-level-idのチェック | ○ | |||||
Vendor prefix削除(RTCPeerConnection) | ○ | 旧名webkitRTCPeerConnection | ||||
RTCPeerConnection.getStats Promise | ○ | |||||
RED/RTXバグ回避策の削除 | ○ | デフォルトSDPを利用する場合,影響なし. | ||||
RTCPeerConnection.getStats Promise | ○ | |||||
H.264 Hardware encode(>Windows 8.1) | ○ | |||||
MediaStreamTrack.getSources削除 | ○ | |||||
(A)非推奨のカメラ一覧取得メソッドの削除 | ○ | *C-1 | ||||
残響エコーキャンセラ | ○ | |||||
H.264 level-idc negotiation | ○ | level-asymmetry-allowedのパラメータに応じてlevelを変える | ||||
(A)H.264 Hardware encode/decode | ○ | |||||
(A)onCameraDisconnected | ○ | |||||
(i)キャプチャしたビデオ解像度の変更 | ○ | |||||
(A)スクリーンシェア | ○ |
*C-1 getDeviceNames, getDeviceCount, getDeviceName(index), getNameOfFrontFacingDevice, getNameOfBackFacingDevice
M57-M61
項目 | M57 | M58 | M59 | M60 | M61 | 備考 |
---|---|---|---|---|---|---|
RTCRtpMuxPolicyを"require"へ変更 | ○ | 既存は"negotiate".下位互換性を維持する場合は"negotiate"と明示する. | ||||
getUserMediaのエラー判定の変更 | ○ | audio capture deviceへのアクセスが出来たかを元に変定する | ||||
既存のVoiceEngine API(VoE APIs)の廃止 | ○ | 今後のアップデートでAPIが削除. | ||||
統計にエコー検出を追加 | ○ | chrome://webrtc-internalsで有効化 | ||||
H.264 HWエンコードのサポート(Mac) | ○ | |||||
DTMFで複数のビットレートをサポート | ○ | |||||
(A)H.264 HWエンコードのサポート(Chrome) | ○ | |||||
(A)Full HD,4k サポート | ○ | |||||
(A)独自メトリクスの実装を許可 | ○ | |||||
(i)最大ビットレートの設定 | ○ | |||||
(i)Bluetoothサポート | △ | A2DPは未サポート | ||||
(i)videoの画面回転 | ○ | |||||
Promise-based RTCPeerConnection.getStats() | ○ | |||||
Opus 120ms encoding | ○ | 120ms周期のエンコーディングでオーバヘッドを削減 | ||||
RTCPeerConnection.setConfiguration() | ○ | |||||
認証付きHTTPプロキシのサポート | ○ | |||||
(A)WebRTC Android Library (.aar)の生成 | ○ | Android Studio projectでWebRTCをサポート | ||||
VP9 HWエンコードのサポート | ○ | |||||
Video jitter buffer処理の変更 | ○ | |||||
音声出力のデバッグ録音 | ○ |
Firefox
◯:デフォルト △:オプション/flag
40-45
| 項目 | 40 | 41 | 42 | 43 | 44 | 45 | 備考 |
|:--- |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---|
| ALPN対応 | ◯ | | | | | | | | | | |
| Perfect Forward Security(PSA) | | ◯ | | | | | | | | | |
| IPv6 | | ◯ | | | | | | | | | |
| Control Ice candidate generation | | ◯ | | | | | | | | | LANアドレスの隠蔽 |
| ExtentionのOffer/Answer拒否設定 | | ◯ | | | | | | | | | |
| H.264 | | ◯ | | | | | | | | | |
| ICE-TCP | | ◯ | | | | | | | | | |
| Canvas MediaStream | | △ | | ◯ | | | | | | | |
| MediaStreamTrack.applyConstraints | | | | ◯ | | | | | | | カメラ解像度の変更 |
| スクリーン共有マルチモニタ対応 | | | | △ | | | | | | | 共有スクリーンを選択 |
| RTCPeerConnection canTrickleIceCandidates | | | | | ◯ | | | | | | リモートのTrickleICE対応可否を判定 |
| DataChannel-bufferedAmountLow event | | | | | ◯ | | | | | | DataChannelバッファ溢れの監視 |
| Vendor prefix削除(PeerConnection) | | | | | ◯ | | | | | | gUMはFF36で削除済み |
| 音声32KHz対応 | | | | | ◯ | | | | | | |
| MediaStream.addTrack()/removeTrack()| | | | | ◯ | | | | | | |
| Canvas MediaStream(Mobile) | | | | | ◯ | | | | | | |
| MediaRecorder API | | | | | ◯ | | | | | | |
| スクリーン共有でgUMの解像度指定 | | | | | ◯ | | | | | | |
| Delay-Agnostic AEC | | | | | | △ | | | | | |
| 周期波形のWebAudio対応 | | | | | | ◯ | | | | | |
| 音声パフォーマンスの改善 | | | | | | ◯ | | | | | |
46-50
項目 | 46 | 47 | 48 | 49 | 50 | 備考 |
---|---|---|---|---|---|---|
Delay-Agnostic AEC | ○ | 遅延時間非依存のエコーキャンセラ | ||||
VP9 | △ | テスト中.->51で対応 | ||||
Simulcast | ○ | |||||
パルス音源の全二重サポート(Linux) | ◯ | |||||
リモートTrack単位でRTCRtpReceiver追加 | ◯ | |||||
gUMでエコーキャンセラのON/OFF指定 | ◯ | |||||
WebRTCセッションの履歴クリア | ◯ | about:webrtcのセッション履歴のクリア | ||||
RTCRtpSender.setParameters Promise | ◯ | |||||
RTCRtpEncodingParameters.scaleResolutionDownBy | ◯ | 解像度縮小(Simulcast/RtpSender) | ||||
マルチプロセスモード(e10s)でのJumbo frame動作の許可 | ◯ | |||||
モノラルOpusのサポート | ◯ | |||||
IPv6における高負荷状態の改善 | ◯ | |||||
音声全二重モードのデフォルト化 | △ | ○ | Windowsは49でサポート | |||
ICE restart/update | ○ | IPアドレス変更や,インターフェスのダウンに伴う再ネゴシエーションのサポート | ||||
MediaStreamとMediaStreamTrackの複製 | ○ | *F-1 | ||||
MediaRecoder API@Androidソフトウェアコーデック対応 | ○ | |||||
JabraヘッドセットとLogitech C920の音声歪み修正 | ○ | |||||
MediaStream.getTrackById() | ○ | |||||
gUM(cam+mic)で取得に失敗したソース以外はgUMを継続 | ○ | |||||
ontrackとonaddstreamの発火条件見直し | ○ | |||||
SDPネゴシエーション中のa=inactive有効化 | ○ | |||||
RTCPeerConnection.addTrackで任意のストリームを追加 | ○ | |||||
'b=TIAS'による帯域制限有効化 | ○ | |||||
REMBデフォルト化 | ○ | |||||
OSXでのAVFoundation対応 | ○ | |||||
ICE consent freshness | ○ | |||||
全Constraintsが渡されたとき,ダウン/アップサンプリング無効化 | ○ | |||||
mochitestsを使った,NAT・TURNのテスト自動化 | ○ | |||||
Win7での高ビットレート時の送受信パケットロス事象修正 | ○ | |||||
mochitestsを使ったNAT・TURNのテスト自動化 | ○ | |||||
TMMBRデフォルト化 | ○ | 送信側に最大メディアストリームビットレートを要求する | ||||
MediaStream.onaddtrack() | ○ | webrtc-pcのSDP再ネゴやvideo, audioの変化で発生 | ||||
MediaStreamTrack.readyState/onended | ○ | |||||
MediaStreamAudioSourceNodeのGCバグ修正 | ○ | |||||
バックグラウンドスレッドによる再生位置とリスナのスケジュール最適化 | ○ | |||||
IIR filterへ新しいIIRFilterNodeの追加 | ○ | |||||
新しい仕様の音声フィルタの追加 | ○ | |||||
SDP再ネゴでrecvonlyとした後にビデオが描画されない問題の修正 | ○ | |||||
Delay-Agnostic AEC | ○ | Chrome M51からのフィードバック | ||||
MediaStreamTrack.getConstraints() + getSettings() | ○ | |||||
H.264 codecのPacketization mode修正 | ○ | |||||
FEC | △ | FF51で正式対応 | ||||
SDP m-line変更(UDP/TLS/RTP/SAVPF) |
*F-1:Changing Firefox MediaStreams to accommodate cloning
51-55
項目 | 51 | 52 | 53 | 54 | 55 | 備考 |
---|---|---|---|---|---|---|
VP9 | ○ | Offer/AnswerでVP9と明示する必要あり.明示しない場合はH.264. | ||||
自ホストが持つIPアドレス,ルーティング通知の制御 | ○ | *F-2 | ||||
VP9 | ○ | |||||
RTCPeerConnection.removeStreamの削除 | ○ | |||||
NAT <-> symmetric NATでの単体テスト | ○ | |||||
mediaDevices.ondevicechange | △ | ○ | Macは51で対応.WindowsとLinuxは52. | |||
NACK有効時にH.264用FECの送信を無効化 | ○ | |||||
Screenシェアリング許可設定のダイアログ化 | ○ | 以前の事前登録制ホワイトリストは無効化 | ||||
DTMFサポート | ○ | ダイアルトーン | ||||
SDP再ネゴ/トラック置き換えによる解像度低下バグ修正 | ○ | |||||
ICE切断状態の検出サポート | ○ | |||||
MediaStreamsのアクティブ/非アクティブ,停止操作の追加 | ○ | |||||
SetValueCurveAtTimeイベント計算時に線形補間を実行 | ○ | ConstantSourceNodeによる波形合成に利用 | ||||
ConstantSourceNode | ○ | |||||
同一解像度で複数のFPSを表現する能力を追加 | ○ | |||||
webrtc.org stable branch 49へのアップデート | ○ | |||||
libvpx 1.6.1へのアップデート | ○ | VP8/VP9 code SDK | ||||
TRUN/TLSサポート | ○ | |||||
MediaRecorderのパフォーマンス改善(30FPS対応) | ○ | |||||
(A)音声全二重サポート | △ | ○ | 54で全OSが音声二重をサポート | |||
SDP再ネゴシエーションで帯域幅を再設定 | ○ | |||||
RTCStatsTypeの項目名の仕様準拠 | ○ | ハイフン(-)のヌケを修正 | ||||
プロファイラ項目の追加(Canvas frame capturing) | ○ | |||||
canvasのビデオストリームにタイムスタンプ付与 | ○ | |||||
有効なICE TCPが同一のsrc portが失敗すると落ちてしまう | ○ | |||||
REDで誤り検出訂正を未使用時に"empty" fmtpを出力しない | ○ | |||||
ICE TCP有効化 | ○ | media.peerconnection.ice.tcp | ||||
Citrix audioデバイス再オープン失敗でハングアップしない | ○ | |||||
Nightlyでスクリーンシェアリングプレビューの正常表示 | ○ | |||||
RTP toffset, abs-time, 3gpp:video-orientation | ○ | RTPの拡張機能群.abs-time *F-3 | ||||
ログ機構の置き換え(PRLogModuleInfo -> LazyLogModule) | ○ |
*F-2 WebRTC IP Address Handling Requirements
*F-3 abs-send-time
Edge
実装済みに近い順からステータスを列挙すると次の通り.
S: Supported
Pb: Preview build
Id: In development
Uc: Under consideration
D: Deprecated
NP: Not currently planned
実装状況
項目 | Status | 備考 |
---|---|---|
VP9 Video Playback | S | |
ORTC | S | |
WebSocket | S | |
Web Speech API (synthesis) | S | 音声合成 |
WebSocket | S | |
abs-send-time | Pb | |
Google Receiver Estimated Maximum Bitrate(goog-remb) | Pb | |
PLI, Generic NACK feedback messages | Pb | RFC 4585 |
RTP Retransmission | Pb | RFC 4588 |
H.264/AVC | Pb | |
VP8 | Pb | |
WebRTC v1.0 API | Pb | |
packetization-mode = 1 | Pb | RFC 7742 |
Web Speech API(input) | Id | |
DataChannel | Uc |
参考資料
Chrome
- Chromeリリーススケジュール
- WebRTC Conference Japan 2016のGoogle発表資料
- Kranky Geek WebRTC 2015 - What's next for WebRTC?
- Implement an audio output device API for the web
- How to get a WebRTC Diagnostic Recording from Chrome 49+
- M47 release note
- M48 release note
- M49 release note
- M50 release note
- M51 release note
- M52 release note
- M53 release note
- M54 release note
- M55 release note
- M56 release note
- M57 release note
- M58 release note
- M59 release note
- PSA: WebRTC M60 Release Notes
- PSA: WebRTC M61 Release Notes
Firefox
- Media/WebRTC
- Firefox releases
- Media/WebRTC/ReleaseNotes/43 - MozillaWiki
- Media/WebRTC/ReleaseNotes/44 - MozillaWiki
- Media/WebRTC/ReleaseNotes/45 - MozillaWiki
- Media/WebRTC/ReleaseNotes/46 - MozillaWiki
- Media/WebRTC/ReleaseNotes/47 - MozillaWiki
- Media/WebRTC/ReleaseNotes/48 - MozillaWiki
- Media/WebRTC/ReleaseNotes/49 - MozillaWiki
- Media/WebRTC/ReleaseNotes/50 - MozillaWiki
- Media/WebRTC/ReleaseNotes/51 - MozillaWiki
- Media/WebRTC/ReleaseNotes/52 - MozillaWiki
- Media/WebRTC/ReleaseNotes/53 - MozillaWiki
- Media/WebRTC/ReleaseNotes/54 - MozillaWiki
- Media/WebRTC/ReleaseNotes/55 - MozillaWiki
Edge
- Platform status
- Edge ORTC/WebRTC Q&A
- MicrosoftEdge/Status
- API Catalog
- Introducing WebRTC 1.0 and interoperable real-time communications in Microsoft Edge
Safari
- Safari 11.0
- Announcing WebRTC and Media Capture | WebKit
- A Closer Look Into WebRTC | WebKit
- Safari Technology Preview 32, with WebRTC, is Now Available | WebKit
- Release Notes for Safari Technology Preview 33 | WebKit
- Release Notes for Safari Technology Preview 34 | WebKit
- Release Notes for Safari Technology Preview 35 | WebKit
- Release Notes for Safari Technology Preview 36 | WebKit