摘要
本文描述了如何在Ubuntu系统上构建和运行SRS流媒体服务器,以及如何体验其推流和播放功能。
实验环境
操作系统版本:Ubuntu 22.04.3 LTS
gcc版本:11.4.0
g++版本:11.4.0
依赖库安装
#安装必备开发工具链
sudo apt install -y build-essential automake cmake pkg-config tclsh
#安装用于推流的ffmpeg程序
sudo apt install -y ffmpeg
获取SRS源码和构建
开发环境安装好后,继续输入如下命令:
#进入一个剩余磁盘空间足够的盘,准备clone srs源码仓库,例如用户的HOME目录:
cd ~
#克隆SRS源码仓库
git clone -b develop https://gitee.com/ossrs/srs.git
#进入SRS主干目录
cd srs/trunk
#检出v6.0.48版本,并创建自己的开发分支
git checkout v6.0.48
git switch -c dev-from-v6.0.48
#根据开发环境,编译依赖库,并生成makefile脚本
./configure
#开始编译SRS
make
启动服务器
输入如下命令即可启动SRS:
./objs/srs -c conf/srs.conf
检查SRS是否成功启动
用浏览器可以打开 http://localhost:8080/ ,或者执行如下命令:
#查看SRS的状态
./etc/init.d/srs status
#或者看SRS的日志
tail -n 30 -f ./objs/srs.log
RTMP推流测试
在终端中输入如下命令进行RTMP协议推流测试:
#SRS源码仓库的trunk目录的doc子目录下有测试用的source.flv影片。
ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream
HTTP-FLV播放测试
在浏览器中地址栏粘贴如下网址进行HTTP-FLV播放测试:
http://localhost:8080/
点击网页中的“SRS播放器”链接,点击网页顶部的“SRS播放器”标签,在页面中点击“播放视频”按钮。
此刻,你如果在浏览器中看到视频画面,那么说明你在Windows上的SRS开发环境搭建成功了。
更进一步,我们还可以测试一下最低延迟的WebRTC功能。
WebRTC推流测试
在上一步打开的播放器网页中,进行如下操作:
1.点击网页顶部的“RTC推流”标签,在页面中点击“开始推流”按钮。
2.浏览器会提示你是否同意使用麦克风和摄像头,允许即可。
WebRTC播放测试
打开一个新的浏览器实例,打开上述的播放器网页,进行如下操作:
1.点击网页顶部的“RTC播放”标签,在页面中点击“播放视频”按钮。
此刻,你如果在浏览器中看到摄像头的画面,那么说明你已经成功体验SRS的WebRTC推流和播放功能了。
停止服务器
#输入如下命令可停止SRS
./etc/init.d/srs stop
#输入如下命令可再次启动SRS
./etc/init.d/srs start
总结
SRS流媒体服务器具备出色的性能,极高的稳定性和可维护性,这得益于其作者对经典C++编程思想的坚守以及对协程机制的深度应用。SRS项目通过深度使用协程技术,让代码的可读性和性能在同类产品中出类拔萃,值得热爱经典C/C++编程风格的开发者深入学习。