本文主要是介绍C++/Qt音视频通话开发MetaRTC源码解读,sdp交互流程,sdp抓包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- sdp交互框架介绍
- http服务监听
- 主叫sdp流程
- 被叫sdp流程
- sdp抓包
本章内容解读MetaRTC开源代码,无任何二次开发,用于学习交流。
MetaRTC是国人开发的开源项目,适用各种场景音视频二次开发,可以去git阅读README,我们使用相对成熟的版本测试:Release v5.0-b4。
本章解读sdp交互流程,关于sdp知识参考另一篇博文。
sdp交互框架介绍
由于MetaRTC只是一个demo,sdp交互比较简单,软件启动会建立一个http服务监听,http服务端口固定1988,界面输入对方IP;
主动点击推拉流的一方是主叫,主叫会组建自己的sdp,发起post给被叫的http服务,同步等待被叫回复被叫的sdp,收到被叫的sdp后解析;
另外一方是被叫,被叫的http服务端收到主叫的sdp后,解析sdp并回复自己的sdp给主叫。
整个sdp交互过程是http请求-响应过程。
p2p视频通话,sdp交互最重要的内容是得到对方的IP和端口,用于创建udp收发音视频数据。
http服务监听
程序启动,在YangP2pHandleImpl类构造函数创建和监听http服务,被叫会用到这个http服务,当收到主叫的sdp后使用g_p2p_receive回调。
主叫sdp流程
主叫在界面输入对方IP,点击推拉流按钮,开始sdp交互,主叫调用yang_http_post,这里是收发同步,yang_http_post第一个参数是出参,函数返回时拿到对方sdp。
获取被叫sdp后,解析sdp并创建udp用于音视频数据的收发,这里udp端口是每次程序启动随机生成的5位数。
被叫sdp流程
被叫的http服务端收到主叫的sdp后,执行回调函数g_p2p_receive,解析主叫sdp,创建自己的sdp作为出参使用http服务端回复给主叫。
sdp抓包
sdp交互过程是http请求-响应过程,wireshark抓包看比较清晰。
这篇关于C++/Qt音视频通话开发MetaRTC源码解读,sdp交互流程,sdp抓包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!