流媒体服务器一:使用成熟的流媒体SRS 搭建 RTMP流媒体服务器。使用ffmpeg 命令推流到SRS 服务器,使用ffplay 命令 从 SRS 服务器拉流播放。OBS推流,拉流

零,在前面一章的学习,我们知道了 发送端是要将音视频数据 推流流媒体服务器,然后 客户端 从流媒体服务器拉流 播放。

因此第一个要掌握的就是如何 搭建一个 流媒体服务器

我们不可能在学习阶段就开发一个流媒体服务器,在学习的初步阶段 需要会使用成熟的流媒体服务器

1.本章节是学习 RTMP 流媒体协议,需要使用SRS 流媒体服务器

SRS(Simple Realtime Server)是一款开源流媒体服务器,专注于实时音视频传输,采用C++开发,具有高性能、低延迟、多协议支持等特点,适用于直播、在线教育、视频会议等场景

‌SRS 流媒体支持的协议:

  • 支持RTMP(实时消息传输协议)、HLS(HTTP Live Streaming)、HTTP-FLV(低延迟直播)、WebRTC(实时通信)、SRT(安全可靠传输)等主流流媒体协议。
  • 支持协议间互转(如RTMP转WebRTC),适配多种终端播放需求

一 安装和测试srs流媒体服务器

服务器:SRS(Simple RTMP Server,⽀持RTMP、HTTP-FLV,HLS)
推流端:ffmpeg 命令  或者  OBS
拉流端:ffplay 命令  或者 VLC 或者 srs播放器

1.1 安装srs流媒体服务器

官网

码云的源速度快: https://gitee.com/winlinvip/srs.oschina.git
github的源速度慢: https://github.com/ossrs/srs .git

第⼀步,获取SRS。

官网说明如下:

Git | SRS

将官网上废话删除,直接写关键点

0.我们在linux 上先创建一个文件夹放置SRS的源码,mkdir srs_source3.0

这个名字是随便取的,之所以取3.0,是因为学习的教程中就是用3.0教授的,实际版本已经有5.x了。

1:进入到 srs_source3.0文件夹,然后执行下面的命令。命令的意思下载SRS,

cd  srs_source3.0

git clone -b develop https://gitee.com/ossrs/srs.git && 
cd srs && git remote set-url origin https://github.com/ossrs/srs.git

由于上述命令有个 cd srs,因此执行完毕后,会直接进入到srs 目录

2:下载后需要checkout 到你要的branch,可以这样理解,你工作的时候,有可能公司的代码是基于SRS3.0开发的,那么你最好下载一个SRS3.0的版本,那么checkout就是帮你做这件事情的。

我们可以通过 git branch -a 看到SRS对应的版本有哪些。

cd trunk
git branch -a

我们可以看到目前SRS支持您切换的版本有好多,看官网的说明,3.0,  4.0,  5.0 都是稳定的版本。

3.我们切换到remotes/origin/3.0release 这个版本

官网的说明如下:如果是3.0的功能,更新代码后要改变到3.0分支:

注意的是git pull 可能会链接不上网络,因为你不会翻墙,当git pull 链接不上网络的时候,可以直接git checkout 3.0release

git pull && git checkout 3.0release

也可以直接命名您的当前branch 为3.0,实际上也是从remotes/origin/3.0release上获得的

git checkout -b 3.0 remotes/origin/3.0release

我们再次看一下  git branch 

### 搭建支持P2P通信的SRS流媒体服务器 #### 准备工作 为了搭建支持P2P通信的SRS流媒体服务器,需先准备台能够访问互联网的云主机。这台机器应具备足够的处理能力和网络带宽来应对多用户的需求[^1]。 #### 安装依赖环境 在开始安装之前,确保操作系统是最新的,并安装必要的软件包。对于基于Debian系统的Linux发行版来说,可以通过如下命令更新系统并安装所需工具: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential libssl-dev libpcre3-dev libsodium-dev git -y ``` #### 下载与编译SRS源码 获取官方GitHub仓库中的最新稳定版本SRS源代码,并按照说明文档完成编译过程。针对特定功能如WebRTC的支持,则可考虑使用经过特别优化过的分支版本,例如`metartc/srs-webrtc265`项目提供了对H265编码格式的良好兼容性[^3]。 #### 配置SRS以启用P2P特性 编辑配置文件`srs.conf`,找到关于RTMP部分设置,在其中加入允许边缘节点间直接交换数据的相关参数。具体而言,可通过调整`peer_streamer`选项开启此功能;同时建议适当调高最大并发连接数限制(`max_connections`)以及合理规划缓存大小(`chunk_size`)等参数值,以便更好地适应实际应用场景下的性能要求。 #### 开启防火墙端口转发 为了让外部设备顺利接入到部署好的SRS服务当中去,还需开放相应的TCP/UDP端口号(默认情况下为1935用于RTMP协议传输)。此外,考虑到某些高级特性的正常使用可能还会涉及到其他额外端口资源(比如8000端口用于WebRTC信令交互),因此也应当并将这些都做好映射处理[^4]。 #### 测试验证 最后步便是通过专业的测试工具或者简单的HTML页面来进行效果检验。前者可以帮助更精确地评估整个架构体系的各项指标表现情况;后者则适合快速查看基本播放质量是否正常无误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值