MediaMTX
RTMP で配信を受け付けて、それを RTSP や HLS で配信するといったことができる。
bluenviron/mediamtx: Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy and record video and audio streams.
プル型の入力に対応している
AWS や Azure のマネージドサービスだとコレができない
TopazChat と同じことをしてくれる
TopazChat との比較
メリット
仮に TopazChat が不安定になっても、自分でサーバー立ち上げてなんとかなるという安心感
デメリット
(現状)スケールしない
Support native horizontal scalability and add an Helm chart · Issue #998 · bluenviron/mediamtx
さくっと AWS 上に MediaMTX を使った構成をデプロイするコードを書いてみた。
https://github.com/i544c-me/vrc-stream
最短で packer build . して terraform apply したら立ち上がる。
入力
OBS で rtmp://IPADDRESS, streamkey は適当に入力する
出力
VRChat で rtsp://IPADDRESS/STREAMKEY
https://scrapbox.io/files/652e95a8016d9d001cdf1c4c.png
0.5秒くらいの遅延で配信できている!
手動でやる
code:install.sh
curl -LO https://github.com/bluenviron/mediamtx/releases/download/v1.2.0/mediamtx_v1.2.0_linux_amd64.tar.gz
tar xzvf mediamtx_v1.2.0_linux_amd64.tar.gz
./mediamtx
デフォルトでは下記ポートで入出力を行う。
RTMP: 1935
RTSP: 8554
RTSP に関しては well known port である 554 に変更しておく。
code:mediamtx.yml.diff
88c88
< rtspAddress: :8554
---
rtspAddress: :554
sudo での実行が求められるのでそうする。