素材巴巴 > 程序开发 >

WebRTC笔记之九:最简单的视频聊天(使用WebRtcVideoEngine)

程序开发 2023-09-20 23:41:19

一.环境

WebRTC版本:2021.03.07的master分支,详见 WebRTC学习之二:编译

Qt版本:Qt5.12.6 VS2017


二.效果

这里使用的是虚拟摄像头,虚拟摄像头那家强,当属OBS的插件。右下角是本地视频,比较大的是远端视频。

三.实现

1.数据发送

翻看WebRTC源码,可以发现rtp/rtcp的发送最终会调用到cricket::MediaChannel::NetworkInterface接口中的SendPacket和SendRtcp方法。因此我们只要子类化这个接口,并重写SendPacket和SendRtcp方法,在这两个方法中用udp协议将数据发送出去。当然,还需要调用cricket::VideoMediaChannel的SetInterface方法将我们子类化的接口设置到channel中。

bool QHNetworkInterface::SendPacket(rtc::CopyOnWriteBuffer* packet, const rtc::PacketOptions& options)
 {
     MutexLock lock(&mutex_);    QUdpSocket udpsocketSendRTP;
     udpsocketSendRT

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。