[App Sharing] 基于 Qt 开发的网络课堂软件 Resolved
Tofloor
poster avatar
忘记、过去
deepin
2021-06-13 23:41
Author

P.S. 这就是个软工本科毕业设计,基本没有任何实用价值 =_= ......给大家看着玩玩吧,说不定以后还有人能用得上 XD......

 

仓库地址:https://gitee.com/zty199/NetworkClassroom_LAN

                  https://github.com/zty199/NetworkClassroom_LAN

局域网网络课堂软件

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

 

已实现的功能

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

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

支持摄像头、声音输入输出设备动态切换;支持刷新可用设备列表

支持摄像头分辨率调节

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

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

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

 

目前存在的问题

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

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

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

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

 

部分运行效果图

 

 

 

Reply Favorite View the author
All Replies
q77190858
deepin
2021-06-13 23:52
#1

点赞支持👍🏻👍🏻👍🏻

Reply View the author
Comments
忘记、过去
2021-06-14 00:04
谢谢大佬支持~
忘记、过去
deepin
2021-06-14 00:14
#2

(校园迷惑行为:学生集中在教室,老师在办公室远程上课或者放网课视频......)

 

原本计划是能在学校的内网直接使用的,老师办公室连接内网开启课堂,学生即使在宿舍也可以通过校园内网加入课堂。然而实际情况是,学校内网分了很多网段,同一个宿舍里内网都不在一个网段里......虽然 UDP 组播理论上可以跨网段,但是实际测试的时并不行......这就很难受了,最后只能在一个路由器上挂两台笔记本来演示了......

 

加上音视频传输没有编解码,就直接传的音频数据包和一张张的连续截图,不仅音画同步比较捉急,还占 CPU 和带宽......只能说基本毫无用处了。

Reply View the author
海天鹰
deepin
2021-06-14 07:57
#3

厉害了,我的哥!

CPU占用高

Reply View the author
忘记、过去
deepin
2021-06-14 08:10
#4
海天鹰

厉害了,我的哥!

CPU占用高

大佬见笑了......这里面屏幕标注那部分代码还是直接搬的你的 HTYScreenPen 改的 XD......

真让我自己写估计毕设是写不完了......

 

因为视频传输完全就是逐帧图像截图传输,还要压缩和编码为 JPEG,再进行传输,占用确实很高......如果用 ffmpeg 之类的话能好很多,但是估计得从头重写了......

Reply View the author
sgb76
deepin
2021-06-14 18:05
#5

好牛啊!👍赞!

Reply View the author
Comments
忘记、过去
2021-06-14 18:48
感谢~
wtz
deepin
2021-06-14 23:16
#6

那几个画中画的截图好迷幻啊

Reply View the author
Cris.Q
deepin
2021-06-15 00:07
#7

牛逼

Reply View the author
忘记、过去
deepin
2021-06-15 00:37
#8
wtz

那几个画中画的截图好迷幻啊

那个是服务器端(教师端)在共享桌面画面,预览窗口看到现在的桌面画面就是画中画了......

Reply View the author
忘记、过去
deepin
2021-06-15 00:38
#9
Cris.Q

牛逼

等你上大学做毕设估计就比这个要求高得多了 XD......

Reply View the author
depend
deepin
2021-06-15 18:03
#10

楼主还没毕业就能写出这么牛逼的东西哦

Reply View the author
忘记、过去
deepin
2021-06-15 18:51
#11
depend

楼主还没毕业就能写出这么牛逼的东西哦

毕业了毕业了......开始进社会挨打了......

 

这玩意儿技术难度还没有人家写的即时通信工具和直播软件高,人家还要分群聊和私聊、房主和用户啥的,我这一段 UDP 组播代码好几个功能模块直接复制粘贴的......

Reply View the author
depend
deepin
2021-06-15 22:26
#12
忘记、过去

毕业了毕业了......开始进社会挨打了......

 

这玩意儿技术难度还没有人家写的即时通信工具和直播软件高,人家还要分群聊和私聊、房主和用户啥的,我这一段 UDP 组播代码好几个功能模块直接复制粘贴的......

现在直播还是捡现成的,大家都是基于obs再修改

Reply View the author
Cris.Q
deepin
2021-06-16 03:33
#13
忘记、过去

等你上大学做毕设估计就比这个要求高得多了 XD......

不敢,大佬太牛逼了,我十分佩服

Reply View the author