# videoCapture **Repository Path**: xonghanwei/videoCapture ## Basic Information - **Project Name**: videoCapture - **Description**: 视频录制软件 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: capture1.1 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2025-08-12 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 一、项目概述 ### 1.1 项目背景 这是我的第二个音视频项目,主要是学习音视频编解码+音视频传输+图像分析处理等技术,巩固技术栈 ### 1.2 项目功能 1. 支持多输入源叠加、移动、缩放、层级变化、动态开启关闭,支持无音频或无视频录制/推流,不过不建议什么设备都不指定,这样只会输出黑屏静音,并且我没做帧率和采样率的调整 - 视频包括摄像头、桌面和摄像头采集, - 音频包括麦克风、桌面音频采集 2. 支持AMD显卡的硬解码+硬编码,重采样仍需要软件处理,目前只测试了Windows平台,使用的是dshow设备采集,其他设备需要手动配置 3. 编码目前不支持指定帧率和采样率等,固定为30fps和48kHz,输出为H.264和AAC 4. 支持本地录制为mp4,画质没做调整,为了适配推流可能画质一般 5. 支持RTMP推流和RTSP推流,目前在校园网测了单输入源延迟RTMP在600ms~700ms,RTSP在500ms左右,输入源太多,延迟会增加。测试环境为本录屏推流平台+ffplay (nobuffer) + ZLMediaKit服务器,SRS服务器我测试了一下,RTMP延迟会高一点,单输入源在800ms~900ms,可能是我配置没调 6. 支持开启录制、暂停录制、停止录制、显示录制时间功能;推流支持开启推流和停止推流,暂停推流貌似也可以?这个不确定 7. 支持人脸检测,磨皮和美白,不过这个算法我做的不是很好,就是使用opencv自带的正脸和侧脸的分类器,对ROI进行双边滤波和亮度增强,可以动态调整磨皮和美白值的大小。 8. 支持动态调节视频音量大小,指定麦克风和桌面音频的大小。 9. UI 使用QT无边框,支持创建的窗口操作,如缩放,移动,拖拽,最大化,最小化,关闭操作,样式是模仿OBS做的。 ## 二、技术架构 ### 2.1 技术栈 - UI界面:QT5.1.2 - 音视频:FFmpeg 6.0 - 图像处理:OpenCV4.2+ QOpenGL ## 三、UI界面 ![输入图片说明](Pasted%20image%2020250525235840.png) ## 四、推流延迟 RTSP延迟:500ms左右 ![输入图片说明](Pasted%20image%2020250525205753.png) RTMP延迟:700ms左右 ![输入图片说明](Pasted%20image%2020250525205914.png)