Webrtc Native C++添加多个视频源,并实时切换

Posted 、、、、南山小雨、、、、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Webrtc Native C++添加多个视频源,并实时切换相关的知识,希望对你有一定的参考价值。

WebRTC的C++ API提供了一个rtc::VideoSourceInterface,它可以接收多个视频源,可以实时切换video0和video1。例如,可以使用以下步骤来实现:

  1. 创建一个rtc::VideoSourceInterface的实例。

  2. 使用AddOrUpdateSink()方法添加video0和video1视频源。

  3. 调用SwitchSource()方法来切换video0和video1之间的输入。

  4. 使用RemoveSink()方法移除不再使用的视频源。

//另一种方法

可以参考下面的代码:

// Create a MediaStreamTrack for the USB source.
rtc::scoped_refptrwebrtc::MediaStreamTrackInterface usb_track =
webrtc::CreateUsbMediaStreamTrack(usb_device);

// Add the MediaStreamTrack to the PeerConnection.
rtc::scoped_refptrwebrtc::RtpSenderInterface usb_sender =
peer_connection->AddTrack(usb_track);

// Switch to the USB source.
peer_connection->RemoveTrack(default_sender);
peer_connection->AddTrack(usb_sender);

//另一种方法

rtc::scoped_refptrwebrtc::VideoTrackSourceInterface new_video_source =
n

WebRTC Native M96 SDK接口封装--setDevice指定视频设备


生活继续

前一篇写了如果枚举视频设备,这里就谈一谈如何设置设备。

在实际使用过程中,有的设备有多个视频采集设备,这个时候,用户可以自己选择自己需要使用哪个一个摄像头。

这样,就需要先枚举设备,给用户一个设备列表,然后用户选择一个设备,通过接口设置到WebRTC中。

奇怪:
这里需要注意一下,声网的接口叫setDevice,而不是setVideoDevice。

接口定义(Agora)

接口名
setDevice

接口定义

virtual int agora::rtc::IVideoDeviceManager::setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])

接口功能
指定视频设备。

参数

成员变量 说明
deviceI

以上是关于Webrtc Native C++添加多个视频源,并实时切换的主要内容,如果未能解决你的问题,请参考以下文章

WebRTC Native M96 SDK接口封装--setDevice指定视频设备

WebRTC Native M96 SDK接口封装--setDevice指定视频设备

WebRtc Native M96 远端视频接收之PacketBuffer-组帧原理分析

WebRtc Native M96 远端视频接收之PacketBuffer-组帧原理分析

让WebRTC支持H264编解码

WebRTC Windows Native视频中的DirectShow介绍