云SRS:支持云录制,直播中可回看

2022-03-18 17:15:22 浏览数 (1)

云录制是心心念念了很久的一个功能,因为直播的内容需要沉淀,就必须录制下来编辑,剪辑和处理后转短视频可以再分发。

另外,发现支持云录制后,直播中也可以回看了,方便直播来晚的同学看之前的内容。也就是俗称的直播时移,当然是比较简单的时移,复杂的还需要有节目单。

Why

为何云录制这么重要?列举几个我知道的原因,不限于这些原因,应用会更广泛。

•直播内容需要沉淀,特别是有价值的内容,录制到本地磁盘会有磁盘满和丢失问题,而云录制不存在这个问题,无限空间永不丢失。•监控上云场景,除了H5观看,录制是刚需。监控内容可以再分析和处理,对接后续系统告警,或者生成业务数据,比如什么时间点有人走动。•直播和WebRTC主要是网络流转发,不涉及磁盘,而录制必须和磁盘打交道,而磁盘作为最慢的设备,也是SRS整个技术环节中最薄弱的一环,云录制避免了这个弱点。

当然,SRS本身不对接云存储,而是SRS云服务器使用SRS的回调on_hls,将HLS切片对接到了云存储:

代码语言:javascript复制
Client --> SRS --callback-> Nodejs --> Cloud Storage

录制是个业务问题,不适合在SRS中做,适合在SRS云服务器中做。

Usage

首先,要有个SRS云服务器,可以参考下面视频购买和使用:

Remark: 购买后,等待服务器初始化完成,需要手动升级到v1.0.113及以上版本。

然后,在应用场景中,选择云录制,先设置腾讯云的密钥:

Note: 可以点击链接新建用户和密钥,设置密钥后,我们会自动创建云存储的桶

接着,指定录制的流,目前支持的是录制所有流,或者不录制:

开始推流(可参考直播间场景,或者高清实时直播场景),推流后,等10秒左右,可以看到正在录制的流:

在录制过程中,可以点预览看HLS回看,录制完成后可复制HLS链接:

欢迎探索更多场景,录制视频教程。

Now

我们测试了SRS云服务器,配置为2CPU 2GB内存 40GB-SSD磁盘,最高同时能支持20路2Mbps直播流的录制,以下是数据:

•系统负载在2左右。•SRS的CPU使用率在20%(有RTMP转WebRTC)。•Nodejs的CPU使用率峰值30%左右。•SRS云服务器和云存储之间走内网传输,不消耗公网流量。

一共运行了24小时左右,前12小时只推了10路流,后12小时推了20路流,一共录制了300GB左右的视频数据。完全可以达到使用的要求了。

Note: 由于SRS云服务器的入口带宽只有4Mbps左右,所以这次压测在服务器本机推流,主要是测试直播流录制到云存储这部分是否正常工作。若SRS云服务器有更高带宽,直接外网推流效果一样。

Next

无疑云录制是SRS云服务器非常重要的能力,还有很多可以继续改进的点,SRS云服务器是一个Nodejs开源项目,欢迎大家一起来改进:

•支持MP4的录制:目前只支持了HLS的录制,需要在录制完成后,将HLS转成MP4文件。•更多录制的策略:目前只支持了全部录制或不录制,可以支持更复杂的策略,Nodejs正则表达式无所不能。•对接视频编辑、AI、内容处理、点播等后续系统,根据大家的需求(钉子),我们再打造更合适的锤子。

0 人点赞