nginx + RTMP 모듈을 통한 라이브 스트리밍(통계 및 로깅)
nginx + RTMP 모듈을 통한 라이브 스트리밍은 사례가 많으며 실험적으로 배포하는 곳까지는 다닐 수 있습니다.
그러나 실제로 불특정 다수에 공개하기 전에는 몇 가지 파악해 두는 것이 좋을 수 있습니다.
여기에서는 1,2에 대해 설명합니다.
(3은 준비 중)
환경
설치
# yum install -y pcre zlib openssl
# cd /usr/local/src/
# wget http://nginx.org/download/nginx-1.9.15.tar.gz
# tar xvf nginx-1.9.15.tar.gz
# wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
# unzip master.zip
# cd nginx-1.9.15
# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --with-http_ssl_module --add-module=../nginx-rtmp-module-master --with-debug
# make
# make install
# nginx -v
# mkdir /home/www
# mkdir /home/logs
# mkdir /etc/nginx
# cp /usr/local/src/nginx-1.9.15/conf/nginx.conf /etc/nginx/
# vi /etc/nginx/nginx.conf
/etc/nginx/nginx.conf
# デバッグ用のログ取得(warn,notice,info,debugのレベルがある.infoぐらいのレベルが丁度良い)
error_log /home/logs/error.log info;
http {
# http(プロトコル用)アクセスログ
access_log /home/logs/access.log main;
server {
listen 80;
server_name localhost;
location / {
root /home/www;
index index.html index.htm;
}
# 統計情報表示設定
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet /stat.xsl;
}
location /stat.xsl {
root /home/www/stats;
}
}
}
# rtmpモジュールの設定ブロックを追加
rtmp {
server {
listen 1935;
chunk_size 4096;
# rtmp(プロトコル用)アクセスログ
access_log /home/logs/rtmp.access.log combined
application live {
live on;
record off;
}
}
}
Red Hat NGINX Init Script(시작 스크립트) 에서 복사하여 배치
# vi /etc/init.d/nginx
# chmod 755 /etc/init.d/nginx
# /etc/init.d/nginx configtest
# /etc/init.d/nginx start
배달 준비
index.html
<!DOCTYPE html>
<html lang="en" class="">
<head>
<link href="http://vjs.zencdn.net/4.2.0/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/4.2.0/video.js"></script>
</head>
<body>
<video id="rtmp live test" class="video-js vjs-default-skin" controls
preload="auto" width="640" height="264" data-setup='{}'>
<source src="rtmp://***.***.***.***/live/test" type='rtmp/mp4'>
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser
that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
</body>
</html>
로그 확인
액세스 로그
로그 형식
rtmp.access.log
***.***.***.*** [04/May/2016:16:04:38 +0900] PUBLISH "live" "test" "" - 45828392 529 "" "FMLE/3.0 (compatible; obs-studi" (2m 18s)
***.***.***.*** [04/May/2016:15:10:22 +0900] PLAY "live" "test" "" - 627 54573547 "http://***.***.***.***/" "MAC 21,0,0,216" (2m 46s)
오류 로그
error.log
[info] 1572#0: *2 client connected '***.***.***.**'
[info] 1572#0: *2 connect: app='live' args='' flashver='FMLE/3.0 (compatible; obs-studi' swf_url='rtmp://***.***.***.***/live' tc_url='rtmp://***.***.***.***/live' page_url='' acodecs=0 vcodecs=0 object_encoding=0, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *2 createStream, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *2 publish: name='test' args='' type=live silent=0, client: ***.***.***.***, server: 0.0.0.0:1935
error.log
[info] 1572#0: *2 deleteStream, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *2 disconnect, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *2 deleteStream, client: ***.***.***.***, server: 0.0.0.0:1935
error.log
[info] 1572#0: *6 client connected '***.***.***.***'
[info] 1572#0: *6 connect: app='live' args='' flashver='MAC 21,0,0,216' swf_url='http://vjs.zencdn.net/4.2/video-js.swf' tc_url='rtmp://192.168.100.102/live/' page_url='http://bash:error.log/' acodecs=3575 vcodecs=252 object_encoding=3, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *6 createStream, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *6 play: name='test' args='' start=0 duration=0 reset=0 silent=0, client: ***.***.***.***, server: 0.0.0.0:1935
일시정지, 재개
브라우저 닫기, 다시 로드
error.log
[info] 1572#0: *6 disconnect, client: ***.***.***.***, server: 0.0.0.0:1935
[info] 1572#0: *6 deleteStream, client: ***.***.***.***, server: 0.0.0.0:1935
통계 정보 표시
# cp /usr/local/src/nginx-rtmp-module-master/stat.xsl /home/www/stats/
기타
용어
configure 옵션
모듈 이름
용도
ngx_http_ssl_module
SSL 지원
--with-http_ssl_module
nginx-rtmp-module-master
rtmp 확장 모듈
--add-module=../nginx-rtmp-module-master
-
rtmp 확장 모듈 디버그 모드
--with-debug
참조
Reference
이 문제에 관하여(nginx + RTMP 모듈을 통한 라이브 스트리밍(통계 및 로깅)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m1takahashi/items/83056882141611bd011f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)