logo
实时音视频
当前页

同时推多路流

2024-01-02

功能简介

Express SDK 提供了同时推多路流的能力。当开发者的业务中出现以下情况时,推荐使用 SDK 的推多路流的功能:

  • 游戏主播主路流推摄像头画面,第二路流推屏幕采集画面。
  • 户外主播主路流推前置摄像头,第二路流推后置摄像头。
说明

目前 SDK 支持最大推流通道数量为 4 路流,2.14.0 之前版本默认最大推流通道数量为 2 路。如需支持更多推流通道,请联系 ZEGO 技术支持进行特殊编包。

示例源码下载

请参考 下载示例源码 获取源码。

相关源码请查看 “/ZegoExpressExample/Examples/AdvancedStreaming/PublishingMultipleStreams” 目录下的文件。

前提条件

在实现推多路流功能之前,请确保:

使用步骤

  1. 调用 getVideoDeviceList 获取可用的视频设备列表。
  2. 调用 useVideoDevice 接口指定主路流的视频设备,调用 startPublishingStream 接口推主路流。
  3. 调用 useVideoDevice 接口指定第二路流的视频设备,调用 startPublishingStream 接口推第二路流。
// 获取可用的视频设备
auto videoDeviceList = engine->getVideoDeviceList();

// 为主路流指定视频设备 然后开始推主路流
engine->useVideoDevice(videoDeviceList[0].deviceID, ZEGO_PUBLISH_CHANNEL_MAIN);
engine->startPublishingStream("stream1", ZEGO_PUBLISH_CHANNEL_MAIN);

// 为第二路流指定视频设备 然后开始推第二路流
// 辅路默认不采集,得设置下视频源 (利用实验性 api)

std::string params = "
{
   \"method\":\"express.video.set_video_source\",
    \"params\":{
        \"source\":2,
        \"channel\":1
    }
}";
engine->callExperimentalAPI(params);

engine->useVideoDevice(videoDeviceList[1].deviceID, ZEGO_PUBLISH_CHANNEL_AUX);
engine->startPublishingStream("stream2", ZEGO_PUBLISH_CHANNEL_AUX);

常见问题

是否支持同时推 4 路以上的流?

为了配合实时信令功能,目前 SDK 默认最大推流通道数量为 4 路,但 2.14.0 之前版本默认最大推流通道数量为 2 路。如需支持更多推流通道,请联系 ZEGO 技术支持进行特殊编包。

Previous

多源采集

Next

媒体补充增强信息(SEI)