動画のライブストリーミングについて相談があり、ストリーミングデータを送る方法としてどんな方法があるのかを確認してみたのでまとめます。
ライブストリーミングプラットフォームを利用する方法
YouTube Live, Twitch, Facebook Live, Instagram Liveといったライブストリーミングプラットフォームを利用する。
特長
- 配信を簡単に開始できる。
- 視聴者とのインタラクション(チャットやコメント)が可能。サーバー管理不要。
- サーバー管理不要。
メリット:設定が簡単で、大規模な視聴者ベースにアクセス可能
デメリット:カスタマイズ性が低い
RTMP/RTSPプロトコルを利用したストリーミング
専用の配信ソフトウェア(例: OBS Studio, vMix)やカメラから直接RTMPサーバーにデータを送信。これをCDNやストリーミングプラットフォームに接続してストリーミングを行う
利用するソフトウェア・サービス
- 配信ソフト: OBS Studio, Streamlabs, vMix
- サーバー: Wowza Streaming Engine, Nginx with RTMP Module, AWS Elemental MdeiaLive
メリット: 高度なカスタマイズが可能。 複数のプラットフォームに同時配信が可能
デメリット: 初期設定が少し複雑
P2P技術を利用したストリーミング
P2P(Peer-to-Peer)技術を利用したストリーミングは、配信者と視聴者が直接データをやり取りする方式で、サーバーへの負荷を軽減し、リアルタイム性を高める手法です。この技術の代表的な基盤としてWebRTC(Web Real-Time Communication)が挙げられます。
特長:超低遅延の配信が可能。ブラウザ間で直接データを送信するためサーバー負荷が低い。
使用例: Zoom、Google Meetのようなリアルタイムコミュニケーション。
メリット:リアルタイム性が非常に高い
デメリット:大規模配信には適していない
まとめ
動画のライブストリーミングをする方法について、上記では「ライブストリーミングプラットフォームを利用する方法」「RTMP/RTSPプロトコルを利用したストリーミング」「P2P技術を利用したストリーミング」の3つを紹介したが、エンジニアの選択としては大きく2つあり、
「ライブストリーミングプラットフォームを使う方法」と「使わない方法」
そして、ライブストリーミングプラットフォームを使わない場合は、「RTSP/RTMPプロトコルを使う方法」と「P2P技術を使う方法」がある。
映像信号の送信には別にNDI(Network Device Interface)という方法もある。NDIは基本的にはローカルネットワーク(LAN)に設計されているが、 Microsoft Azure、AWSなどを活用してNDI信号を中継する方法もあるとのこと。
RTSP/RTMP、P2P、NDIについては別の記事でまとめる。