生配信サーバーを構築してみたかったのですが、nginxのエクステンションでできることがわかって構築しました。
サーバーはこれで構築できました。
macbook air obs-(wifi 100mbps)>ubuntuサーバー-(wifi)>macbook air vlc
での遅延が3秒のようですから、私には実用的な遅延レベルです。
しかし、クライアントがHLSとなると36秒遅延しています。
なぜそうなるのかはどうやら、HLSは遅延をなくすには向いていないようです。
HLSでも遅延を減らせなくはなさそうなので、最初はHLSで頑張ってみます。
今回の受信者はAndroidを想定しています。視聴者は少数であるという想定です。
まずは、nginxのrtmpの設定で、
# HLS fragment の長さ(1個のtsファイルの動画の長さ)
hls_fragment 1s;
としてみました。
すると、遅延は25秒になりました。
続いて
#m3u8ファイルに何秒分のtsファイルを掲載するか
hls_playlist_length 4s;
#なぜか必要です
wait_video off;
遅延が22秒!
ただし、安定性が落ちるようです。
この秒数を2とするとそもそも開けなくなりました。
次に、
hls_max_fragment 8s;
としてみます。
すると、、、
遅延を17秒までにできました!うぅ!
4秒にしてみます。
12秒までに削減できました。
2秒にすると、14秒になるので減らし過ぎもいけません。
ところが
githubのissueを見ようとした時に、誤って、リポジトリ検索したら、html5でrtmpを見るというものを見つけてしまいました。
なので、HLSでの試みはここで放棄します()
留意点
これらの低遅延の設定を施すと、cpuに負荷がかかります。core i7の 37なんとかsだかtでやったのですが、1コアだけ与えた仮想マシンで、cpu100パーセントにしばしばなりました。
vpsで構築する人には辛いかもしれません。
余談
OBSの配信停止をしてから、nginxを止めないと、OBSがクラッシュします
参考文献
結果的に、HMTL5でRTMPを見る試みは成功したのですか?
返信削除そのgithubの先が中国語なのもあって、いまいち理解できないので、
理解すれば、できるかどうかだけでも知りたいのです。
よろしくおねがいします。
相当返事遅れてすみません。
削除もともと使い道があったのですが、その使い道がなくなってしまい、深くはその後してないのですが、hlsプレイヤーは不安定でしたが、使え、m3u8は使えませんでした