Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebRTC映像をAirPlayに対応させる挑戦.pdf

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 WebRTC映像をAirPlayに対応させる挑戦.pdf

Avatar for monolithic-adam

monolithic-adam

September 15, 2026

More Decks by monolithic-adam

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 Adam Henry(アダムヘンリー) • 2024年3⽉セーフィー⼊社 • iOS エンジニア • 2018,

    2022, 2026 iOSDC Speaker @monolithic-adam @monolithic_adam © Safie Inc.|3
  2. Safie Viewer for iOS の紹介 Safie Viewer for iOS クラウド録画サービスSafie(セーフィー)は

    Safie Viewerでリアルタイム映像や過去の録画映 像を⾒ることができます。 • • • DAU 25,000前後 ストア評価 4.4 iOS 17.0+ ◦ • • 直近の 3 バージョンサポート ⽇本語/英語/タイ語/ベトナム語対応 WebRTC / HLSのハイブリッド動画再⽣に 対応 © Safie Inc.|4
  3. アジェンダ • 外部ディスプレイに配信したい • 軽く今⽇話す技術の紹介 ◦ HLS ◦ WebRTC ◦

    AirPlay • AirPlayに対応させる挑戦 • 成功したか‧仕様どこに落ち着いたか • まとめ © Safie Inc.|6
  4. HLS • Appleが開発したProtocol • HTTP Live Streaming (HLS) は⼀般的な Web

    サーバーから HTTP 経由で⾳声や映像を配信する 技術です。 © Safie Inc.|10
  5. WebRTC • World Wide Web Consortium (W3C)が開発したProtocol • WebRTC(Web Real-Time

    Communication)は、プラグインや追加のソフトウェアを必要と せず、ブラウザやアプリケーション間で⾳声、映像、および任意のデータをユーザー同⼠が直 接、リアルタイムにやり取りできるプロトコル。 © Safie Inc.|11
  6. AirPlay • iOS 4, 2010年にリリースされました(Originally AirTunes) ◦ 画像‧映像‧オーディオをApple TV, スマートテレビなどに配信できる技術で

    す。 • iOS 11.4でAirPlay 2で複数台のスピーカー‧Apple TV同時に配信できる ようになったり、反応速度の改善あったりする © Safie Inc.|12
  7. 課題 • Safie Viewer には2つの再⽣モードがある ◦ 通常モード: AVPlayer を利⽤して再⽣、 AVPlayerLayer

    に映像がレンダリングされる ◦ 低遅延モード: WebRTC を利⽤して再⽣、 RTCMTLVideoView に映像がレンダリングされる • HLS の場合はAudioSessionの.airplay設定とAVPlayer にて allowsExternalPlayback = true を 指定すると AirPlay に乗ってくれる • WebRTC はAVPlayerを通らないのでExternal Playback の⼊⼝がない © Safie Inc.|14
  8. まとめ • HLS対応するにはAudioSessionの設定とallowsExternalPlaybackさえ設定すれば簡単に AirPlay対応できる • • WebRTC映像をAirPlayに対応まで持っていけなかったです ◦ 映像を取り出せる⽅法を⾒つかったが、AirPlayまで載せる⽅法はなかった。。。 ◦

    挑戦のおかげでちょっとAVFoundation/AirPlay周り詳しくなりました 現実的な代替としては「AirPlay 中だけ HLS に切り替える」案が最有⼒(導⼊は今後の判断) © Safie Inc.|45
  9. 参考資料 • https://developer.apple.com/documentation/avfoundation/integrating-airplay-for-long-f orm-video-apps • https://developer.apple.com/library/archive/referencelibrary/GettingStarted/AboutHTTP LiveStreaming/about/about.html • https://developer.apple.com/documentation/avfoundation/avsamplebufferdisplaylayer •

    https://developer.apple.com/documentation/avfoundation/avplayer/allowsexternalplay back • https://developer.apple.com/documentation/avfaudio/avaudiosession/routesharingpoli cy-swift.enum/longformaudio • https://webrtc.googlesource.com/src/ © Safie Inc.|46