停滞中...

インストールと設定についてはその1へ。

配信状況の確認

http://localhost:8888/statsを開くとRTMPの接続状況を確認できる。なお、このページはグローバルIPからは閲覧できない。

HLSについて

HLS用の出力はNginxのRTMPモジュールが全自動で対応してくれるため配信の際に何かをする必要はなし。配信開始すると\nginx\live\tsフォルダにm3u8ファイルとtsファイルが作成され、終了してしばらくするとこれらのファイルは削除される。非Flash環境で自動的にHLSページに転送されるのはFlazrDumperの場合と同じ。

HLSを無効にする

TSファイルの出力先を変更する


Nginxのメリットとデメリット

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\logsフォルダに作成される。rtmp_access.logファイルにFlash視聴者の情報が残る。また、HTTPのログは一切記録されない。

nginx.conf

使っているnginx.confの内容は次の通り。ファイルは\nginx\confフォルダにある。
#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;
			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;
			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;
			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フォルダになる。

他のRTMPサーバーへ転送したい場合

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にほぼ網羅されている。

FlazrDumperに転送する












管理人/副管理人のみ編集できます