本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
nginx で hls ライブ配信にトライしている。
マルチビットレートへの変換はうまくいった。今度は、hls ライブ配信してみたい。iOSでも受信できるのが目標。
hls配信は、一応実現しているのだが、なぜか途中で切断してしまう。
Nginxのマニュアルはここ
https://github.com/arut/nginx-rtmp-module/wiki/Directives#hls
hlsの項目を注意深く見るが、途中で切断してしまうもんだいについては、
hls_fragment
Syntax: hls_fragment time
Context: rtmp, server, application
Sets HLS fragment length. Defaults to 5 seconds.
ここに設定された秒数で動画ファイルを分割
この項目くらいかなと思う。この長さを長くしていけばサーバの負荷は減るはず。今現在はサーバの負荷が問題なのか、クライアント側で問題を起こしているのかは不明。
今から
hls_fragment 30s
に変更してテスト
rtmp { server { listen 1935; application src { live on; exec ffmpeg -i rtmp://192.168.0.98/src/$name -c:a libfdk_aac -b:a 64k -s 320x180 -c:v libx264 -b:v 256k -f flv rtmp://192.168.0.98/hls/$name_low -c:a libfdk_aac -b:a 128k -s 640x360 -c:v libx264 -b:v 512K -f flv rtmp://192.168.0.98/hls/$name_mid -c:a libfdk_aac -b:a 128k -s 1280x760 -c:v libx264 -b:v 1024K -f flv rtmp://192.168.0.98/hls/$name_hi; } application hls { live on; hls on; hls_path /usr/local/nginx/html/live/hls; hls_nested on; hls_fragment 30s; hls_variant _low BANDWIDTH=320000; hls_variant _mid BANDWIDTH=640000; hls_variant _hi BANDWIDTH=1280000; } } }
※後日談
hls_variant _hi のBANDWIDTHは、128k + 1024kになってないといけない。
どのプレーヤで見ても真っ暗
んじゃ
hls_fragment 1s
にしたら、うまくいかない。じゃ、一番負荷が少なくなるようにしてみる。
エンコードは一本のみ
rtmp {
server {
listen 1935;
application src {
live on;
exec ffmpeg -i rtmp://192.168.0.98/src/$name
-c:a libfdk_aac -b:a 64k -s 320×180 -c:v libx264 -b:v 256k -f flv rtmp://192.168.0.98/hls/$name_low;
}
application hls {
live on;
hls on;
hls_path /usr/local/nginx/html/live/hls;
hls_nested on;
hls_fragment 1s;
hls_variant _low BANDWIDTH=320000;
}
}
}
エンコードを開始してからしばらく時間がかかるけど、再生される。この状態で推移させる。11:57 –
考察
やっぱり負荷がかかってるのかなぁ。