V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
dnjat
V2EX  ›  程序员

如何开发一款会议室(音视频)产品?好像有点难

  •  
  •   dnjat · 1 天前 · 2715 次点击

    上头交给年后任务,开发一款用来在线教育的音视频软件,先让我先研究一下,然后规划下流程方案和技术选型,主导这个软件的开发(我会 c++,java ,另外两个会 java )。

    本人无音视频开发经验也无理论知识,完全从头开始研发。

    为什么不用市面上已有产品?因为要交钱,老板希望有自己的产品,方便日后扩展,升级,满足他的控制欲,为称霸扫平道路。

    👑希望能得到音视频大佬们的指点👑。

    软件需求:

    1 、桌面端界面使用 QT ,移动端界面使用 Flutter 或原生。

    2 、业务库统一用 C++实现,多端界面端统一调用业务库(粗略了解到过程中还有交叉编译之类的,不知道是不是很复杂)。

    下面是我这两天的查阅,拼湊出的一个简略框架和流程:

    大体框架:

    1 、桌面端界面使用 QT ,移动端界面使用 Flutter 或原生。

    2 、业务库统一用 C++实现,多端界面端统一调用业务库(粗略了解到过程中还有交叉编译之类的,不知道是不是很复杂)。

    大体流程:

    1 、通过 gRPC 传输信令,建立 WebRTC 点对点连接(这里打算直接用 P2P 建立连接,涉及到 NAT 穿透,如果穿不透,使用 TURN 做中继,用中继后所有流量都得走服务器,人一多,对服务器带宽是个挑战,基本一个 5M 带宽,最多支持 5 个一对一,那得多少带宽才能带得动)。

    2 、教师通过系统 API 捕获屏幕,摄像头采集,麦克风采集,通过 ffmpeg 处理后,用 WebRTC 传输。

    3 、学生端直接使用 WebRTC 显示。

    使用 WebRTC:

    使用 WebRTC 比较方便,有网络自适应。但好像只能在浏览器中使用。

    WebRTC 也有 native 库(原生 native 库,metartc ),直接在 C++调用,不知道坑多不多。

    不使用 WebRTC:

    采用 RTMP/RTSP 传输,ffmpeg 解码后,用 OpenSL ,OpenGL 之类自己做渲染。

    疑问:

    1 、使用 WebRTC 方便 还是 用 RTMP/RTSP 传输后自己解码显示?

    2 、如何避免/减少点对点流量对服务器造成的带宽压力?

    这中间有的地方可能理解得不对🐞,希望得到大佬们的批评指点🌻。如果有不错的学习资源,帮忙推荐一下🎁。

    第 1 条附言  ·  1 天前
    软件需求贴错了,不能修改了。
    软件需求:
    一对一的模式,一方开启投屏(教师端),另一方进行观看(学生端),支持语音对话(后期可能会扩展荧光笔这类标记功能)。
    支持多端,桌面端(windows,mac),手机平板端(andorid,ios)。每个端都支持教师与学生。
    101 条回复    2025-01-23 22:34:13 +08:00
    1  2  
    dnjat
        101
    dnjat  
    OP
       5 小时 15 分钟前
    @simo 这技术水平,看能勉强二开不.我们三就不造原子弹了.😂.
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   940 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 19:50 · PVG 03:50 · LAX 11:50 · JFK 14:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.