混流与录制相关

最后更新时间:2021-11-12 16:41:37

    一、混流转码问题

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

    满足下述条件,且客户端日志打印 mcumix = 1,则使用的是新的 mcu 混流。

    • 2020年01月09日及此后新建的应用。
    • TRTC SDK 版本在6.9之后。

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

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

    二、云端录制问题

    如何录制单路流?

    • 在控制台配置成全局自动录制,推流时会自动录制房间里的每条单路流,具体请参见 全局自动录制
    • 在控制台配置成指定用户录制,需要录制的流在进房时设置下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 类型有单文件最大时长限制,超过最大时长后会产生录制文件和回调,然后继续生成新的录制文件。
    • 房间如果多次触发混流,可能会生成多个混流录制文件。