1、下載SRS
官方地址:http://www.ossrs.net/srs.release/releases/
百度地址:http://pan.baidu.com/s/1kV8WQpx
2、編譯安裝SRS
tar zxvf srs-2.0-b2.tar.gz
cd srs-2.0-b2
mv trunk/ /usr/local/srs
cd /usr/local/srs
./configure --full #--full,開啟SRS所有的功能。
make
注意:官方說需要關閉防火牆和selinux
3、修改配置文件
vi /usr/local/srs/conf/srs.conf
listen 1935; max_connections 1000; srs_log_tank file; srs_log_file ./objs/srs.log; http_api { enabled on; listen 1985; } http_server { enabled on; listen 8080; dir ./objs/nginx/html; } stats { network 0; disk sda sdb xvda xvdb; } vhost __defaultVhost__ { min_latency on; mr { enabled off; } mw_latency 100; gop_cache off; queue_length 10; tcp_nodelay on; hls { enabled on; hls_path ./objs/nginx/html; hls_fragment 3; hls_window 12; } dvr { enabled on; dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv; dvr_plan session; dvr_duration 30; dvr_wait_keyframe on; time_jitter full; } http_hooks { enabled on; on_connect http://10.10.3.62/kgdxpr; } }
說明:
hls配置節(hls分發)
enabled:是否開啟HLS
hls_fragment:指定ts切片的最小長度(單位:秒)
hls_window:指定HLS大小,即m3u8中ts文件的時長之和,超過總時長后,丟棄第一個m3u8中的第一個切片,直到ts的總時長在這個配置項范圍之內。即SRS保證下面的公式:
hls_window >= sum(m3u8中每個ts的時長)
詳細說明:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS
dvr配置節(錄制成FLV)
詳細說明:https://github.com/ossrs/srs/wiki/v2_CN_DVR
http_hooks配置節(回調)
on_connect 當客戶端連接到指定的vhost和app時回調
詳細說明:https://github.com/ossrs/srs/wiki/v2_CN_HTTPCallback
lua用ngx.var.request_body獲取回調傳的數據
#啟動分發hls(m3u8/ts)的nginx
/usr/local/srs/objs/nginx/sbin/nginx
#啟動srs服務
/usr/local/srs/objs/srs -c /usr/local/srs/conf/srs.conf
4、利用OBS推流和用VLC播放
例如推流地址:rtmp://10.10.3.62:1935/live/livestream
確定后,開始推流
由於設置了HLS分發和錄制FLV,所以在nginx目錄下(/usr/local/srs/objs/nginx/html/live)會有m3u8/ts和flv文件
有一個文件是:livestream2.1479218641365.flv.tmp,是由於正在推流當停止推流后就變成真正的FLV文件
ts文件的長度和個數是根據配置文件的hls_fragment和hls_window屬性配置出來,詳細請參看:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS
用VLC來播放HLS或RTMP
rtmp播放地址:rtmp://10.10.3.62:1935/live/livestream
hls播放地址:http://10.10.3.62/live/livestream.m3u8