概述
metaRTC新版本p2p demo工程metap2p3实现了基于p2p的一对一和一对多的双向音视频通信,可用于音视频对讲和视频会议,并且其中包含回声消除和声音合成等多种声音处理。在3A音频模式中48k输出,方便开发者合成背景音乐等高质量音频,实现了多视频流输出,实现了视频处理接口,开发者可以针对视频进行AI合成等处理。
metap2p3自带信令服务,如果在城域网内,不需要stun打洞情况下不需要额外的信令服务器。
metap2p3 demo实现p2p的两种模式:
- 直播模式(单向)
- 互动模式(双向)
下载源码
https://github.com/metartc/metaRTChttps://github.com/metartc/metaRTChttps://github.com/metartc/metaRTChttps://github.com/metartc/metaRTCmetaRTC: metaRTC为嵌入式版本的webrtchttps://gitee.com/metartc/metaRTChttps://gitee.com/metartc/metaRTChttps://gitee.com/metartc/metaRTC
git clone https://github.com/metartc/metaRTC.git
或者
git clone https://gitee.com/metartc/metaRTC.git
metap2p3参数
hasAec=1开启3A处理,这种适合有双向互动应用场景。
hasAec=0不开启3A处理,适合单项直播应用场景。
p2p操作
当前版本支持metaRTC与metaRTC之间进行p2p通信,近期会增加和浏览器p2p双向互动demo。
打开metap2p3程序,设置连接的另一端的metap2p3的地址和信令侦听端口,然后点击推拉流这个按钮,就可以进行双向的p2p互动,并且支持一对多。
一对一就是对讲机的应用,一对多就是视频会议的应用。
多画面编程
metap2p是个webrtc双向通信demo,没有实现多画面显示,开发者可自定义显示多画面。
文件yangrecordthread.cpp中,vector<YangVideoBuffer*>* m_playVideoBuffer;
m_playVideoBuffer存放多个流数据, YangVideoBuffer* play=m_playVideoBuffer->at(0);
这个只是render第一个流,如何显示多个画面由开发者自己实现。