ローカルネットワークでライブ配信する

構成図

ロボカップジュニア岡山大会の様子をライブ配信したい

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の設定

手順

  1. OSのインストール
  2. nginxのインストール
  3. rtmpサーバのインストール(nginxで動くrtmp)
  4. nginxの起動
  5. OBSの配信設定
  6. 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
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;
                }
        }
}
nginx.confの一番下に追記

※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の設定

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表示フォルダには、ストリーム用のファイルが作られます。 録画用ではないので、ファイルが無限に作られるわけではありません。

/var/www/html
ストリーム用ファイル
株式会社ルークシステムの代表です。 社会人になってからずーっと、コンピュータの技術者です。 年齢が上がるとプログラムが作れなくなる、と聞いていましたが、今も必要になれば、あれこれ作っています。 私はプログラムを作る(設計すること)が楽しいので、これからも作り続けたいと思っています。