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
となります。
無事動画が再生できました。
【参考URL】
https://github.com/arut/nginx-rtmp-module/wiki/Directives#hls
コメント