目录
简介
srs 是国内开源的流媒体服务器,目前发展到4.0版本(4.0还没正式发布),服务支持RTMP/HLS/WebRTC/SRT/GB2818。
github地址:https://github.com/ossrs/srs
我们主要分析srs4.0 webrtc模块,后面将陆续介绍srs 对webrtc的支持,欢迎大家关注 给与支持。
环境搭建
一、源码下载
git clone https://github.com/ossrs/srs.git
如果github 下载慢或者失败可以用国内的gitee,项目地址为:https://gitee.com/winlinvip/srs.oschina
下载:
git clone https://gitee.com/winlinvip/srs.oschina.git
代码下载后默认是develop分支,可以切换到4.0release分支
git checkout -b my4.0 origin/4.0release
二、项目编译与部署
编译
在下载目录文件夹下执行如下命令:
cd trunk/
./configure
make
部署运行
./objs/srs -c conf/rtc.conf
rtc.conf 内容如下,会在8080端口启动一个Http 服务,在 8000端口开启rtc监听。这块需要注意一下,8000是经常使用的一个端口,在启动srs之前先查看一下该端口是否被占用。 查看命令:
netstat -anp|grep 8000
listen 1935;
max_connections 1000;
srs_log_file ./objs/srs.log;
http_server {
enabled on;
listen 8080;
dir ./objs/nginx/html;
}
http_api {
enabled on;
listen 1985;
}
stats {
network 0;
}
rtc_server {
enabled on;
# Listen at udp://8000
listen 8000; //rtc监听
#
# The $CANDIDATE means fetch from env, if not configed, use * as default.
#
# The * means retrieving server IP automatically, from all network interfaces,
# @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124
candidate $CANDIDATE;
}
vhost __defaultVhost__ {
rtc {
enabled on;
bframe discard;
}
}
三、demo演示
打开srs提供的界面,记着把ip换成你自己的srs所在服务器IP。因为我的srs部署在linux系统,在windows上演示,所以是自己的Linux 服务器的IP。
http://192.168.40.129:8080/players/rtc_publisher.html
如果你是在mac系统上操作,也可以直接 http://localhost:8080/players/rtc_publisher.html
部署在linux系统windows推流时会报:TypeError: Cannot read property 'getUserMedia' of undefined 错误,这个错误主要是https证书问题。解决办法如下
先把chrome完全退出,右击桌面上chrome的快捷键,点击属性,在目标一栏添加如下内容,记着有个英文空格,IP换成自己的。
--ignore-certificate-errors --allow-running-insecure-content --unsafely-treat-insecure-origin-as-secure="http://192.168.40.129:8080"
然后重新打开chrome,输入自己的地址。
推流
播放
打开播放界面
http://192.168.40.129:8080/players/rtc_player.html
播放特别不清晰,是因为码率自动降到最低了,这块是srs的问题,大家不用担心后面会优化的。
打开chrome自带的监控界面chrome://webrtc-internal,会发现码率自动降低到30kbps,如下图标红处,这块不用担心,能正常播放就行。
点关注不迷路,欢迎大家关注公众号:音视频之路 ,谢谢大家支持