nginx-rtmp hlsで動画の配信を行う

nginx-rtmpモジュールを使用したhls配信を試してみます。
こちらを参考にしました。
https://github.com/arut/nginx-rtmp-module/wiki/Directives#hls


nginxの設定



設定ファイルを編集。


$ sudo vi /etc/nginx/nginx.conf



「hls on」:hls機能を有効化。
「hls_path」:.tsや.m3u8ファイルの出力先を指定します。
「hls_fragment」:.tsファイルを分割する秒数を指定。
「hls_playlist_length」:再生時間を指定します。


rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        access_log /var/log/nginx/rtmp_access.log;

        application live {
            live on;
            record off;
            hls on;
            hls_path /tmp/hls;
            hls_fragment 15s;
            hls_playlist_length 30s;
        }
    }
}




続いてhls配信用の設定。

$ sudo vi /etc/nginx/sites-available/default



rootでhlsファイルの出力パスを指定。
locationの値が付与されるので、/tmpまでを指定します。


http {
    server {

        location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
            }
            root /tmp;
            add_header Cache-Control no-cache;
            add_header Access-Control-Allow-Origin *;
        }
    }
}



この設定で、http://[server]/hls/は、/tmp/hlsが公開されることになります。


設定ファイルを編集したらnginxを再起動しておきます。

$ sudo service nginx restart






配信テスト



rtmpで配信を開始します。
配信先はこちら。

rtmp://[server]/live/[ストリームキー]


※ストリームキーは任意

例としてストリームキーをlivekeyとして配信を開始しました。

rtmp://192.168.11.102/live/livekey



hls_pathで指定した/tmp/hlsにこんなファイルが生成されます。

livekey-1.ts
livekey-2.ts
livekey-3.ts
...
livekey.m3u8


[ストリームキー].m3u8が再生対象です。

vlcなどで、http://[server]/hls/[ストリームキー].m3u8を指定すると動画が再生されます。
今回の例だと

http://192.168.11.102/hls/livekey.m3u8


となります。

a40_01.png

無事動画が再生できました。

a40_02.png


【参考URL】
https://github.com/arut/nginx-rtmp-module/wiki/Directives#hls

関連記事

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ