引言
FFmpeg
是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它采用了LGPL或GPL许可证,并提供了录制、转换以及流化音视频的完整解决方案。 FFmpeg包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。此外,FFmpeg还包含了许多其他的模块库,如AVFormat、AVFilter、AVDevice、AVUtil等,这些模块库提供了丰富的音视频处理功能,包括封装和解封装、编码与解码、滤镜处理等。 FFmpeg不仅在Linux平台下开发,还可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。它支持多种媒体格式的封装和解封装,多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换等。此外,FFmpeg还提供了多种插件模块,方便开发者进行扩展和定制。 除了作为一个强大的音视频编解码工具外,FFmpeg还提供了一个名为ffplay的播放器,可以播放各种媒体文件或者流。ffplay是对FFmpeg进行源代码编译后生成的可执行程序,和ffmpeg充当的角色相同。总的来说,FFmpeg是一款功能强大的多媒体处理工具和开发套件,它可以为开发者提供丰富的音视频处理调用接口,同时也可以轻易地实现多种视频格式之间的相互转换,具有非常广泛的应用场景。
一、下载
可参考如下链接 (根据自己的'系统'和'编译器'下载对应版本的FFmpeg)
:
FFmpeg官网:https://www.ffmpeg.org/
FFmpeg开发入门:FFmpeg+Qt环境配置https://blog.csdn.net/m0_37251750/article/details/129499002
FFmpeg开发笔记(一):ffmpeg介绍、windows开发环境搭建(mingw和msvc,无需源码编译):https://blog.csdn.net/qq21497936/article/details/104071063
QT 配置FFmpeg:https://blog.csdn.net/qq_58136559/article/details/135735802
二、配置
-
pro文件
:配置头文件路径和lib,会在程序编译时使用
# ffmpeg
FFmpegPATH = $$PWD/ffmpeg-master-latest-win64-gpl-shared
INCLUDEPATH += $${FFmpegPATH}/include
LIBS += -L$${FFmpegPATH}/lib \
-lavcodec \
-lavdevice \
-lavfilter \
-lavformat \
-lavutil \
-lpostproc \
-lswscale
extern "C"{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavdevice/avdevice.h>
#include <libavutil/avutil.h>
}
-
- 添加
动态链接库 dll
:程序运行时会用到,这里直接将dll拷贝到exe同目录下
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9348d762aeb04de5862dc2ce1b2ac58f.png)
(不添加不会报找不到dll的错,但是程序会异常退出
)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ec1e4fe1782843388fb4e5d6c3ef028c.png)
三、测试
- 输出版本号:
qDebug() <<"FFmpeg的版本号:"<< avcodec_version();
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/26ddf4caf6b04975b76fc1661b3aa172.png)
- 输出配置信息:
qDebug() <<"FFmpeg的配置信息:"<< avcodec_configuration();
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d133d914a6b84166bc7ffe6c0e6365f3.png)