SRS搭建流媒体直播服务器
SRS直播服务
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。
https://github.com/ossrs/srs
SRS提供了丰富的接入方案将RTMP流接入SRS。并提供HLS、flv直播功能。
安装
本文章提供安装版本为v2.0-r2。
https://github.com/ossrs/srs/releases/tag/v2.0-r2
修改源代码
SRS2.x是不支持Http Flv的跨域访问的,这个支持在SRS3中得到了“通过配置”的方式进行支持,而截止2017-11-01,SRS3尚未发布。因此要解决这个问题可以有以下两种方式
1、在SRS外部再使用一个Nginx进行反向代理。
2、修改SRS2.x的源代码,找到目录“trunksrcapp”下的“srs_app_http_stream.cpp”文件,搜索
“w->header()->set_content_type("video/x-flv");”
代码,在其下一行增加代码:
“w->header()->set("Access-Control-Allow-Origin", "*");”
解决这个问题。这个解决方案来自于这里
https://github.com/ossrs/srs/issues/1002#issuecomment-340406201
注意:本段摘自同事。
安装依赖
yum-config-manager --add-repo http://www.nasm.us/nasm.repo
yum install zlib-devel
执行编译安装
chmod +x configure
./configure --with-hls --with-dvr --with-nginx --with-http-callback --with-http-api --with-http-server && make && sudo make install
srs.conf配置
# main config for srs.
# @see full.conf for detail config.
listen 1935;
max_connections 1000;
srs_log_tank file;
srs_log_file ./objs/srs.log;
# 内置Nginx 代理
http_server {
enabled on;
listen 8080;
dir ./objs/nginx/html;
}
vhost __defaultVhost__ {
# hls直播(手机端)
hls {
enabled on;
hls_fragment 10;
hls_window 60;
hls_path ./objs/nginx/html;
hls_m3u8_file [app]/[stream].m3u8;
hls_ts_file [app]/[stream]-[seq].ts;
}
# flv直播
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
hstrs on;
}
}
# vhost多租用
vhost dvr.com {
hls {
enabled off;
}
dvr {
enabled on;
dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv;
dvr_plan session;
}
}
dvr录制存储配置规则
https://github.com/ossrs/srs/wiki/v2_CN_DVR#custom-path
需要做直播录制的可以看看。另外conf下的配置包含的全部应用场景。
启动SRS服务器
./objs/srs -c ./conf/srs.conf
启动SRS服务器
rtmp协议端口为1395,推流地址规则:
rtmp://localhost/[app]/[stream]
例如:
rtmp://localhost/live/stream1
建议下载VLC播放器测试直播,使用obs进行推流/串流。
http://www.obsapp.net/