ロボカップジュニア岡山大会の様子をライブ配信したい
2020年は新型コロナウイルスの影響が各方面に出てます。 私が支援しているロボカップジュニア岡山大会も、子どもたちや応援に来られる保護者、一般の観客が密にならないよう工夫が必要です。 試合を行っているコートの周りは混み合うので、この試合の様子をライブ配信したいと思い、配信方法を調べてみました(配信を実行するか決定していません)
インターネット環境がない
インターネットが使えればYouTubeLiveで配信できますが、会場にはインターネット環境が無いところもあります。 そこで会場に用意したローカルネットワーク(Wifi)で、ライブ配信ができるか調べたところ、できることを確認しました(本当に実用になるかは別の話です)
準備するものは以下の通りです。
- Webカメラ(USBでPCに接続)
- PC(Windows10で準備。 WebカメラとOBSが使えれば何でも良い)
- RaspberryPI4(配信数が増えたときの負荷テストができていない・・・)
※OBSとは、OpenBroadcasterSoftwareのことです。 詳しくはこちら>
観客の利用方法
設計で決めた観客の利用方法は以下の通りです。
- 1つのコートに配信チャンネルを1つ割り当てます。
- 観客は自分が観戦したいチャンネル(コート)を選択できます。
保護者だと自分の子どもたちが写っているところを、アップで見たいですよね~、と言う事で、コートはABCDの4つあるとすると、カメラは4台、PC(OBS)も4台必要です。 OBSの映像を1つのチャンネル(URL)として配信します。
Webカメラの映像をOBSで配信する方法は、「YouTubeLive OBS」で検索すると沢山紹介されているから、そちらを探してください。 YouTubeLiveで配信するだけなら、簡単にできます。 ここではRaspberryPI4を設定する方法について記載します。
RaspberryPI4の設定
手順
- OSのインストール
- nginxのインストール
- rtmpサーバのインストール(nginxで動くrtmp)
- nginxの起動
- OBSの配信設定
- iPhoneやAndroidで視聴
1.OSのインストール
このブログを書いている時点の最新は「Release date 2020-08-20」でした。 ディスクトップは使わないと思いますが、私が試したのは「Raspberry Pi OS(320bit) with desktop」です。 公式ページにしたがってインストールして下さい。
Raspberry Pi 公式ページ(ダウンロード)はこちら
2.nginxのインストール
sudo apt install nginx
3.rtmpサーバのインストール
sudo apt install libnginx-mod-rtmp
nginxにrtmpの設定を追記します。 nginx.confの一番下にでも入れて下さい。 私はnanoを使っていますが、エディタはviでも良いです。
sudo nano /etc/nginx/nginx.conf
下記の設定を追加します。
rtmp {
server {
listen 1935;
access_log /var/log/nginx/rtmp_access_log;
chunk_size 4096;
application live {
live on;
record off;
wait_video on;
hls on;
hls_path /var/www/html/;
hls_fragment 5s;
}
}
}
※nanoは、Ctrl+Oで書き出し、Ctrl+Xで終了します。
4.nginxの起動
sudo systemctr start nginx.service
正しく起動していれば、ポートの80と1935がListenになっています。 下記コマンドでチェックして下さい。
ss -an | egrep '1935|80'
ここまでで、RaspberryPI4 の設定は終わりです。
5.OBSの配信設定
「設定」->「配信」でサーバーとストリームキーを入力します。 サーバーのIPアドレスとは、RaspberryPI4のIPアドレスのことです。 ストリームキーはチャンネル名になります。 チャンネル名はURLにもなるので、分かり易い名前が良いと思います。
OBSで「配信開始」してみましょう。 OBSでエラーが表示されるときは、RaspberryPI4のrtmpの起動を確認して下さい。 もしRaspberryPI4でFirewallを利用しているときは、80と1935を開けて下さい。
6.iPhoneやAndroidで視聴
URLは http://{RaspberryPI4のIPアドレス}/{ストリームキー}.m3u8 となります。
例:OBSの設定が以下のとき
- IPアドレス 192.168.1.2
- ストリームキー ch1
- URL http://192.168.1.2/ch1.m3u8
ブラウザ(SafariやChrome)で表示できます。 チャンネル案内のページにリンクを張っていれば、切り替えできるようになります。
7.その他
RaspberryPI4のnginx表示フォルダには、ストリーム用のファイルが作られます。 録画用ではないので、ファイルが無限に作られるわけではありません。