Qt开发 之 Mac上使用FFmpeg
原创
©著作权归作者所有:来自51CTO博客作者wx635f8a025188b的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- 1.1、命令安装
- 1.2、安装好后
- 1.3、查找头文件和库的位置
- 2.1、添加ffmpeg头文件和库
- 2.2、修改输出路径
- 3、源文件中写入ffmpeg要做的事
- 4、效果图
- 5、应用程序包
- 6、FFMPEG基本的一些命令
- 6.1、查看当前可用媒体设备
- 6.2、同时录制音视频
- 6.3、播放视频
- 6.4、生成指定格式的视频
- 6.5、查看视频信息
1、安装
1.1、命令安装
如果没brew的,请看这篇文章:Mac系统命令使用记录
此过程较久,需要装很多包:
1.2、安装好后
1.3、查找头文件和库的位置
利用pkg-config查找文件位置。
如果没有这个命令,继续参考:Mac系统命令使用记录
pkg-config --cflags libavutil #查找相应头文件
pkg-config --libs libavutil #查找相应库文件
我的电脑的效果:
2、pro文件夹加入
2.1、添加ffmpeg头文件和库
mac上这么加
macx {
message("- macx -")
# ffmpeg
INCLUDEPATH += -I /usr/local/Cellar/ffmpeg/4.3.1_9/include
LIBS += -L /usr/local/Cellar/ffmpeg/4.3.1_9/lib -lavutil -lavcodec -lavfilter -lavformat -lswscale
}
2.2、修改输出路径
# 输出主程序路径
CONFIG(debug, debug|release){
DESTDIR =$$PWD/bin_debug
} else {
DESTDIR =$$PWD/bin_release
}
3、源文件中写入ffmpeg要做的事
这里我简单的让他打印一下 log
#include <QApplication>
//由于ffmpeg是c开发的,所以需要加上extern "C" 关键字
extern "C"{
#include "libavutil/log.h"
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
av_log_set_level(AV_LOG_DEBUG); //设置日志级别
av_log(nullptr, AV_LOG_DEBUG, "hello_ffmpeg"); //打印日志
return a.exec();
}
4、效果图
5、应用程序包
6、FFMPEG基本的一些命令
6.1、查看当前可用媒体设备
ffmpeg -f avfoundation -list_devices true -i ""
6.2、同时录制音视频
ffmpeg -f avfoundation -r 30 -i 0:0 out.mp4
-r 30是30帧的意思,0:0是 视频索引 :音频索引, out.mp4是指输出的文件,录制好后,按q退出
效果:
6.3、播放视频
视频一般是用h264,音频用的是acc。
注意哦,用这种形式生成的mp4。如果默认播放器QuickTime Player无法播放,可以下载vlc player或者用ff自带的ffplayer。
效果:
6.4、生成指定格式的视频
mac上生成60帧,1920x1080分辨率,yuv420p的视频
ffmpeg -f avfoundation -r 60 -video_size 1920x1080 -i 0:0 -pix_fmt yuv420p -y out.mov
6.5、查看视频信息