Safari

最終更新日

2019-05-14

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

最新

macOS 10.14.5

Safari 12.1.1

iOS 12.3

Mobile Safari 12.1.1

歴史

  • 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 以外のブラウザについて

WebView は WebRTC に対応していない

iOS 上のブラウザ実装は WebView を利用しているため、 WebView が WebRTC に対応していなければいけない。

2019 年 3 月の時点で WebView は getUserMedia に対応していないため、マイクやカメラデバイスにアクセスができないため、iOS 上の Safari 以外のブラウザでは WebRTC は利用できない。

注意事項

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

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

TURN-TLS が動作しない

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