首页 > 其他分享 >关于 Mumble开源语音聊天软件项目的的分析

关于 Mumble开源语音聊天软件项目的的分析

时间:2023-12-10 17:34:24浏览次数:34  
标签:mumble 开源 语音 cpp 服务器 main Mumble 客户端

开源地址

https://github.com/mumble-voip/mumble

Mumble

Mumble:语音通信软件

  • 低延迟、高质量

  • 低延迟通信

  • C/S(Client/Server)

  • 跨平台(跨风俗来运行)

  • Opus音频编码器

  • SSL/TLS加密

源码整体结构分析

mumble/src/client

  • .ts 用于本地化(翻译)的内容由外部服务处理。

  • main.cpp 则这里是客户端的主入口点("主函数") 一般程序的入口点都是在main.cpp来进行的,所以我们分析一些程序的时候需要从main.cpp来入手。

  • MainWindow.cpp:这是Mumble客户端的核心。负责QT界面的。信号槽之类的。用来传递信号

  • UserModel.cpp:负责管理通道和用户树的内存表示。客户端上的所有用户和通道对象均在此处创建(这个还多少没有理解)

  • Messages.cpp:此类实现了在客户端执行的所有Protobuf消息处理,关于Protobuf的了解我们先暂时放过他,据我了解是一个跟服务端定义的通信方式。

  • ServerHandler.cpp:此类负责管理与给定服务器的连接。它处理与服务器的即时网络连接,并确保所有消息都在适当的线程中发送和接受。大概意思就是说对服务器传来的信息处理

  • AudioInput.cpp/AudioOutput.cpp:从名字来看这是一个音频输入和输出的结果。这应该是对驱动传输过来的数据进行下一步的处理。所以这个类可以着重去分析以下

  • PluginManager.cpp:这是一个插件相关的cpp

  • API_V:这些是插件API函数的各种实现。这些事插件可能调用到的函数。

  • Global.cpp:该类是用来控制全局的变量。保证整个客户端的重要信息。

mumble/src/server

虚拟服务器:其实说白了就是一台主服务器中包含有多个小型的服务器

  • main.cpp: 服务器端的主要入口点

  • Meta.cpp:来负责管理不同的虚拟服务器。

  • Messagesc.cpp:来负责管理客户端传来的消息,并进行下一步的处理。

  • Server.cpp:虚拟服务器实例的核心。它包含一堆辅助功能并完全处理UDP音频线程。

  • ServerDB.cpp:该文件实现了各种数据库的访问呢。

标签:mumble,开源,语音,cpp,服务器,main,Mumble,客户端
From: https://www.cnblogs.com/doubleconquer/p/17892837.html

相关文章

  • 国际水稻所为你提供了一套免费开源的表型育种数据分析流程
    背景每年国际水稻所(IRRI)的雨养稻育种(RainfedRiceBreeding,RRB;所谓雨养就是无人工灌溉,仅靠自然降水作为水分来源)计划都会与区域合作伙伴共享耐旱、耐盐、耐热和耐淹的育种种质进行表型评估,从不同地点的几项试验中获得原始表型数据。例如,RRB在2019年从NARES合作伙伴那里收到了大......
  • 11.6k star,真的吹爆这款开源插件,太强了!!
    这款插件可以一键将你看到的网页内容统统下载下来,整合到本地作为一个html文件,还可以针对部分内容进行下载,也可以对下载内容添加笔记、文本高亮等。支持目前主流的大部分浏览器。1SingleFile简介如果你直接另存一个html页面的话,很多时候页面内容会变得很乱,部分资源也会没有保......
  • 基于PSD-ML算法的语音增强算法matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022A 3.算法理论概述      PSD-ML(PowerSpectralDensityMaximumLikelihood)算法是一种基于最大似然估计的语音增强算法,通过对语音信号的功率谱密度进行估计,并利用估计结果对原始语音信号进行滤波处理,以达......
  • 开源电子书软件推荐
    这篇文章给大家推荐一款跨平台的电子书阅读器,这款阅读器功能还是很强大的,支持多平台使用,整个界面的ui也是不错的,还内置了一些常用功能。1KoodoReader简介支持阅读格式:EPUB(.epub)扫描文档(.pdf,.djvu)Kindle(.azw3,.mobi,.azw)纯文本(.txt)......
  • 开源库推荐】#5 Android高亮引导库
    原文:【开源库推荐】#5Android高亮引导库-Stars-One的杂货小窝本文介绍2个高亮引导库HighLightPro和Curtainhyy920109/HighLightPro:Ahighlightlibandalsoitcanbeasimplepopupwindowlibforandroidsoulqw/Curtain:一个Android高亮View蒙层库HighLi......
  • Android 图表开源库调研及使用示例
    原文地址:Android图表开源库调研及使用示例-Stars-One的杂货小窝之前做的几个项目都是需要实现图表统计展示,于是做之前调研了下,做下记录概述AAChartCore-Kotlin基于webview,本质上还是使用jsPhilJay/MPAndroidChart,老牌使用原生canvas绘制的图标,但似乎因为收费而不......
  • .NET开源且好用的权限工作流管理系统
    前言系统权限管理、工作流是企业应用开发中很常见的功能,虽说开发起来难度不大,但是假如从零开始开发一个完整的权限管理和工作流平台的话也是比较耗费时间的。今天推荐一款.NET开源且好用的权限工作流管理系统(值得借鉴参考和使用):OpenAuth.Net。官方项目介绍.Net权限管理及快速开......
  • 老年姐姐音视频娱乐打赏企业个人公众号小程序开源版开发
    老年姐姐音视频娱乐打赏企业个人公众号小程序开源版开发老年姐姐音视频娱乐打赏企业个人公众号小程序是一款专为老年人设计的音视频娱乐平台。以下是该平台的一些功能介绍:视频直播:提供各类老年人感兴趣的直播内容,包括健身操、养生知识、音乐演奏等,用户可以观看直播并与其他观众互动......
  • StyleSync 开源部分总结
    https://github.com/guanjz20/StyleSync_PyTorch这个是号称最强的模型.说百分之99拟合真人.我们赶紧来学习.首先权重和训练是不开源的.我也只能尽可能的根据发布的代码来看能学到什么.先说结论:整体跟wav2lip百分之90相似.都是视频--->图片--->抽取人脸landmark->每个图片......
  • 最新:2024年值得关注的15款顶级开源项目管理系统!
    推荐15个优秀的开源项目管理工具,比如:ProjectLibre、OpenProject、ERPNext、Redmine、禅道、Tuleap、Restyaboard等。项目经理面临各种复杂任务,包括追踪任务的进度、评估交付风险和管理整体工作量。为了顺利达成目标,一款靠谱的项目管理(PM)工具是必不可少的。但是,挑选项目管理工......