【備忘録】RTMPサーバーを構築する方法

準備

初めに使用するサーバーは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

 

参考文献

https://ccbaxy.xyz/blog/2020/05/05/video2/

投稿者:

kema

趣味でプログラミングしてるだけの人

コメントを残す