腾讯实时音视频(TRTC)混流的原理

2022-11-28 00:07:44 浏览数 (1)

本文主要描述一下腾讯云实时音视频的混流功能模块的原理。

一、概念与原理: 首先,介绍一下混流的基本概念:将 TRTC 房间里的多路音视频流混合成一路,观众拉流是就可以观看到多个上行数据流的画面。并将最终生成的视频流分发给直播 CDN 和云端录制系统。 而混流的的原理包括: 云端混流包含解码、混合和再编码三个过程:

解码:MCU 需要将多路音视频流进行解码,包括视频解码和音频解码。 混合:MCU 需要将多路画面混合在一起,并根据来自 SDK 的混流指令实现具体 的排版方案。同时,MCU 也需要将解码后的多路音频信号进行混音处理。 编码:MCU 需要将混合后的画面和声音进行二次编码,并封装成一路音视频流,交给下游系统(例如直播和录制)。

二、TRTC混流的两种方式: (1)、A B->A (Streamid:xxx_userA Streamid:xxx_userB->Streamid:xxx_userA)

需要混用户A和用户B的上行流数据,将混流后的流id指定为A的流id

(2)、A B->C (Streamid:xxx_userA Streamid:xxx_userB->Streamid:xxx_userC)

需要混用户A和用户B的上行流数据,将混流后的流id指定为新的流id(即C)

如下图:

三、云端混流有两种控制方式:

方案一:使用服务端 REST API StartMCUMixTranscode 和 StopMCUMixTranscode 进行控制,该 REST API 还可以同时支持启动 CDN 观看和云端录制。

方案二:使用客户端 TRTC SDK 的 setMixTranscodingConfig 接口进行控制,其原理如下图:

0 人点赞