本文主要描述一下腾讯云实时音视频的混流功能模块的原理。
一、概念与原理: 首先,介绍一下混流的基本概念:将 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 接口进行控制,其原理如下图:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。