Carpe Diem

備忘録。https://github.com/jun06t

NginxでRTMPストリーミングをする

概要

RTMPでストリーミングを試してみます。

環境

RTMP対応のNginxのインストール

まずビルドに必要なパッケージをインストールします。

$ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev unzip

次にNginxのソースを取得します。
現在の最新は1.7.9ですが、以下のサイトで一旦チェックしてみてください。

http://nginx.org/en/download.html

中の人が言うには基本的にはmainlineを使うべしとのことです。
バージョンが違っていれば以下のダウンロードURLも修正して進めてください。
ではダウンロードします。

$ wget http://nginx.org/download/nginx-1.7.9.tar.gz

RTMPモジュールをダウンロードします。

$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

それぞれ解凍します。

$ tar xvzf nginx-1.7.9.tar.gz
$ unzip master.zip

ビルドします。

$ cd nginx-1.7.9/
$ ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
$ make
$ sudo make install

Nginxの起動

インストールが完了したら起動できるか確認します。

$ sudo /usr/local/nginx/sbin/nginx

&つけなくてもバックグラウンドになります。

もしくは以下のようにinitスクリプトを使います。

$ sudo wget https://raw.githubusercontent.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
$ sudo chmod +x /etc/init.d/nginx
$ sudo update-rc.d nginx defaults

スクリプトを用意すればいつものように起動&停止が可能です。

sudo service nginx start
sudo service nginx stop

起動したらNginxの動作を確認してみます。

$ curl localhost
"Welcome to nginx!" page.

大丈夫そうですね。

Configの設定

nginx.confを編集します。

$ sudo vim /usr/local/nginx/conf/nginx.conf

最後に以下を追加します。

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        play /usr/local/nginx/html/video;
                        live on;
                        record off;
                }
        }
}

今回は

  • ResouceURLをlive
  • 動画のフォルダを/usr/local/nginx/html/videoに指定

としています。

再起動します。

$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

動画ファイルの用意

著作権フリー 動画とかで検索して用意してください。
用意したら先ほど動画フォルダとして指定した/usr/local/nginx/html/videotest.mp4という名前で置きます。

再生クライアントの用意

VLCプレーヤが手軽に検証として使えます。
ただしRTMPだとシークはできないので注意してください。

動作確認

curlで検証

まずはcurlで試してみましょう

$ curl -o test.mp4 'rtmp://localhost/live/test.mp4'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  397M    0  397M    0     0  14.5M      0 --:--:--  0:00:27 --:--:--     0

問題なければこんな感じになると思います。

クライアントアプリで検証

次にVLCで実際に再生してみます。
ファイルネットワークを開くを選択します。
以下のようにRTMPサーバのアドレスを入力すると再生できます。

f:id:quoll00:20150108204938p:plain

以上です。

参考