主线程:UI线程,调用Recorder接口
采集线程:采集到帧后->格式转换/重采样->写进FIFO
编码复用线程:循环从FIFO读取帧->编码->写进文件
VS:推荐VS2017以后的版本
Qt:推荐Qt5.12以后的版本
FFmpeg5.1(项目已包含,生成项目后dll会自动拷贝到exe目录)
我的开发环境
- VS2022
- Qt5.12.9
解决方案支持Debug/Release和Win32/x64
VS+Qt开发环境配置
我的开发环境
- Qt6.2.4
- FFmpeg5.1.2
注意:
目前linux下录音用到了PulseAudio,ffmpeg默认是不支持PulseAudio的,所以要手动编译ffmpeg,./configure
时添加--enable-libpulse
,具体编译参考如下文档
ffmpeg build reference
需要在CMakeLists.txt里修改Qt和FFmpeg的依赖路径
- QT_PATH
- FFMPEG_ROOT_DIR(你编译的ffmpeg根目录)
mkdir build && cd build
cmake ..
make -j4
- 直接用Qt Creator运行
- 命令行启动:
../bin/NanaRecorder
- 画质高,文件小,码率低
- flush编码器
- 支持同时录制扬声器和麦克风
- 支持硬编码