>100 Views
June 11, 26
スライド概要
会津大学公認の技術系サークルZli(ジライ)主催の「大LT 2026 春 in Aizu」でのLT資料です。iPhoneとApple Vision Proを用いた空間ビデオのライブ配信について発表しました。
1997年の設立以来、動画配信を主軸に事業展開。コーポレートメッセージ「もっと素敵な伝え方を。」を掲げ、テクノロジーを通じて世の中のコミュニケーションをよりよくすることを目指しています。 自社で保有・運営する独自のコンテンツ配信ネットワーク(CDN=Content Delivery Network)を活用した動画配信に加え、長年のノウハウを活かした動画の企画・制作・運用やWebサイト制作、システム開発、動画広告による収益化支援まで総合的なサービスとソリューションを提供。取引実績はメディア、大手企業をはじめ年間1,200社・10,000案件以上です。手がける技術領域は、ネットワークの物理層からアプリケーション層にわたり、日本屈指の大規模配信や最先端案件の実績も多数あります。 エンジニア向けオウンドサイト「Voice」公開中! https://voice.stream.co.jp/
大LT2026春 in Aizu (2026/05/16) 空間ビデオで ライブ配信してみた 株式会社Jストリーム プラットフォーム本部 エンジニアリング推進室 並木 優祐
自己紹介 並木 優祐 (Yusuke NAMIKI) プラットフォーム本部 エンジニアリング推進室 チーフテックリード ● 2022年春 会津大学 博士前期課程 修了 ● 現在はJ-Streamのバックエンド(?)エンジニア ● ○ 社内の技術方針の策定や研究開発など ○ なんかいろいろしています 最近、自宅インフラの更新は少なめ ○ 代わりにガジェット周りが充実してきました
自宅インフラ(現在) • • ↑机の下にデプロイされている自宅インフラ ← 約4年が経過し、 バッテリーの 寿命が来た UPS L2 SW x3 • 2.5G 8Port x1 • 1G 24Port + 10G 4Port x2でスタック構成(冗長化済み) サーバー x14 • 仮想基盤用ノード (64GB) x4 • ネットワーク用 (N100、RasPiなど) x3 • その他 (FileSV、Zabbix、IoT、PBS、Mac mini) x5 • 積サーバー x2 (待って、1年以上本番投入できていないじゃん!) • ルーター IX2207 x2 • NAS Synology DS220+ x2 • UPS x2 • 撮影時にバッテリーの寿命が来ていることに気づいた… 一般的な構成です (当社比)
最近の買い物 2026年 • MacBook Pro (14inch, M5 Pro, 48GB RAM, 1TB SSD) • LLMが快適に 2025年 • iPhone 17 Pro • • 空間写真が撮れるようになって嬉しい! 自作ゲーミングPC (Core Ultra 7 265K, 64GB RAM, RTX5070Ti 16GB VRAM) • マイクラ統合版で遊べるようになりました! (どちらかというと生成AI満喫しています) 2024年 • Apple Vision Pro • Apple Storeで体験したら3日後にはポチってました
最近の買い物 2026年 • MacBook Pro (14inch, M5 Pro, 48GB RAM, 1TB SSD) • LLMが快適に 2025年 • iPhone 17 Pro • ProとApple 空間写真が撮れるようになって嬉しい! せっかくならiPhone 17 Vision Proを活用したい! • 自作ゲーミングPC ※ということで、今日は趣味のお話です。 (Core Ultra 7 265K, 64GB RAM, RTX5070Ti 16GB VRAM) • マイクラ統合版で遊べるようになりました! (どちらかというと生成AI満喫しています) 2024年 • Apple Vision Pro • Apple Storeで体験したら3日後にはポチってました
空間ビデオ • 2つの異なる映像を収録している • つまり左目と右目それぞれの映像に分けている • 映像はMV-HEVC(Multiview HEVC)を使用している • • HEVC(H.265)で複数レイヤーの映像を扱えるようにしたもの 左右の映像は似ているため、別々で扱うよりも効率が良くなる • それ以外にカメラ間距離、視差調整、視野角などのメタ情報ももつ • 音声は普通のステレオ、またはDolby Atmosなど
空間ビデオでライブ配信するためには… • 空間ビデオが撮影できるカメラが必要 →iPhone 15 Pro以降なら撮影できそう • MV-HEVCへの書き出しが必要 →VODであれば公式がサンプルコードを提供している • ライブ配信するには? →空間ビデオもHLSに対応している (HLSはライブ配信のための仕組みです)
空間ビデオでライブ配信するためには… • 空間ビデオが撮影できるカメラが必要 →iPhone 15 Pro以降なら撮影できそう • MV-HEVCへの書き出しが必要 これなら… →VODであれば公式がサンプルコードを提供している 空間ビデオのライブ配信 できるんじゃない? • ライブ配信するには? →空間ビデオもHLSに対応している (HLSはライブ配信のための仕組みです)
空間ビデオでライブ配信するためには… • 空間ビデオが撮影できるカメラが必要 →iPhone 15 Pro以降なら撮影できそう • MV-HEVCへの書き出しが必要 これなら… →VODであれば公式がサンプルコードを提供している 配信アプリ作りました! 空間ビデオのライブ配信 できるんじゃない? • ライブ配信するには? →空間ビデオもHLSに対応している (HLSはライブ配信のための仕組みです)
空間ビデオライブ配信アプリ:VR Live • 機能はシンプル • • • 配信先のURLを入力するテキストボックス 配信開始・停止ボタン プレビュー • 内部で行っている処理は • • • 空間ビデオで撮影 MV-HEVCでエンコード&HLSにパッケージング HLSをWebDAVにアップロードするだけ • GitHub Copilotを活用(初期実装だけ…) • 細かい作り込みは自前でやったほうが早かった…
具体的な実装(撮影) • 基本はいつも通り • • • AVCaptureDeviceでカメラを取得 AVCaptureDeviceInput、AVCaptureVideoDataOutput、 AVCaptureConnectionで入出力を設定 あとは同じ要領でAudioもセットアップ • 空間ビデオ固有の部分として • • • • 左右のカメラ(右:広角、左:超広角)をそれぞれ取得 複数カメラを使用するので、AVCaptureMultiCamSessionを使用 映像を同期させるためにAVCaptureDataOutputSynchronizerを使用 超広角カメラをズームして広角カメラと画角を合わせる • 倍率は実際に見て違和感がない値で決め打ち(力技💪)
具体的な実装(出力) • 映像の保存 • • 左右の映像がバラバラで来るので、最新のものを保持 AVAssetWriterInputTaggedPixelBufferGroupAdaptorを使用 • • 左右の映像をCMTaggedBufferで揃えて追加 CMTaggedBufferでどのレイヤーの映像か、左右どちらかを表すタグをつける • 出力まわり • MPEG4MovieでAVAssetWriterを作成 • • • shouldOptimizeForNetworkUse、outputFileTypeProfile、 preferredOutputSegmentIntervalあたりでHLS向けに設定 fMP4しか作れないのでm3u8は自前で出力 する必要がある AVAssetWriterInputでMV-HEVC向けのパラメータを設定 • • この辺りはAppleのサンプルコードが役にたつ 実際の値はiPhoneで撮影した空間ビデオを参考に設定 • あとはHTTP PUTでWebDAVにアップロードするだけ
課題 • 遅延がある • • 通常のHLSなので15秒以上 工夫すれば遅延を減らせるかも? • 対応デバイスがApple Vision Proだけ • • 左右の映像をSide By Sideにして配信すればいけるかも? WebXRあたりが使えそう • 最初からこれでやれば良かったのでは? • 映像の体験 • • • カメラの性質上、近いものの撮影に特化している 手ぶれ補正が必要(これは設定し忘れ…) 酔うのでカメラを動かせない
まとめ • 空間ビデオでライブ配信できた! • 思ったよりも簡単だった!! • Apple Vision Pro最高!!!