利用Simple-RTMP-Server(SRS)来进行直播

时间:2023-06-28 17:27:22

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            ;
max_connections ;
srs_log_tank file;
srs_log_file ./objs/srs.log;
http_api {
enabled on;
listen ;
}
http_server {
enabled on;
listen ;
dir ./objs/nginx/html;
}
stats {
network ;
disk sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
min_latency on;
mr {
enabled off;
}
mw_latency ;
gop_cache off;
queue_length ;
tcp_nodelay on;
hls {
enabled on;
hls_path ./objs/nginx/html;
hls_fragment ;
hls_window ;
}
dvr {
enabled on;
dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv;
dvr_plan session;
dvr_duration ;
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

利用Simple-RTMP-Server(SRS)来进行直播

确定后,开始推流

由于设置了HLS分发和录制FLV,所以在nginx目录下(/usr/local/srs/objs/nginx/html/live)会有m3u8/ts和flv文件

利用Simple-RTMP-Server(SRS)来进行直播

有一个文件是:livestream2.1479218641365.flv.tmp,是由于正在推流当停止推流后就变成真正的FLV文件

ts文件的长度和个数是根据配置文件的hls_fragment和hls_window属性配置出来,详细请参看:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS

用VLC来播放HLS或RTMP

利用Simple-RTMP-Server(SRS)来进行直播

rtmp播放地址:rtmp://10.10.3.62:1935/live/livestream

hls播放地址:http://10.10.3.62/live/livestream.m3u8