SRS(Simple Realtime Server)作为一款轻量级、高性能、开源的实时视频服务器,凭借其低延迟、高并发、易部署等优势,在众多流媒体服务器中脱颖而出,成为众多开发者和企业的首选
本文将详细介绍如何在Linux系统下高效安装SRS,帮助读者快速搭建起自己的流媒体服务平台
一、SRS简介 SRS(Simple Realtime Server)是由中国清华大学开源的实时视频服务器,它支持RTMP、HLS、WebRTC等多种流媒体协议,能够处理多种音视频格式,并且拥有强大的扩展性和稳定性
SRS设计之初就考虑了易用性和高性能,使得它在处理大规模并发连接时依然能够保持低延迟,非常适合用于实时视频直播、点播、互动直播等场景
二、准备工作 在正式安装SRS之前,我们需要做一些准备工作,确保系统环境满足SRS的运行要求
1.操作系统选择:SRS支持多种Linux发行版,如Ubuntu、CentOS、Debian等
本文将以Ubuntu 20.04 LTS为例进行演示
2.依赖安装:SRS依赖于GCC编译器、Git版本控制工具以及一些基本的库文件
确保你的系统已经安装了这些工具
bash sudo apt update sudo apt install -y build-essential git cmake libssl-dev 3.用户权限:为了避免权限问题,建议使用非root用户进行SRS的安装和配置
三、下载并编译SRS 1.获取SRS源码: 首先,从SRS的官方GitHub仓库克隆源码
bash git clone https://github.com/ossrs/srs.git cd srs/trunk 2.编译SRS: SRS采用CMake作为构建工具,编译过程相对简单
bash ./configure make 这里,`./configure`脚本会根据系统环境自动配置编译选项
如果需要自定义编译选项,可以参考`./configure --help`查看更多信息
3.安装SRS: 编译完成后,你会在`objs`目录下找到生成的SRS可执行文件
为了方便管理,可以将其复制到系统的某个目录下,比如`/usr/local/bin`
bash sudo cp objs/srs -t /usr/local/bin/ sudo chmod +x /usr/local/bin/srs 四、配置SRS SRS的配置文件位于源码目录的`conf`文件夹中,默认的配置文件名为`srs.conf`
你可以根据实际需求修改配置文件,以调整SRS的行为
1.基本配置: 打开`srs.conf`文件,你会看到一系列的配置项,包括监听地址、端口、日志路径等
以下是一个简单的配置示例: conf listen 1935; chunk_size 60000; vhost__defaultVhost__ { hls{ enabled on; path ./objs/nginx/html; hls_fragment 5s; } dvr { enabled off; dvr_apply all; dvr_plan segment; dvr_duration 60; dvr_wait_keyframe on; dvr_path ./objs/nginx/html/【app】/【stream】.【timestamp】.flv; dvr_time_jitter full; } http_hooks{ on_connect http://localhost:8080/api/v1/hooks/on_connect; on_close http://localhost:8080/api/v1/hooks/on_close; on_publish http://localhost:8080/api/v1/hooks/on_publish; on_unpublish http://localhost:8080/api/v1/hooks/on_unpublish; on_play http://localhost:8080/api/v1/hooks/on_play; on_stop http://localhost:8080/api/v1/hooks/on_stop; } } 在这个配置中,SRS监听1935端口,并启用了HLS和DVR功能
同时,还配置了HTTP钩子,以便在连接、断开、发布、取消发布、播放、停止等事件发生时通知外部服务
2.高级配置: SRS还支持多种高级配置,如负载均衡、集群部署、认证鉴权等
这些配置可以根据实际需求进行调整
五、启动SRS 完成配置后,就可以启动SRS了
1.前台运行: 直接运行SRS可执行文件,可以在前台看到SRS的日志输出
bash srs -c conf/srs.conf 2.后台运行: 为了不影响终端的使用,可以将SRS作为后台进程运行
可以使用`nohup`或`systemd`等工具来实现
使用`nohup`: bash nohup srs -c conf/srs.conf & 使用`systemd`(推荐): 创建一个`srs.service`文件,并放在`/etc/systemd/system/`目录下
ini 【Unit】 Description=SRS Realtime Server After=network.target 【Service】 Type=simple User=nobody ExecStart=/usr/local/bin/srs -c /path/to/srs/trunk/conf/srs.conf Restart=on-failure 【Install】 WantedBy=multi-user.target 然后,使用`systemctl`命令来管理服务
bash sudo systemctl daemon-reload sudo systemctl start srs sudo systemctl enable srs 六、验证安装 启动SRS后,可以通过以下几种方式验证安装是否成功: 1.日志检查:查看SRS的日志文件,确认没有错误信息
2.端口监听:使用netstat或ss命令检查1935端口是否被SRS监听
bash sudo netstat -tulnp | grep 1935 3.推流测试:使用FFmpeg等工具向SRS推送一个测试流,并尝试通过VLC等播放器拉取该流,确认音视频能够正常播放
bash ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/streamkey 七、总结 通过以上步骤,我们成功在Linux系统下安装了SRS,并进行了基本的配置和启动
SRS作为一款开源的实时视频服务器,凭借其强大的功能和灵活的配置,为流媒体应用提供了坚实的基础
无论是对于个人开发者还是企业用户,SRS都是一个值得尝试的选择
希望本文能够帮助你快速上手SRS,搭建起自己的流媒体服务平台
如果你在使用过程中遇到任何问题,欢迎查阅SRS的官方文档或加入SRS的社区,与更多的开发者交流和学习