混流与录制相关

最近更新时间:2024-07-26 15:46:01

我的收藏

一、混流转码问题

TRTC 如何知道自己用的是新的 mcu 混流还是老的云端混流?

满足下述条件,且客户端日志打印 mcumix = 1,则使用的是新的 mcu 混流。
2020年01月09日及此后新建的应用。
TRTC SDK 版本在6.9之后。

TRTC 调用混流接口失败,没有效果怎么排查?

1. 确保已在 实时音视频控制台 开启自动旁路推流
2. 监听 onSetMixTranscodingConfig() 接口,根据返回的错误信息修改。
3. 若通过 SDK 接口自定义了旁路流 ID,老的云端混流方式会混流失败。
4. 若 onSetMixTranscodingConfig() 返回成功但旁路 CDN 拉流仍没有效果,可能是播放域名没有配置所导致的,建议检查播放域名相关配置。

调用 Rest API 发起混流转推时,可选择哪些Region?

1. 如果 SdkAppid 是1400xxx,Region 可选择北京、上海、广州和中国香港;如果您的 CDN 观众主要在境外,请选择中国香港。
2. 如果 SdkAppid 是200xxx或400xxx,Region 请选择新加坡。

二、新版云端录制问题

实时音视频于2022年8月1日推出全新云端录制能力,则2022年8月1日后新创建的应用默认升级为 新版云端录制 能力,同时为了兼容老应用(sdkappid)保留 旧版云端录制 能力,用一个应用(sdkappid)仅支持使用其中一种录制能力。请您在使用录制能力和查阅相关录制能力问题时,先确认当前应用的云端录制能力类型,请参见 判断云端录制能力类型

新版云端录制能力的控制方式有哪些?

TRTC 提供了两种云端录制方案,分别是 API 调用录制和全局自动录制,这两种方案并不冲突,可以同时使用两种录制方案。手动API 录制 相比全局自动录制的优点是录制灵活、功能完备,客户可以指定录制订阅房间内的主播,自定义合流布局,录制中途更新布局和订阅等。全局自动录制 的优点是录制不需客户启动和停止,由 TRTC 后台管理录制任务,您可以按照预设的录制模板完成房间内所有音视频流的自动录制,降低接入门槛。

如何录制单路流?

手动 API 录制下:您需要通过开始云端录制 API:CreateCloudRecording 中的 RecordParams> RecordMode 为单流录制,实现手动单流录制。
全局自动录制下:需要在控制台的配置全局自动录制模板中,将录制模式设置为单流录制即可,详情请见 全局自动录制




如何录制混流(合流)?

手动API录制下:您需要通过开始云端录制 API:CreateCloudRecording 中的 RecordParams> RecordMode 为合流录制,实现手动单流录制。
全局自动录制下:需要在控制台的配置全局自动录制模板中,将录制模式设置为合流录制即可,详情请见 全局自动录制

如何获取录制回调?

1. 设置回调地址:新版云端录制回调地址请前往控制台对应应用的回调配置下的录制回调进行设置,详情请见 回调配置



2. 发起录制任务,接收回调信息,新版云端录制提供了以下云端录制事件,详情请见云端录制回调说明
字段名
类型
含义
EVENT_TYPE_CLOUD_RECORDING_RECORDER_START
301
云端录制模块启动
EVENT_TYPE_CLOUD_RECORDING_RECORDER_STOP
302
云端录制模块退出
EVENT_TYPE_CLOUD_RECORDING_FAILOVER
306
云端录制发生迁移,原有的录制任务被迁移到新负载上时触发
EVENT_TYPE_CLOUD_RECORDING_DOWNLOAD_IMAGE_ERROR
309
云端录制下载解码图片文件发生错误
EVENT_TYPE_CLOUD_RECORDING_VOD_COMMIT
311
云端录制 VOD 录制任务上传媒体资源完成
EVENT_TYPE_CLOUD_RECORDING_VOD_STOP
312
云端录制 VOD 录制任务结束
说明:
云端录制资源上传结束事件311根据您录制任务录制的文件大小不同,可能存在上传完成回调延迟,具体延迟受文件大小影响。

如何获取录制文件?

新版云端录制会将录制后的文件存储到您指定的云点播下,您可以通过以下方式进行查找:

方式一:在点播控制台手动查找

1. 登录 云点播控制台,在左侧导航栏选择媒资管理
2. 单击列表上方的前缀搜索,选择前缀搜索,在搜索框输入关键词,按照 录制文件命名规则 填入,例如合流录制下填入:1400000123_1001,单击
img

,将展示视频名称前缀相匹配的视频文件。
单流录制 MP4 文件名规则:<SdkAppId>_<RoomId>_UserId_s_<UserId>_UserId_e_<MediaId>_<Index>.mp4
合流录制 MP4 文件名规则:<SdkAppId>_<RoomId>_<Index>.mp4

方式二:通过点播 REST API 查找

腾讯云点播系统提供了一系列 REST API 来管理其上的音视频文件,您可以通过 搜索媒体信息 这个 REST API 来查询您在点播系统上的文件。您可以通过NamePrefixes 参数进行匹配查找。 REST 请求示例:
https://vod.tencentcloudapi.com/?Action=SearchMedia
&NamePrefixes.0=1400000123_1001xxxx
&Sort.Field=CreateTime
&Sort.Order=Desc
&<公共请求参数>

三、旧版云端录制问题

如何录制单路流?

在控制台配置成全局自动录制,推流时会自动录制房间里的每条单路流,具体请参见 全局自动录制
在控制台配置成指定用户录制,需要录制的流在进房时设置下TRTCParams中的userDefineRecordId参数就可以,具体请参见 指定用户录制(SDK API)
如果不希望全局自动录制,同时平台也不支持SDK API,可以通过 云直播直播录制 进行单独的录制。

如何录制混流?

如果配置的全局自动录制,混流也会自动录制。
如果配置的指定用户录制,并使用服务器 REST API 触发混流,在混流接口中指定参数 OutputParams.RecordId,可以开启混流录制,具体请参见 混流参数-OutputParams
如果配置的指定用户录制,并使用客户端 SDK API 触发混流,主播在进房时设置了 TRTCParams 中的 userDefineRecordId 参数混流就会录制,具体请参见 指定用户录制(SDK API)

录制什么时候开始?

单路流:在推流几秒(网络延迟和关键帧等待)后开始录制。
混流:在进行混流几秒(网络延迟和关键帧等待)后开始录制。

录制什么时候结束?

单路流的录制在断流后结束,如果设置了续录时间,录制在断流续录超时后结束。
如果调用客户端 SDK setMixTranscodingConfig() 触发的混流,在主播流退出时或者再次调用setMixTranscodingConfig() 且把参数设置为 null 时结束。
如果调用服务器 REST API StartMCUMixTranscode 触发的混流,在所有用户退房后自动停止,或中途调用 StopMCUMixTranscode 手动停止。

录制文件和回调什么时候产生?

录制完成5分钟后录制文件会转存到 云点播 平台并触发回调。
如果设置了续录时间,则需要在上面等待时间基础上叠加续录超时的时间。设置了续录时间的,中间断流录制不会结束,也不会产生录制文件和回调。
MP4、FLV 和 AAC 类型有单文件最大时长(控制台可以配置)限制,超过最大时长后会产生录制文件和回调,然后继续生成新的录制文件。

录制文件怎么获取?

可以通过点播控制台手动查找和点播 REST API 查找,具体请参见 查找录制文件
可以通过回调方式及时获取录制文件下载地址,具体请参见 接收录制文件

没有生成录制文件如何排查?

通话没有正常建立或者上行推流时间太短(建议推流30秒以上)可能不会产生录制文件,可以通过仪表盘看上行数据是否正常。
如果配置的指定用户录制,进房时 TRTCParams中的userDefineRecordId 没有设置,则单路流不会被录制。
如果配置的指定用户录制,并使用服务器 REST API 触发混流,在混流接口中没有指定参数 OutputParams.RecordId,则混流不会录制。
如果配置的指定用户录制,并使用客户端 SDK API 触发混流,主播没有设置 userDefineRecordId,混流也不会录制。

没有收到录制回调如何排查?

首先通过控制台查看录制文件是否生成,如果没有生成,可以按照前面方法进行初步排查。文件查找请参见 查找录制文件
如果生成了录制文件但没有收到回调,可以先检查回调是否已经正确配置。回调配置请参见 接收录制文件
如果回调已经正确配置,可以再检查下服务器是否可以正常处理回调,比如通过 CURL 模拟测试回调请求是否能正常处理。

生成的录制文件为什么这么多?

如果配置了全局自动录制,房间里面每路流都会自动录制。
如果没有配置续录时间,每次断流重新推流后会生成新的录制文件。
MP4、FLV 和 AAC 类型有单文件最大时长限制,超过最大时长后会产生录制文件和回调,然后继续生成新的录制文件。
房间如果多次触发混流,可能会生成多个混流录制文件。