Apple Safari の WebRTC について

概要

2024 年 12 月 時点で Safari 18.1 を使用して確認しています。

注意点

  • 音声が含まれているまたは音声のみの配信の場合 iOS の Safari では自動再生されません

    • これは iOS の Safari の仕様のため、今のところ回避の方法はありません

    • macOS の Safari の場合も設定を有効にしないと同様です

  • Certificate Management API に非対応です

    • ECDSA P256 使えません

  • ontrack を利用してください

  • 映像コーデック VP9 は対応していますが、古い iPhone では動作しなかったりします

  • getUserMedia を利用するには HTTPS が必須です

    • 開発モードで HTTPS 必須を無効にできます

iOS の Chrome や Firefox について

iOS の Chrome や Firefox は WKWebView を利用しています。 WKWebView は iOS 14.3 にて getUserMedia に対応しました。

iOS Safari で画面共有について

iOS Safari には画面共有用の getDisplayMedia API が実装されていません。 そのため、画面共有を利用するにはネイティブアプリケーションを利用する必要があります。

2024 年 12 月 時点ですべてのモバイルブラウザが getDisplayMedia API には対応していません。

MediaDevices.getDisplayMedia() - Web APIs | MDN

録画機能音ズレ問題

Safari や Safari Technology Preview では録画機能利用時に replaceTrack などを利用して MediaStreamTrack を削除し、 一定時間経過後に新しく追加した際、音声パケットに関連するタイムスタンプと NTP タイムスタンプが正しく出力されない問題あります。

この問題により Safari や Safari Technology Preview では録音/録画したファイルにて音ズレが発生してしまいます。

この問題はブラウザ側のバグであり、現在のところ回避策はありません。

WebRTC Encoded Transform API が利用できる

Safari では WebRTC Encoded Transform API が利用できます。

H.265 (HEVC)

Safari 18.0 から HEVC (H.265) がデフォルトで有効になりました。

Safari 18.0 Release Notes | Apple Developer Documentation

VP9 Profile 2

ドキュメントに記載はありませんが、Safari 18.0 より VP9 Profile 2 がデフォルトで有効になりました。

実験的機能

注意

SafariSafari Technology Preview (Safari TP) では実験的機能の挙動が異なります

WebRTC AV1

SafariSafari Technology Preview (Safari TP) 最新版では開発メニューで有効にすることで WebRTC AV1 が利用できます。

© Copyright 2024, Shiguredo Inc Created using Sphinx 8.1.3