Edited at

ブラウザにおけるWebRTCのロードマップ

More than 1 year has passed since last update.

Chrome/Firefox/EdgeのWebRTCアップデート情報のまとめ.


API実装状況

各ブラウザにおける実装状況は次を参照.(@gtk2さん作)

WebRTC Object Member


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

ExtentionのOffer/Answer拒否設定

H.264

ICE-TCP

Canvas MediaStream

MediaStreamTrack.applyConstraints

スクリーン共有マルチモニタ対応

RTCPeerConnection canTrickleIceCandidates

DataChannel-bufferedAmountLow event

Vendor prefix削除(PeerConnection)

音声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


Firefox


Edge


Safari