码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++/Qt音视频通话开发MetaRTC源码解读,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抓包看比较清晰。
    在这里插入图片描述

  • 相关阅读:
    docker命令图文详解
    Kafka部署安装及简单使用
    pdf转jpg怎么转?转换软件分享
    使用jdk自带的VisualVM分析hprof堆转储文件
    深度神经网络算法有哪些,python深度神经网络算法
    软件项目管理 6.10.成本预算
    【 C++ 】list的常用接口说明
    c++ 模板template
    java SSM流浪宠物救助与领养myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
    linux内核中watchdog、lockup、stall、hung等检测
  • 原文地址:https://blog.csdn.net/weixin_40355471/article/details/126798223
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号