3.1 KiB
+++ date = "2024-10-20" tags = ["cloudflare"] title = "restreamerでobsを配信する" +++
live配信するには様々な方法があり、色々と検討していますが、やはりobsを使うのが一番いいという結論になりました。今回は配信環境を構築する方法を紹介します。
https://github.com/obsproject/obs-studio
ue5を使うのはリスクが大きく拡張性がない
pixel streamingを使った配信を考えました。操作機能を無効にして配信する方法です。
しかし、これには問題が多かった。
例えば、すべての機能をueで実装する必要があります。
一応実装してみましたが大変な上に不便が多かった。例えば、ゲームがクラッシュすると音声などが途切れますよね。
ue5だけで完結することだけが魅力ですが、拡張性がありませんし、リスクが大きいのです。
restreamerを使う
次に検討したのはrestreamer
を使う方法です。これは配信serverのようなもので、簡易ですがpageもカスタマイズできます。
https://github.com/datarhei/restreamer
services:
restreamer:
image: datarhei/restreamer
#image: datarhei/restreamer:cuda-latest
ports:
- 8080:8080
- 1935:1935
- 6000:6000/udp
restart: always
volumes:
- ./data/config:/core/config
- ./data/data:/core/data
8080
がweb, 1935
がrtmp, 6000
がsrtです。rtmpとsrtではsrtのほうが高品質で遅延が少なくなると思います。使わないものはportを閉じてもokです。基本的にはバッティングなどもありますから以下のようにlocahostのportを変えて使うのがいいですね。
services:
restreamer:
ports:
- 8980:8080
- 1835:1935
- 6700:6000/udp
使い方は簡単で最初にwebにアクセスしてadminを作ります。設定を行い、domain(ip)を127.0.0.1
にします。ここではsrt protocolを使います。obsで配信をカスタムにしてrestreamerで発行されたurlを使用すればokです。
なお、同じserverでない場合はobsに設定するurlはipv4に変換します。
- srt://127.0.0.1:6700
+ srt://192.168.1.99:6700
systemからexpert mode
を選択しましょう。
現時点で録画機能はありません。つまり、配信終了時にffmpegでconvertしてdocker volumeに保存し、再視聴が可能になる機能があると嬉しいですね。
https://github.com/datarhei/restreamer/issues/692
mediacmsに保存する
https://github.com/mediacms-io/mediacms
mediacms
を使用することで録画をuploadすることは可能です。obsで配信、録画を行い、終了時にmediacmsにuploadする方法です。
しかし、別のpageに移動しなければなりませんし、管理システムが異なるので良い方法とは言えません。
一番いいのはyoutube
を利用することですが、すべて自前で構築する場合はrestreamer
+ mediacms
が良さそう。