引言
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同目录下 (不添加不会报找不到dll的错,但是程序会异常退出
)
三、测试
输出版本号:qDebug() <<"FFmpeg的版本号:"<< avcodec_version();
输出配置信息:qDebug() <<"FFmpeg的配置信息:"<< avcodec_configuration();