文章目录

  • ​​1、安装​​
  • ​​1.1、命令安装​​
  • ​​1.2、安装好后​​
  • ​​1.3、查找头文件和库的位置​​
  • ​​2、pro文件夹加入​​
  • ​​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 install ffmpeg

如果没brew的,请看这篇文章:​​Mac系统命令使用记录​​

此过程较久,需要装很多包:

Qt开发 之 Mac上使用FFmpeg_应用程序

1.2、安装好后

Qt开发 之 Mac上使用FFmpeg_应用程序_02

1.3、查找头文件和库的位置

利用pkg-config查找文件位置。
如果没有这个命令,继续参考:​​Mac系统命令使用记录​​

pkg-config --cflags libavutil  #查找相应头文件
pkg-config --libs libavutil #查找相应库文件

我的电脑的效果:

Qt开发 之 Mac上使用FFmpeg_应用程序_03

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、效果图

Qt开发 之 Mac上使用FFmpeg_ffmpeg_04

5、应用程序包

Qt开发 之 Mac上使用FFmpeg_应用程序_05

6、FFMPEG基本的一些命令

6.1、查看当前可用媒体设备

ffmpeg -f avfoundation -list_devices true -i ""

Qt开发 之 Mac上使用FFmpeg_mac_06

6.2、同时录制音视频

ffmpeg -f avfoundation -r 30 -i 0:0 out.mp4

-r 30是30帧的意思,0:0是 视频索引 :音频索引, out.mp4是指输出的文件,录制好后,按q退出

效果:

Qt开发 之 Mac上使用FFmpeg_头文件_07


Qt开发 之 Mac上使用FFmpeg_ffmpeg_08

6.3、播放视频

视频一般是用h264,音频用的是acc。

Qt开发 之 Mac上使用FFmpeg_qt_09

注意哦,用这种形式生成的mp4。如果默认播放器QuickTime Player无法播放,可以下载vlc player或者用ff自带的ffplayer。

ffplay out.mp4

效果:

Qt开发 之 Mac上使用FFmpeg_应用程序_10

Qt开发 之 Mac上使用FFmpeg_应用程序_11

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、查看视频信息

ffmpeg -i out.mov

Qt开发 之 Mac上使用FFmpeg_qt_12