Safari

最終更新日

2019-09-21

この資料は Safari 13 を元に書かれています

最新

macOS 10.14.6

Safari 13

iOS 13

Mobile Safari 13

変更履歴

  • Safari 13 で mDNS ICE Candidates がデフォルトで有効になりました

  • Safari 13 で VP8 がデフォルトで無効になっているように見えますが、利用可能です

  • Safari 12.1.1 で Unified Plan がデフォルトで有効になりました

  • Safari 12.1 で VP8 や Simulcast に対応し、WebRTC 推奨ブラウザと呼べるレベルで安定しました

  • Safari 12.0 で安定はしていましたが、機能的な面では特に追従されていませんでした

  • Safari 11.0 にて WebRTC に対応しましたが、映像コーデックの対応が H.264 のみだったり、 TURN-TCP がうまく動かなかったりと、かなり不安定でした

現状

  • SDP は 12.1.1 で Unified Plan に対応しました

  • 映像コーデックは VP8 と H.264 (HWA) に対応しました

  • Simulcast は a=ssrc-group ベースの VP8 と H.264 に対応しました

    • これを利用するには SDP の書き換えが必要です

  • 複数タブでは getUserMedia を利用することはできません

  • mDNS には対応していません

    • 実験的機能で WebRTC mDNS ICE Candidates を有効にすることで利用可能になる

  • getUserMedia を利用する場合は HTTPS 必須です

    • ただし開発ツールを有効にし セキュリティ保護されていないサイトでのメディアキャプチャを許可 を有効にすることで利用可能です

  • モックカメラ搭載しています

  • getMediaDisplay には対応していません

    • Safari Technology Preview の実験的機能で ScreenCapture を有効にすることで利用可能です

  • IPv6 でも問題なく動作します

  • TURN-UDP / TURN-TCP は問題なく動作します

    • TURN-TLS が SNI を利用していると Unknown CA がでて、うまく動作しないように見えます

iOS における Safari 以外のブラウザについて

ついに iOS 13 から SFSafariViewController が getUserMedia に対応しました。

注意事項

映像コーデックが VP9 に対応していない

VP9 はビットレートが半分で H.264 や VP8 と同等の画質を叩き出し、動きにもとても強いコーデック。 ただし CPU 使用率は VP8 の +20% アップとなります。

TURN-TLS が動作しない

P2P と coturn で試して確認したところ、 Safari は現時点で TURN-TLS には対応していません。 TLS ハンドシェイクのタイミングで Unknown CA が発生します。