SRS视频流服务器搭建
环境介绍
这里仅支持了RTMP的推流协议,这也是SRS默认支持的协议,延迟和性能表现都比较好。本教程搭建所用的环境如下所示:
操作系统:Ubuntu 20.04.4 LTS(虚拟机安装)
SRS版本:3.0
推流软件:OBS
拉流软件:VLC播放器
准备工作
Ubuntu服务器安装
按照常规的服务器安装方式进行安装即可,这里建议网络使用桥接模式,方便后期测试。服务器需要安装Git,需要安装build-essential包用来编译SRS源码。
虚拟机安装的Ubuntu默认防火墙是关闭的,但是如果使用的云主机,需要开放对应的端口,SRS服务的默认端口号是1935
OBS安装
正常安装OBS即可。
VLC播放器安装
在VLC官网下载安装播放器。
编译部署过程
部署过程参考SRS官方说明——RTMP部署实例
第一步:获取SRS源码
使用git工具克隆到本地,目录可以自定义。建议使用稳定版本,可以去Gitee上的镜像仓库下载,选择相应的版本仓库地址,这里选择使用3.0版本。
git clone https://gitee.com/ossrs/srs.git
第二步:编译SRS
进入srs/trunk
文件夹,编译SRS。
cd srs/trunk
使用命令编译SRS。
./configure && make
第三步:编写SRS配置文件
将以下内容保存为文件,譬如conf/rtmp.conf
,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。
# conf/rtmp.conf
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
}
第四步:启动SRS
可以指定不同的配置文件来实现不同的应用场景,比如realtime.conf为实时场景可以实现更地的延迟。可以参考官方说明——RTMP分发。
./objs/srs -c conf/rtmp.conf
推流与观看
推流
推流准备
因为这里使用的虚拟机来配置的SRS服务。虚拟机选用了桥接模式,所以和当前的物理机在同一网段,可以直接使用私有ip来访问。事先请使用ping命令来测试推流的机器和提供SRS服务的服务器机器能够互通,且保证放行了SRS服务的端口。
OBS推流设置
可以使用OBS作为推流软件,在设置中设置推流服务为自定义,参数设置如下。
服务器:rtmp://ip:1935/live
串流密钥:livestream
观看
可以使用VLC播放器进行观看,使用播放器中的打开网络串流
,输入地址即可播放,地址如下:
rtmp://ip:1935/live/livestream
SRS官方wiki中提到VLC播放器会导致延迟增大,实际SRS的延迟1-3s,实时模式下延迟最低可以达到0.8秒,所以根据自己的使用情况进行选择。
效果演示
以下会加载一个动图演示效果,其中左侧为OBS推流软件;右上为虚拟机中的SRS服务,启动后会自动在控制台打印日志;左下为VLC播放器,播放的推流画面,其中拖动VLC窗口晃动,会在不到一秒的时间内反应在VLC的画面中。
使用Docker搭建
安装Docker
Docker的安装与使用戳这里。
使用Docker启动SRS服务
根据SRS官方提供的镜像和方法,使用以下命令启动SRS服务的Docker容器:
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/realtime.conf
使用FFmpeg的Docker镜像推流到本机进行测试
为了方便测试,可以使用OBS进行推流,或者使用FFmpeg的Docker镜像推流到本机进行测试,SRS官方也提供了一个基于ffmpeg的编码器用于推流测试。该容器能够循环推流一段视频,具体使用方法如下所示:
查看SRS容器的IP地址
- 1.首先查看所有容器:
docker container ls
- 2.找到SRS容器的ID或者名字
- 3.使用命令查看容器的详细信息
docker container inspect <容器ID或者容器名称>
使用命令启动推流
使用Docker命令启动推流容器,向SRS服务推流,参数包含了容器IP地址、端口号、服务名称和密钥。其中,默认端口号为1935。
docker run --rm -it registry.cn-hangzhou.aliyuncs.com/ossrs/srs:encoder ffmpeg -stream_loop -1 -re -i doc/source.flv \
-c copy -f flv rtmp://容器IP:端口号/live/livestream
拉流测试
使用拉流软件VLC或者Polplayer播放器进行拉流播放,对应的地址为:
rtmp://服务器IP/live/livestream
Comments | 2 条评论
博客作者 不找到好工作不改网名
这个用来做什么?
博客作者 songjiahao
@不找到好工作不改网名 视频推流