質問: オンライン対戦ゲームの観戦システムを構築するため、キー入力が記録された独自バイナリをリアルタイムでアップロードしながら不特定多数の観戦者にライブ配信することを考えています。 video.jsでHLS配信をやってみた - Qiita こちらを参考に、CentOS7.5にてffmpegを利用して、mp4動画ファイルをHLS形式で配信させるテストには成功しました。 このような仕組みを応用して、独自バイナリを配信したいと思っているのですが、ffmpegは独自バイナリのエンコードには対応していないように見受けられます。 独自バイナリをmp4形式に偽装する何がしかの対応を行うべきなのか、そもそもHLSを使うべきではなく、別の方法を使うべきか、アドバイスいただけないでしょうか。 ポイントとしては、観戦が始まった時点では、対戦が終了していないので、試合中のキー入力のアップロードと観戦者への配信を、ほぼリアルタイムで行いたいということです。
回答: この質問を切っ掛けに調べたところでは WebRTC という技術があるそうで、とっても複雑だけど小規模なら無料でも使えるサービスパッケージにまとめた人たちが居て、SkyWayという名前で提供されているようです。 こんなスライドがありました。 究極のゲーム用通信プロトコル “WebRTC” オンラインゲームの仕組みと工夫 細かくて伝わらないWebRTC(APIとか) 他に商用のWebRTC SFU Soraを作っている人たちがWebRTCの資料を以下のようにまとめています。 WebRTC コトハジメ 詳解 WebRTC WebRTC の未来 上記の中で、「データチャネル」とか「シグナリング」というキーワードに関連する技術が、お探しのものに該当しそうです。 ちなみに、ゲーム配信プラットフォーム「Steam」で、フレンドのプレイを視聴する Steamブロードキャスト というサービスがベータテスト状態です。これもWebRTC技術を使っているようです。 Steamブロードキャスト 別のアプローチで、こんなのもあるようです。 HTML5ゲームにもeスポーツの熱狂を。 Liberappに観戦APIとデモゲームを追加