之前使用nginx的rtmp模块进行rtmp的推流与拉流。虽然可以实现功能,但是rtmp流的播放延迟太高了。经过一段时间的比较,选择了ossrs来作为流媒体服务器。 官网地址 https://ossrs.net/releases/
根据官方推荐,我们使用docker来部署服务
CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
--env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/docker.conf
这里的仓库地址是阿里云的,但是在release列表里看到 最近的仓库已经到了 腾讯云了 https://github.com/ossrs/srs/releases?q=v4&expanded=true
所以,我们把仓库地址换成当前最新的。然后执行命令
访问8080端口,可以看到服务正常启动
通过 页面的推流地址 rtmp://192.168.50.121/live/livestream 进行推流
这里,我们使用obs 作为推流工具,live 是应用 libestream 是room的概念,所以 服务器是 rtmp://192.168.50.121/live ,串流秘钥 输入 livestream
在obs上选一个视频进行测试
以下是webrtc的效果
也可以通过拉取rtmp流访问,会有一点点延迟,但是比nginx的要好很多的
在控制台 可以看到当前的客户端连接情况
把几个窗口放一起,可以直观的看到效果,wbrtc是近乎实时的,rtmp有一定延时,主要看业务可接收度。
