準備
初めに使用するサーバーはUbuntu 20.04 LTS conoha の環境で進めていきます。
コンソールを開き
sudo apt update && sudo apt upgrade -y
を実行し、一応再起動してください。
次に
sudo apt install nginx libnginx-mod-rtmp
設定
お好きなエディタで /etc/nginx/nginx.conf を開き以下の内容を好きな場所に追加します。
rtmp { server { listen 1935; chunk_size 4096; application live { live on; hls on; hls_path /var/www/html; hls_fragment 5s; } } }
設定を保存して再起動すれば
OBS等のソフトからライブを始められるはずです。
rtmp://{IP}:1935/live/{好きな名前}
視聴も↑か、 /var/www/html ないにある {好きな名前}.m3u8 を参照してください。
認証機能
ここから本題・・・。
テーマとしては例えばYoutubeのようなライブ機能でただURLにアクセスしても意味がないもの
これは例えばスパムだとか、Botを通して大量のパケットだとか、サーバーの容量を圧迫しないようにするため。
認証を踏むことで例えば同時に配信できる数に制限をかけたり、視聴用のページをカスタマイズすることができる。
設定項目に以下を加える
on_publish http://{IP}/{認証ページ}
また配信終了の合図は
on_publish_done http://{IP}/{認証ページ}
また以下の設定を追加することでアーカイブを残すことができるが、
これはサーバーの容量と相談しながら決めたほうがよい。
hls_cleanup off;
認証にPOSTかGETを使用するかは
notify_method get; notify_method post;
できまる。
認証の仕組み
特に難しいことはなく、POST または GET された データにある配信用のキーが登録または許可されているものかどうかが分かればいい。
ただし、HTTP 200 コードだとすべて許可になるため、必ずそれ以外の値を返すようにした方がいいだろう。
また配信用のキーは name プロパティに格納されている。
統計情報
以下のサイトが参考になるだろう。
https://github.com/arut/nginx-rtmp-module/wiki/Getting-number-of-subscribers