使用Serverless云函数实现TRTC单流 混流录制
01.
什么是单流录制/混流录制?
1.单流录制模式(默认录制模式)
分开录制频道内每个UID的音频流和视频流。每个UID均有其对应的音频文件和视频文件。
2.混流录制模式
频道内所有或指定UID的音视频混合录制为一个音视频文件;或频道内所有或指定UID的音频混合录制为一个纯音频文件,所有或指定UID的视频混合录制为一个纯视频文件。
02.
Serverless云函数在单流/混流录制中
最佳实践场景
1.场景一:直播回放
·核心诉求
1.国家监管要求,直播过程要生成回放。
2.优质资源二次利用,形成点播文件多次分发。
3.随时生成回放,用户可以拖拽重复回看感兴趣商品
·云函数SCF解决方案
云函数录制可以在直播直播过程中实时生成回放文件,根据用户需求可以触发函数片段录制下来,满足需求的同时降低录制成本。
2.场景二:游戏精彩片段
·核心诉求
游戏过程中的精彩片段实时录制并且进行分享。
云函数SCF解决方案
1.利用云函数实时录制直播内容,生成ts文件存在指定位置。
2.精彩片段触发之后,读取触发点前几个片段,调用函数资源池,快速生成精彩片段。
3.场景三:定向用户录制
·核心诉求
多人连麦场景下,希望将指定视频流录制存储下来,比如狼人杀场景,可以将优质玩家的内容录制下来,在游戏社区中进行分享。
云函数SCF解决方案
可以调用函数单流录制功能,将指定uid的用户数据进行录制,生成精彩片段,指定设置触发形式。
03.
Serverless云函数的实现价值
1.用户可以自定义上传地址,不需要与存储地址强行绑定。目前市面上rtc自带的录制功能大部分需要指定云存储供应商。
2.录制结束之后可以使用云函数庞大资源池进行快速转码,短时间内生成回放,满足对于实时性的要求。
3.提供多种触发形式,可与客户的业务进行强结合。
04.
云函数SCF进行单流录制Demo演示
以上为大家介绍了Serverless云函数在单流/混流录制中的业务场景价值,接下来以单流录制为例,通过简单的Demo演示来讲解如何使用API网关集成云函数SCF来进行单流录制,工作流程如下:
1.API网关调用涉及参数
2.cosConfg涉及参数
如果userId为0,则会随机生成一个userId。如果userId为指定用户ID,多次请求API网关不保证幂等。
cosConfig中如果不配置secretId与secretKey,函数访问COS时将使用运行角色SCF_ExecuteRole权限去执行。
如果要查询函数运行过程的状态,参考异步事件管理接口。
3.创建云函数
3.1登录云函数控制台,选择左侧导航栏中的「函数服务」,单击「新建」进入新建函数页面,根据页面相关信息提示进行配置。如下图所示:
云函数控制台:https://console.cloud.tencent.com/scf
创建方式:选择「模板创建」。
模糊搜索:输入「单流音频录制」,并进行搜索。单击模板中的「查看详情」,即可在弹出的「模板详情」窗口中查看相关信息,支持下载操作。
3.2单击「下一步」,根据页面相关信息提示进行配置。如下图所示:
函数名称:默认填充。
异步执行:勾选以开启。开启后,函数将以异步执行模式响应事件,事件调用无需阻塞等待处理结果,事件将在被调用后进入异步执行状态。
状态追踪:勾选以开启。开启后,针对异步执行的事件,将开始记录响应事件的实时状态,并提供事件的统计、查询及终止服务,产生的事件状态数据将为您保留3天。
执行超时时间:可根据需要自行修改。
3.3配置API网关触发器,默认新建API服务,不开启集成响应。您也可以选择自定义创建,自定义创建时确保集成响应关闭,单击「完成」即可完成函数创建和API网关触发器创建。如下图所示:
3.4如需使用CFS挂载能力,由于CFS只能私有网络访问,因此必须将云函数的VPC配置在与CFS在同一个私有网络下。如下图所示:
4.创建TRTC应用
4.1登录实时音视频控制台,选择左侧导航栏中的「开发辅助」-->「快速跑通Demo」。
4.2填写Demo名称,单击「创建」完成应用创建。您可以根据自己的客户端选择模板试运行。
实时音视频控制台地址:https://console.cloud.tencent.com/trtc/monitor
5.测试函数功能
5.1使用Postman构造HTTP请求。如下图所示:
5.2请求发送后会收到异步函数响应“Async run task submitted”,此次函数的RequstId会通过HTTP头部信息中的x-scf-reqid返回。如下图所示:
5.3在云函数控制台「函数服务」页面中,点击上述「1.创建云函数」步骤中创建的云函数名称,进入「函数详情」页,查看到打印出的推流日志信息。如下图所示:
5.4切换至实时音视频控制台,在「监控仪表盘」页面单击房间ID,查看推流监控详情信息。如下图所示:
5.5如需在录制过程中停止录制,可以调用「移除用户接口」将用户提出房间。
移除用户接口:https://cloud.tencent.com/document/api/647/40496