Qt/C++源码/实时视音频通话示例/极低延迟/可外网通话/画中画/支持嵌入式板子
一、功能特点
- 支持局域网和外网音视频实时通话,延迟极低,资源占用极低。
- 自动获取本地所有视音频输入设备,本地摄像头设备自动罗列所有支持的分辨率、帧率、采集格式等信息。
- 可以指定采集的视频设备和音频输入设备,自由组合,视频设备可以设置不同的分辨率、帧率、采集格式。
- 支持本地桌面屏幕作为视频设备采集,支持多个屏幕,自动识别屏幕分辨率。
- 可以选择不同的声卡设备播放声音。
- 内置自动重连机制,视音频设备支持热插拔。
- 支持固定画中画功能,可交换主画面和浮窗画面,可设置画面左右排列等布局方式。
- 可自定义悬浮画面位置,指定左上角、右上角、左下角、右下角、自定义位置和大小。
- 内置流媒体服务程序,程序启动后自动启动流媒体服务,自动推拉流。
- 视音频流数据支持rtsp/rtmp/http/webrtc等方式拉流,可以直接网页上打开视频画面。
- 实时显示本地音频振幅和远程音量振幅,可以分别对输入输出音量设置静音,方便测试。
- 支持自定义水印,包括文字和图片水印,支持多个水印,指定任意位置。
- 支持不同的视音频设备组合,比如本地摄像头加电脑麦克风而不是摄像头的麦克风,比如本地电脑桌面屏幕加摄像头的麦克风等。
- 纯Qt+ffmpeg编写,支持windows和linux以及macos等系统,支持所有Qt版本、所有系统、所有编译器。
- 支持嵌入式linux板子和树莓派香橙派等,以及国产linux系统。
二、使用说明
- 第一步,选择视频输入设备,打开系统设置,从视频输入设备下拉框选择本地的采集设备,可以是本地桌面。
- 第二步,选择视频输入参数,选择视频设备后,会自动读取该设备对应的参数集合,包括了支持的分辨率、帧率、采集格式等。
- 第三步,单击应用按钮,将当前选择的视频设备和参数自动转成采集地址填入文本框中。
- 第四步,选择音频输入设备,单击应用按钮,自动转成采集地址填入文本框中。如果没有音频设备可以跳过。
- 第五步,填入视频和音频推流地址,如果流媒体服务程序在本地,那就IP地址填本地的就行,在云服务器那就填云服务器的地址。这个地址格式由流媒体服务程序决定。
- 第六步,选择音频输出设备,也就是声卡设备,可以指定声音在哪个声卡播放。
- 第七步,填入视频和音频拉流地址,也就是对方推流的地址。
- 第八步,单击启动服务按钮,会自动启动采集服务、推流服务、拉流服务。可以看到摄像头实时画面和对方的画面,声音有对应振幅显示,可以勾选静音按钮。
- 第九步,可选,切换悬浮画面布局和设置悬浮画面位置。(0,0,200,150)表示左上角,(0,y,200,150)表示左下角,(x,0,200,150)表示右上角,(x,y,200,150)表示右下角,(100,100,200,150)表示绝对位置。
三、效果图
四、文件地址
- 文件地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 名称:bin_video_call.zip
- 国内站点:https://gitee.com/feiyangqingyun
- 国际站点:https://github.com/feiyangqingyun
- 项目大全:https://qtchina.blog.csdn.net/article/details/97565652