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

Ubuntu 16.04 サーバーで確認

ソースコードの用意

wget http://nginx.org/download/nginx-1.12.2.tar.gz

git clone https://github.com/arut/nginx-rtmp-module.git

必要なソフトのインストール

sudo apt install g++
sudo apt install libpcre3-dev
sudo apt install libssl-dev
sudo apt install make

コンパイル、インストール

./configure --add-module=/home/uchida/tmp/nginx-rtmp-module
make
sudo make install
バージョンの確認

$ /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.12.2

$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --add-module=/home/uchida/tmp/nginx-rtmp-module

試しに起動

sudo /usr/local/nginx/sbin/nginx
/usr/local/nginx/html/index.html が表示される

表示されない場合は、ポートが開いているか確認

停止

sudo /usr/local/nginx/sbin/nginx -s stop
systemctl で起動できるようにする

/lib/systemd/system/nginx.service を作成

PIDFile=/usr/local/nginx/logs/nginx.pid

起動

sudo systemctl start nginx

状態を調べる

sudo systemctl status nginx

停止

sudo systemctl stop nginx

/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;
                }
        }
}
mp4 を保存するフォルダーを作成

/usr/local/nginx/html/video

サンプルのmp4 をダウンロード

wget http://japanism.info/images/waterfall-free-video1.zip

スクリーンを動画としてキャプチャ

simplescreenrecorder
Videos/*.mkv で保存される

mp4 に変換

ffmpeg -i in01.mkv -vcodec copy out01.mp4

vlc で確認

vlc out01.mp4

curl で検証

curl -o tmp01.mp4 rtmp://localhost/live/waterfall-free-video1.mp4

curl -o tmp01.mp4 rtmp://pansy.local/live/waterfall-free-video1.mp4

他のサイトからアクセスする時は、1935 が開いている必要がある

vlc でネットワーク越しに検証

vlc rtmp://pansy.local/live/waterfall-free-video1.mp4

録画時間を取得

ffprobe tmp02.mp4 -hide_banner -show_entries format=duration


Return

Mar/02/2018 AM 08:15