Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

Latest commit

 

History

History
88 lines (48 loc) · 4 KB

README_zh.md

File metadata and controls

88 lines (48 loc) · 4 KB

局域网网络课堂软件

中文 | 英文

一个简单的基于 UDP 组播的网络课堂软件 Demo,包含基本的多媒体传输。仅适用于局域网。

已实现的功能

  • 基于 UDP 组播 实现了基本的多媒体传输功能,包括摄像头、桌面共享,语音、立体声混音设备等数据传输。

  • 支持 1080p@30Hz 或 720p@60Hz 视频传输。(对于 CPU网络带宽 要求较高)

  • 支持摄像头、声音输入输出设备动态切换。

  • 支持摄像头分辨率调节。

  • 支持音频输入输出流音量调节。(仅调节 应用程序 音量,音频设备全局音量由系统控制)

  • 支持刷新可用设备列表。

  • 支持屏幕共享时使用白板和屏幕标注。

  • 支持多线程收发数据,避免单线程造成 GUI 卡顿。

  • 支持文件传输,基于 TCP 协议。

  • 支持文本消息发送。

  • 支持学生签到表导出。

目前存在的问题

  • 使用无线网卡时,UDP 组播极为 不稳定 ,收发数据包均存在严重丢包问题。推荐使用 有线网卡

  • 目前摄像头和桌面画面由 CPU(?)直接编码为 JPEG 格式并缩放进行传输,原始画面分辨率高于 1080p 会造成卡顿。

  • Linux 下获取的音频/视频设备名称 不明确 (由设备驱动决定),声音设备列表中大多数设备不可用。(多数是声卡硬件原始预留的端口,未连接任何物理设备)

  • 可用设备列表不能实时刷新,使用设备过程中移除设备可能造成程序崩溃,新插入设备不会自动识别,需要关闭对应功能后才能刷新设备列表。

后续计划实现的功能

  • 尝试使用 ffmpeg 对视频流和音频流进行编码,降低 CPU 占用。

参考资料

感谢

声明

该项目为大学本科毕业设计,仅供学习交流使用。