47
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

47
Last updated at Posted at 2016-02-19

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 | | ◯ | | | | | | | | | 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

Firefox

Edge

Safari

47
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?