Restreamer でストリーミング配信サイトをセルフホストしてみた
Restreamer というツールを使って、ストリーミング配信サイトをセルフホストしてみた。
- Open Source Streaming Server ⇒ Selfhosting Video Server / datarhei ⇒ Open Source Video Streaming Server Software
- datarhei/restreamer: The Restreamer is a complete streaming server solution for self-hosting. It has a visually appealing user interface and no ongoing license costs. Upload your live stream to YouTube, Twitch, Facebook, Vimeo, or other streaming solutions like Wowza. Receive video data from OBS and publish it with the RTMP and SRT server.
- ストリーミングサイトをセルフホストしてYouTube・Twitter・Twitchなどにも配信できるオープンソースアプリ「Restreamer」を使ってみた - GIGAZINE
公式ドキュメントは以下。
公式から 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 などでトンネリングしてあげれば世界に公開することもできるだろう。