81 lines
3.1 KiB
Markdown
81 lines
3.1 KiB
Markdown
+++
|
|
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
|
|
|
|
```yml:compose.yaml
|
|
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を変えて使うのがいいですね。
|
|
|
|
```yml:compose.yaml
|
|
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に変換します。
|
|
|
|
```sh
|
|
- 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`が良さそう。
|
|
|