项目前准备,我的FFmpeg整个目录是放在和项目文件夹同级
1、在QT项目中集成FFmpeg。
主要是在.pro项目文件中把FFmpeg的include路径和lib库的路径添加就可以了。代码如下:
win32 {
FFMPEG_HOME = ../ffmpeg-4.2.1-win32-dev
}
INCLUDEPATH += $${FFMPEG_HOME}/include
LIBS += -L$${FFMPEG_HOME}/lib \
-lavdevice \
-lavformat \
-lavutil
2、在MainWindow中拖入一个按钮,并转为槽
(其实就是相当于其他开发的监听按钮的点击事件)
//录音按钮
/*
* 命令行录音:ffmpeg -f dshow -i audio="设备名" out.wav
* 修改录音参数:ffmpeg -f dshow -sample_rate 15000 -sample_size 16 -channels 2 -i audio="设备名" out.wav
*/
/*
代码录音的逻辑
1、注册设备
2、获取输入格式对象
3、打开设备
4、采集数据
5、释放资源
*/
void MainWindow::on_recorButton_clicked()
{
//点击了 开始录音
if(!_recordThread){
//创建并启动线程
_recordThread = new RecordThread(this);
_recordThread->start();
//监听线程异常退出的情况
connect(_recordThread,&RecordThread::finished,
[this](){
_recordThread = nullptr;