一、操作系统介绍
Linux系统: ubuntu18.04 64位
Android系统: Android 8.1/9.0
windows系统: win10
QT版本: 5.12
FFMPEG版本: 4.2.2
NDK:R19C
声卡: win10 电脑自带声卡、罗技USB摄像头声卡、Android手机自带声卡都可以获取声音数据 摄像头: 手机摄像头、罗技USB摄像头
二、需求与代码实现
通过QT代码获取摄像头与声卡数据,通过ffmpeg编码为视频存储到本地。
代码里可以选择视频声音的来源: 自动生成的声音和来自声卡的声音。
代码里声音采集、视频采集、视频编码都是独立线程。
在自己设备上需要注意采集的声音配置必须与FFMPEG编码的声音参数一样,否则录制的声音无法正常播放。
三、具体代码
mainwindow.cpp代码: 主界面
#include "mainwindow.h"
#include "ui_mainwindow.h"
/*
* 设置QT界面的样式
*/
void MainWindow::SetStyle(const QString &qssFile) {
QFile file(qssFile);
if (file.open(QFile::ReadOnly)) {
QString qss =