

オンライン対戦ゲームの観戦システムを構築するため、キー入力が記録された独自バイナリをリアルタイムでアップロードしながら不特定多数の観戦者にライブ配信することを考えています。

[video.jsでHLS配信をやってみた -
Qiita](https://qiita.com/t114/items/c7fdffaa2e7fdf406a7b)

こちらを参考に、CentOS7.5にてffmpegを利用して、mp4動画ファイルをHLS形式で配信させるテストには成功しました。

このような仕組みを応用して、独自バイナリを配信したいと思っているのですが、ffmpegは独自バイナリのエンコードには対応していないように見受けられます。

独自バイナリをmp4形式に偽装する何がしかの対応を行うべきなのか、そもそもHLSを使うべきではなく、別の方法を使うべきか、アドバイスいただけないでしょうか。

ポイントとしては、観戦が始まった時点では、対戦が終了していないので、試合中のキー入力のアップロードと観戦者への配信を、ほぼリアルタイムで行いたいということです。


CC BY-SA 4.0
2018-11-13T09:10:22.247
50285
2018-11-14T13:26:15.447
2018-11-14T02:26:22.413
3060
30973
question
ffmpeg
動画や音声以外の独自バイナリをライブ配信する方法


この質問を切っ掛けに調べたところでは WebRTC
という技術があるそうで、とっても複雑だけど小規模なら無料でも使えるサービスパッケージにまとめた人たちが居て、SkyWayという名前で提供されているようです。

こんなスライドがありました。  
[究極のゲーム用通信プロトコル “WebRTC”](https://www.slideshare.net/rotsuya/webrtc-60167675)  
[オンラインゲームの仕組みと工夫](https://www.slideshare.net/imaifactory/ss-48388661)  
[細かくて伝わらないWebRTC(APIとか)](https://www.slideshare.net/iwashi86/webrtcapi-112712583)

他に商用のWebRTC SFU Soraを作っている人たちがWebRTCの資料を以下のようにまとめています。  
[WebRTC コトハジメ](https://gist.github.com/voluntas/67e5a26915751226fdcf)  
[詳解 WebRTC](https://gist.github.com/voluntas/a9dc017ea85aea5ffb7db73af5c6b4f9)  
[WebRTC の未来](https://gist.github.com/voluntas/59a135343538c290e515)

上記の中で、「データチャネル」とか「シグナリング」というキーワードに関連する技術が、お探しのものに該当しそうです。

* * *

ちなみに、ゲーム配信プラットフォーム「Steam」で、フレンドのプレイを視聴する Steamブロードキャスト
というサービスがベータテスト状態です。これもWebRTC技術を使っているようです。  
[Steamブロードキャスト](https://steamcommunity.com/updates/broadcasting)

別のアプローチで、こんなのもあるようです。  
[HTML5ゲームにもeスポーツの熱狂を。
Liberappに観戦APIとデモゲームを追加](https://prtimes.jp/main/html/rd/p/000000011.000031562.html)


CC BY-SA 4.0
2018-11-14T13:26:15.447
50332
2018-11-14T13:26:15.447
26370
50285
answer