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
相关推荐
2501_9153738837 分钟前
Java调用C++教程:JNI与JNA两种方式详解
java·开发语言·c++
脱离语言42 分钟前
麒麟v10,arm64架构,编译安装Qt5.12.8
qt·麒麟系统
LuckyRich11 小时前
【cpp-httplib】 安装与使用
c++·http
中微子1 小时前
从C++看JavaScript闭包:执行上下文与作用域的跨语言对比
前端·c++
希望_睿智1 小时前
实战设计模式之建造者模式
c++·设计模式·架构
@曲终2 小时前
C++:栈帧、命名空间、引用
java·开发语言·c++·经验分享·笔记
強云2 小时前
原子操作(C++)
c++
敲代码的瓦龙2 小时前
C++?多态!!!
c语言·开发语言·c++·windows·后端
我不是程序猿儿2 小时前
【C++】C++面向对象设计的核心思想之一: 接口抽象、解耦和可扩展性
java·开发语言·c++
~山有木兮3 小时前
new和delete的理解
c++·算法