Apple Safari の WebRTC について

概要

2023 年 6 月時点で Safari 16.4 を使用して確認しています。

注意点

  • 音声が含まれているまたは音声のみの配信の場合 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 には対応していません。

MediaDevices.getDisplayMedia() - Web APIs | MDN

WebRTC Encoded Transform API が利用可能

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

重要

Chrome に実装されているのは WebRTC Encoded Transform API の古いバージョンである Insertable Streams API です。 そのため WebRTC Encoded Transform に関しては Safari が最先端となります。

実験的機能

注意

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

H.265 が利用可能

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

WebRTC AV1 が利用可能

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

VP9 Profile 2 が利用可能

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

© Copyright 2024, Shiguredo Inc Created using Sphinx 7.2.6