Restreamer でストリーミング配信サイトをセルフホストしてみた

Restreamer というツールを使って、ストリーミング配信サイトをセルフホストしてみた。

公式ドキュメントは以下。

公式から Docker イメージが提供されているので、コレを使って一発で立ち上げられた。なお、Cuda 対応のイメージは WSL から呼ぶとうまく動かなかったので、Windows 側の GitBash で実行してやるとうまくいった。

# Cuda 対応版
$ docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:cuda-latest

# ハードウェアサポートなし版
$ docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:latest

Docker コンテナが起動したら http://localhost:8080/ui にアクセスする。

最初は管理者のユーザ名とパスワードを適当に決めてログインする。あとは以下の公式ガイドにもあるとおり、動画配信のセットアップウィザードを進めていく。

USB 接続したウェブカメラを直接配信する「Connected Camera」という項目があるが、コイツは Linux 限定。WSL で実現することも不可能ではないのだが、usbipd というツールで USB カメラを WSL に認識させ $ lsusb で確認できるようにしたあと、何やらカーネルをいじくり回してセットアップをしてやり /dev/video0 として認識されるようになると初めて使えるようになるようだ。面倒臭すぎて断念。w

というワケで今回は「Internal RTMP Server」を選択する。特に HTTPS 化 (RTPMS) にはせずに、表示された rtmp:// のアドレスを取得する。

そしたら OBS を開き、「設定」画面の「配信」設定で「カスタム」を選び、先程取得した rtmp:// のアドレスを入れてあげる。ストリームキーはナシで良い。

コレで OBS で配信を開始しておいてあげると、Restreamer が認識してウィザードを先に進められるようになる。

以上の設定でもって http://localhost:8080/ にアクセスすればストリーミング配信が確認できるようになった。あとは Serveo などでトンネリングしてあげれば世界に公開することもできるだろう。