Apple Safari の WebRTC について¶
概要¶
2024 年 6 月時点で Safari 17.5 を使用して確認しています。
注意点¶
音声が含まれているまたは音声のみの配信の場合 iOS の Safari では自動再生されません
これは iOS の Safari の仕様のため、今のところ回避の方法はありません
macOS の Safari の場合も設定を有効にしないと同様です
Certificate Management API に非対応です
ECDSA P256 使えません
onaddstream ではなく ontrack を利用してください
映像コーデック VP9 は対応していますが、古い iPhone では動作しなかったりします
getUserMedia を利用するには HTTPS が必須です
開発モードで HTTPS 必須を無効にできます
iOS の Chrome や Firefox について¶
iOS の Chrome や Firefox は WKWebView を利用しています。 WKWebView は iOS 14.3 にて getUserMedia に対応しました。
iOS Safari で画面共有について¶
iOS Safari には画面共有用の getDisplayMedia API が実装されていません。 そのため、画面共有を利用するにはネイティブアプリケーションを利用する必要があります。
2023 年 6 月時点ですべてのモバイルブラウザが getDisplayMedia API には対応していません。
録画機能音ズレ問題¶
Safari や Safari Technology Preview では録画機能利用時に replaceTrack
などを利用して MediaStreamTrack
を削除し、
一定時間経過後に新しく追加した際、音声パケットに関連するタイムスタンプと NTP タイムスタンプが正しく出力されない問題あります。
この問題により Safari や Safari Technology Preview では録音/録画したファイルにて音ズレが発生してしまいます。
この問題はブラウザ側のバグであり、現在のところ回避策はありません。
WebRTC Encoded Transform API が利用できる¶
Safari では WebRTC Encoded Transform API が利用できます。
重要
Chrome に実装されているのは WebRTC Encoded Transform API の古いバージョンである Insertable Streams API です。 そのため WebRTC Encoded Transform に関しては Safari が最先端となります。
H.265 (HEVC)¶
Safari 18.0 から HEVC (H.265) がデフォルトで有効になりました。
VP9 Profile 2¶
ドキュメントに記載はありませんが、Safari 18.0 より VP9 Profile 2 がデフォルトで有効になりました。
実験的機能¶
注意
Safari や Safari Technology Preview (Safari TP) では実験的機能の挙動が異なります
WebRTC AV1 が利用できる¶
Safari や Safari Technology Preview (Safari TP) 最新版では開発メニューで有効にすることで WebRTC AV1 が利用できます。