谈起要准备一场直播,你会想到什么?体型庞大的直播车、精密昂贵的直播仪器、职业素养拉满的专业人员……
然而现在直播随处可见,进入直播间,看起来这一切并没有预想的那么复杂。终于,经过一番周折,在一个直播平台开始了自己的直播之旅,每次直播前都精心准备内容,并且以最好的状态直播,但费劲九牛二虎之力,结果观看人数0……
此时又听说某某平台流量高,可以去,但一想到那些周折,不免犹豫……不如搞一个私人直播间,要是还能快速转播到多个平台就更好了,一次设置,多平台直播……但怎么搞呢?
SRS是什么
SRS是一个开源的流媒体集群,主要应用在直播和WebRTC,支持RTMP、WebRTC、HLS、HTTP- FLV和SRT等常用协议,为流媒体服务器业界中活跃度最高的项目,在Github目前拥有1.9w Star,用户分布全球。 SRS 致力于不断降低音视频的门槛,让音视频的开发变得简单。
Lighthouse SRS?
轻量应用服务器Lighthouse区别于普通云服务器,主要面向轻量级的应用场景,为用户提供开箱即用的云服务器产品。它将基础的云资源统一打包进套餐,同时为用户提供丰富的应用镜像,除了包含底层的操作系统之外,还分别封装了各个场景下必需的应用软件,为用户免去了购买普通云服务器时繁琐的应用部署、配置和初始化过程,购买即可用。
回到直播的场景,用户购买的搭配 SRS 的轻量应用服务器,无需进行其他配置,在本地下载推流客户端并且填写推流地址后,即可进行直播。除此之外,超清实时直播、多平台转播、直播录制等服务一应俱全,还要啥自行车。
SRS 相关协议——HTTP-FLV
是 Adobe 公司推出的另一种视频格式,是一种在网络上传输的流媒体数据存储容器格式。其格式相对简单轻量,不需要很大的媒体头部信息。整个FLV由 The FLV Header, The FLV Body 以及其它 Tag 组成。因此加载速度极快。采用 FLV 格式封装的文件后缀为 .flv。而HTTP-FLV 即将流媒体数据封装成 FLV 格式,然后通过 HTTP 协议传输给客户端。
而FLV是一种网络视频格式,全称是FlashVideo,以体积小、加载速度极快的特性著称。
SRS相关协议——HLS
HLS全称:HTTP Live Streaming,是Apple的动态码率自适应技术,主要应用在PC以及Apple终端的音视频服务。HLS 最大的不同在于它并不是一下请求完整的数据流。它会在服务器端将流媒体数据切割成连续的时长较短的 ts 小文件,并通过 M3U8 索引文件按序访问 ts 文件。客户端只要不停的按序播放从服务器获取到的文件,从而实现播放音视频。
相比于HTTP-FLV,HLS的优势在于:
- Apple全系列原生支持,同时在Android和PC端也有很好的支持;
- 给予HTTP/HTTPS传输,有效避免防火墙拦截;
- 高性能。
但同样由于传输协议的特点,造成了一些不足:
- 实时性较差,时延往往会大于10s;
- 由于文件切片传输的特性,会考验存储和缓存的性能。
综合两种传输协议的特点来看,HTTP-FLV会在互动直播(比如直播带货)的场景下发挥最优效果,而HLS的表现在一些对时延不敏感的场景(如一般直播)会更加极致。
服务器准备
想要使用 SRS 搭建私人直播间,首先你需要一台轻量应用服务器,镜像直接选择 SRS 音视频服务器:
购买完成后进入产品控制台,找到已经创建的实例,在详情页-应用管理中能够看到如下信息:
或者你已经拥有了一台轻量应用服务器,那么只需要在重装系统时选择 SRS 镜像即可~
Tips:使用前需前往防火墙处手动放行TCP/1935端口:
此刻,在确保服务器正常运行的情况下,便可以通过应用管理页面提供的访问地址访问SRS管理后台,首次打开需要设置下初始的管理员密码:
设置完成后登入:
OBS下载与配置
我们就选择OBS推流这种方式,根据页面提示,前往OBS官网下载它:
下载完成后打开,界面如下:
接下来我们在系统设置中选择“自定义”,并且填写我们在SRS后台看到的推流地址与推流密钥:
设置完成后,在主界面的媒体源控制区选择要推流(直播)的内容,点击界面右侧的“开始推流”:
这里以本地的视频资源为例,上传并开始推流后效果如下,直播画面的调整(如大小、方向等)只需鼠标右键点击画面即可看到相关选项:
多平台转播
如果私人直播间的流量无法满足需要,可以试试 SRS 提供的多平台转播:
只需在想要转发的直播平台创建一个直播,然后将推流地址与密钥填写至对应位置,勾选开启转推,即可将直播推流至该平台:
Tips:设置完成后别忘了点击更新配置
SRS 之云录制
云录制是 SRS 近期更新的重磅功能,在直播的场景下,录制是十分重要的一环,直播的内容在录制并存储后,可以进行二次创作,再次分发。
但存在的问题也同样明显,如果将录制内容保存在本地磁盘,会有空间不足或数据丢失的压力。而云录制则能很好的解决这个问题。
SRS 并不直接对接云存储,而是 SRS 服务器使用 SRS 的回调 on_hls ,将 HLS 切片保存在Local Disk 或 Cloud Storage 。Local Disk 是指 SRS 服务器的本地磁盘。Cloud Storage 则是指对象存储 COS 或云点播 VoD 。
Tips:购买后,等待服务器初始化完成,需要手动升级到 v1.0.252 及以上版本。
本地录制指南
本地录制,也就是将录制的直播内容存储在服务器的磁盘。在 SRS 音视频服务器中,找到录制,选择本地录制。
如图所示的保存路径,即为最终直播内容存储的位置,后续可以在对应的目录中进行管理。
接着,在设置录制规则中勾选录制所有流,并点击提交。这步操作达成的效果是,当进行直播推流时,SRS 同时也会对直播内容进行录制。
现在我们开始推流,大约等待10-60秒之后,可以在录制任务列表看到正在录制的流:
在录制过程中可以点击预览,实时查看录制的效果。录制结束后,可以在预览页面右键下载MP4文件。
云录制 & 云点播指南
云录制是将直播内容以 HLS 格式存储在了腾讯云 COS 中,可以认为 COS 是个无限容量的磁盘(当然,消耗存储空间是有资费的),这种策略避免了录制内容撑爆 SRS 云服务器的磁盘。如果使用场景相对单一,例如是希望将直播内容保存,并且后续进行剪辑等操作,那么云录制将会十分适合。
云点播则是指转换视频流到 腾讯云云点播 VoD 服务,只要推送至服务器的流均可以对接云点播。除了提供基础的存储服务外,还具备媒体AI、媒体处理以及版权保护的能力。如果业务场景比较丰富,那一定首选云点播。
SRS 云录制及云点播上手简单,且十分接近,这里以云录制为例,只需在应用场景-录制-云录制-设置云密钥中,输入当前腾讯云账号的密钥,即可自动创建依赖的云资源,在设置好录制规则后,开启直播即可录制。
Tips:如果没有密钥,可以点击链接,在访问密钥控制台新建用户和密钥。
此时已开始直播:
开始推流后,大约等10秒左右,可以在录制任务列表看到正在录制的流,同样地,在录制过程中可以点击预览进行回看,等待录制完成后,可以复制 HLS 链接,或进入存储桶进行管理。
观看直播
回到私人直播间的位置,在场景介绍- OBS推流中找到请选择播放的流-HTTP-FLV流或HLS流中的蓝色标签(简易或西瓜),点击链接即可进入直播画面:
此处分享链接时,如果用手机浏览器打开链接,有可能会看到“网站连接不安全”之类的提示,SRS 也非常贴心地提供了自动设置 HTTPS 的功能,不过前提是需要有一个域名,并且解析至当前轻量应用服务器:
点击申请证书,稍等片刻之后,看到证书申请成功的提示后,这个问题就解决了。
Tips:将域名解析到 SRS 云服务器之后,访问 / 分享链接别忘了把 ip 地址替换为域名。
至此,将直播的链接分享给你的粉丝/观众,他们就可以看到直播啦!