Qt/C++源码/实时视音频通话示例/极低延迟/可外网通话/画中画/支持嵌入式板子

一、功能特点

  1. 支持局域网和外网音视频实时通话,延迟极低,资源占用极低。
  2. 自动获取本地所有视音频输入设备,本地摄像头设备自动罗列所有支持的分辨率、帧率、采集格式等信息。
  3. 可以指定采集的视频设备和音频输入设备,自由组合,视频设备可以设置不同的分辨率、帧率、采集格式。
  4. 支持本地桌面屏幕作为视频设备采集,支持多个屏幕,自动识别屏幕分辨率。
  5. 可以选择不同的声卡设备播放声音。
  6. 内置自动重连机制,视音频设备支持热插拔。
  7. 支持固定画中画功能,可交换主画面和浮窗画面,可设置画面左右排列等布局方式。
  8. 可自定义悬浮画面位置,指定左上角、右上角、左下角、右下角、自定义位置和大小。
  9. 内置流媒体服务程序,程序启动后自动启动流媒体服务,自动推拉流。
  10. 视音频流数据支持rtsp/rtmp/http/webrtc等方式拉流,可以直接网页上打开视频画面。
  11. 实时显示本地音频振幅和远程音量振幅,可以分别对输入输出音量设置静音,方便测试。
  12. 支持自定义水印,包括文字和图片水印,支持多个水印,指定任意位置。
  13. 支持不同的视音频设备组合,比如本地摄像头加电脑麦克风而不是摄像头的麦克风,比如本地电脑桌面屏幕加摄像头的麦克风等。
  14. 纯Qt+ffmpeg编写,支持windows和linux以及macos等系统,支持所有Qt版本、所有系统、所有编译器。
  15. 支持嵌入式linux板子和树莓派香橙派等,以及国产linux系统。

二、使用说明

  • 第一步,选择视频输入设备,打开系统设置,从视频输入设备下拉框选择本地的采集设备,可以是本地桌面。
  • 第二步,选择视频输入参数,选择视频设备后,会自动读取该设备对应的参数集合,包括了支持的分辨率、帧率、采集格式等。
  • 第三步,单击应用按钮,将当前选择的视频设备和参数自动转成采集地址填入文本框中。
  • 第四步,选择音频输入设备,单击应用按钮,自动转成采集地址填入文本框中。如果没有音频设备可以跳过。
  • 第五步,填入视频和音频推流地址,如果流媒体服务程序在本地,那就IP地址填本地的就行,在云服务器那就填云服务器的地址。这个地址格式由流媒体服务程序决定。
  • 第六步,选择音频输出设备,也就是声卡设备,可以指定声音在哪个声卡播放。
  • 第七步,填入视频和音频拉流地址,也就是对方推流的地址。
  • 第八步,单击启动服务按钮,会自动启动采集服务、推流服务、拉流服务。可以看到摄像头实时画面和对方的画面,声音有对应振幅显示,可以勾选静音按钮。
  • 第九步,可选,切换悬浮画面布局和设置悬浮画面位置。(0,0,200,150)表示左上角,(0,y,200,150)表示左下角,(x,0,200,150)表示右上角,(x,y,200,150)表示右下角,(100,100,200,150)表示绝对位置。

三、效果图



四、文件地址

  1. 文件地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 名称:bin_video_call.zip
  2. 国内站点:https://gitee.com/feiyangqingyun
  3. 国际站点:https://github.com/feiyangqingyun
  4. 项目大全:https://qtchina.blog.csdn.net/article/details/97565652
相关推荐
丁劲犇34 分钟前
用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
开发语言·c++·qt·tui·字符界面·curse
charlie1145141911 小时前
深入理解Qt的SetWindowsFlags函数
开发语言·c++·qt·原理分析
呜喵王阿尔萨斯1 小时前
编程中的英语
c语言·c++
whoarethenext2 小时前
使用 C++/Faiss 加速海量 MFCC 特征的相似性搜索
开发语言·c++·faiss
醇醛酸醚酮酯3 小时前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt
向阳@向远方4 小时前
第二章 简单程序设计
开发语言·c++·算法
Mr_Xuhhh4 小时前
信号与槽的总结
java·开发语言·数据库·c++·qt·系统架构
liulilittle4 小时前
VGW 虚拟网关用户手册 (PPP PRIVATE NETWORK 基础设施)
开发语言·网络·c++·网关·智能路由器·路由器·通信
ruanjiananquan995 小时前
c,c++语言的栈内存、堆内存及任意读写内存
java·c语言·c++
持梦远方6 小时前
C 语言基础入门:基本数据类型与运算符详解
c语言·开发语言·c++