情報セキュリティワークショップ in 越後湯沢のRTMPローカル配信について
環境説明
設定
nginx.conf
#user nobody; worker_processes 1; error_log logs/error.log debug; pid logs/nginx.pid; events { worker_connections 2048; } http { #access_log off; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; location / { root html; autoindex on; index index.html index.htm; } location /hls { root live; autoindex on; index index.html index.htm; add_header Cache-Control no-cache; types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } } } } 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; #play_restart on; #record all; 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; allow play 127.0.0.1; allow play 192.168.0.0/16; allow play 172.16.0.0/12; allow play 10.0.0.0/8; deny play all; #HLS配信のためのcodec変換用 exec /usr/local/sbin/ffmpeg -re -i rtmp://localhost/live/yuzawaws -vcodec libx264 -acodec libmp3lame -f flv rtmp://localhost/hls/live ; } application hls { live on; hls on; hls_path /usr/local/live/hls; hls_continuous on; hls_playlist_length 30s; hls_fragment 5s; } } }
ffmpegの説明
exec /usr/local/sbin/ffmpeg -re # インプットからそのまま読み込む
-i rtmp://localhost/live/yuzawaws # LiveShellから配信しているRTMPを読み込み
-vcodec libx264 #HLS送付先のcodecに変換(映像)
-acodec libmp3lame #同様に音声のcodec
-f flv #入力のフォーマット(LiveShellはFLV)
rtmp://localhost/hls/live ; #HLS配信用RTMPサービスに出力
今回、HLSファイル保存用にtmpfs(メモリファイルシステムを準備)
以下のスクリプトを起動時に実行するように設定
tmpfs.sh #!/bin/sh mkdir -p /tmp/mnt/ hdid -nomount ram://4096000 newfs_hfs -v "tmpdisk1" /dev/disk1 sleep 10 mount -t hfs /dev/disk1 /tmp/mnt/ mkdir -p /tmp/mnt/live /usr/local/sbin/nginx -c /usr/local/conf/nginx.conf
nginx+nginx-rtmp-moduleは手作業でコンパイル AppStoreでXcodeをインストールしコンパイラの設定等を実施
nginx version: nginx/1.7.6
NGINX_RTMP_VERSION "1.1.4"
- -
nginx version: nginx/1.7.6
built by clang 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
TLS SNI support enabled
configure arguments: --prefix=/usr/local --with-cc-opt=-Wno-deprecated-declarations --with-http_ssl_module --with-pcre=../pcre-8.36 --with-http_ssl_module --add-module=../nginx-rtmp-module-master
HTML
netagent-no-Mac-mini:html root# cat index.html <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="flowplayer-3.2.13.min.js"></script> <title>情報セキュリティワークショップ越後湯沢ダダ漏れ君</title> </head> <body> <CENTER><H2>情報セキュリティワークショップ越後湯沢ダダ漏れ君</H2> このサービスは、主にスタッフを対象に配信しているローカル配信サービスです。<BR> 外部へは配信しておりません。<BR> </CENTER> <div id="player" style="margin:0 auto;text-align:center"> <img src="clip.jpg"/> </a> <script> $f("player", "flowplayer-3.2.18.swf", { clip: { live: true, url: 'yuzawaws', provider: 'rtmp' }, plugins: { rtmp: { url: "flowplayer.rtmp-3.2.13.swf", netConnectionUrl: 'rtmp://192.168.0.100/live/' } } }); </script> <A HREF="http://192.168.0.100/hls/live.m3u8">iOSデバイスはこちら</A> </body> </html>
Mac Miniの環境(Mac Mini Late 2012)
Hardware:
Hardware Overview:
Model Name: Mac mini
Model Identifier: Macmini6,1
Processor Name: Intel Core i5
Processor Speed: 2.5 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 3 MB
Memory: 16 GB
Boot ROM Version: MM61.0106.B03
SMC Version (system): 2.7f1
ProductName: Mac OS X
ProductVersion: 10.9.5
BuildVersion: 13F34
今回は5台程度のPCで閲覧したが全く問題なし。
KEEP
- LiveShellとローカル配信サーバで問題なく動作
Probrem
Cerevo ライブ配信 LiveShell PRO 720p アナログ入力対応 CDP-LS02A
- 出版社/メーカー: Cerevo
- 発売日: 2013/08/14
- メディア: Camera
- この商品を含むブログを見る
パナソニック デジタルカメラ ルミックス FZ1000 2010万画素 光学16倍 ブラック DMC-FZ1000
- 出版社/メーカー: パナソニック
- 発売日: 2014/07/17
- メディア: Camera
- この商品を含むブログ (1件) を見る
APPLE Mac mini/ 2.5GHz Dual Core i5 /4G/500G/USB3/Thunderbolt MD387J/A
- 出版社/メーカー: アップル
- 発売日: 2012/10/24
- メディア: Personal Computers
- クリック: 6回
- この商品を含むブログ (15件) を見る