インストールと設定についてはその1へ。
けっきょくのところ、できる事はFlazrDumper+VLCでもほぼ同じなので積極的にNginxを使う理由があるわけでもない。CPU負荷の点ではFlazrDumperも十分低く、5Mbpsを同時100接続(500Mbps転送)というテストでも著しい負荷の上昇は見られなかった。メモリ消費はNginxは非常に優秀で100接続でも10MB程度の消費(FlazrDumperだとJava込み100MB程度)に留まるが、今どきのパソコンのメモリ搭載量を考えると気にするレベルとも言えない。
Webサーバーとして優秀であることと起動しっぱなしでも特に邪魔にならないのでそういう使い方をするならNginxは特におすすめ。
- 手間を減らせる
Nginxを起動するだけ。途中でエンコード設定を変えてもOBSがクラッシュしても大丈夫。 - 低いCPU負荷
負荷はFlazrDumperより低くHLS配信も行う場合はVLCのぶんの負荷も減らせる。 - 少ないメモリ消費
起動時に数MB。配信開始しても10MB未満でJavaも不要。 - アクセス制御と接続状況の確認
ブロックするIPを指定可能でRTMPの視聴者数も専用ページから確認可能。 - 本格的なWebサーバーとしても使える
むしろRTMPのほうがおまけ。
- 設定が面倒でわかりづらい
Nginxは本来はUnixやLinuxで使うものであってユーザフレンドリーとはやっぱり言えない。 - HLS用再エンコはできない
Windows版NginxではRTMPモジュールの一部コマンドが利用できないため自動再エンコードできない。本来ならRTMPがPushされたら自動でffmpegを使って再エンコ可能。
けっきょくのところ、できる事はFlazrDumper+VLCでもほぼ同じなので積極的にNginxを使う理由があるわけでもない。CPU負荷の点ではFlazrDumperも十分低く、5Mbpsを同時100接続(500Mbps転送)というテストでも著しい負荷の上昇は見られなかった。メモリ消費はNginxは非常に優秀で100接続でも10MB程度の消費(FlazrDumperだとJava込み100MB程度)に留まるが、今どきのパソコンのメモリ搭載量を考えると気にするレベルとも言えない。
Webサーバーとして優秀であることと起動しっぱなしでも特に邪魔にならないのでそういう使い方をするならNginxは特におすすめ。
使っているnginx.confの内容は次の通り。ファイルは\nginx\confフォルダにある。
rtmp設定ではwait_video onが必須。最近のFlashの更新でこれがないと再生開始されない不具合が発生(IE環境では再現率100%)。また、配信エンコーダーからの接続はプライベートIPに限定している。
listen 80のserverブロックのコメントを解除すればWebサーバーとして利用可能。その際のホームディレクトリは\nginx\htmlフォルダになる。
#user nobody;
worker_processes 1;
error_log logs/error.log crit;
events {
worker_connections 1024;
}
http {
access_log off;
include mime.types;
types {
application/x-mpegURL m3u8;
video/MP2T ts;
}
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#server {
# listen 80;
# server_name localhost;
#
# location / {
# root html;
# index index.html index.htm;
# }
#}
server {
listen 8888;
location / {
root live;
index index.html index.htm;
}
location /live/ {
rewrite ^/live/(.*) /$1 redirect;
}
# This URL provides RTMP statistics in XML
location /stat {
allow 127.0.0.1;
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow 10.0.0.0/8;
deny all;
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you can move stat.xsl to a different location
root html;
}
# rtmp control
location /control {
allow 127.0.0.1;
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow 10.0.0.0/8;
deny all;
rtmp_control all;
}
}
}
rtmp {
server {
listen 1935;
access_log logs/rtmp_access.log;
ping 30s;
ping_timeout 10s;
#chunk_size 8192;
#max_streams 10;
drop_idle_publisher 15s;
application live {
live on;
wait_video on;
#wait_key on;
meta copy;
#idle_streams off;
#publish_notify on;
allow publish 127.0.0.1;
allow publish 192.168.0.0/16;
allow publish 172.16.0.0/12;
allow publish 10.0.0.0/8;
deny publish all;
hls on;
hls_path live/ts;
hls_continuous on;
hls_playlist_length 18s;
}
}
}
rtmp設定ではwait_video onが必須。最近のFlashの更新でこれがないと再生開始されない不具合が発生(IE環境では再現率100%)。また、配信エンコーダーからの接続はプライベートIPに限定している。
listen 80のserverブロックのコメントを解除すればWebサーバーとして利用可能。その際のホームディレクトリは\nginx\htmlフォルダになる。
Twitch.tvシンガポールサーバーへPushする例。confのrtmp->server->applicationブロックへ次の1行を追加する。行末部分はTwitchから発行されたストリームキー。
push rtmp://live-sin-backup.justin.tv/app/live_12345678_ZSiZU9KOxkSa9hf642uP1Dh25tUWEg;配信サービスのrtmpサーバーURIはOBSフォルダのservices.xconfigにほぼ網羅されている。confファイルの書き方はNginxでRTMP同時配信を参照。
タグ
このページへのコメント
この場合Nginxを先に起動しておくことでFlazrDumperのRTMPサーバーを稼働させないということを意図的に行っています。
それによりFlazrDumperを欺いてNginxのRTMPにアクセスさせます。よって双方のRTMPサーバーを同時に利用することは出来ません。
いつも配信設定の参考にさせて頂いております。
FlazrDumperに転送する、の項について質問なのですが
記述どおりにやろうとするとport1935がNginxとFlazrDumper両方で使用されている為にFlazrDumperの鯖が稼動しませんでした。
もし使用portの変更等されているならば変更方法等教えて頂けますでしょうか。
両方のソフトはそれぞれ単体では使用出来ています。
やろうとしていることは、Nginx同時配信+自家製HTTPストリーミング配信です。
私的にはこれが出来れば今の自分の配信環境でベストな方法になります。
回答宜しくお願い致します。