FFmpeg 的 configure 脚本
./configure --prefix="$FFMPEG_PATH/build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$FFMPEG_PATH/build/include" \ --extra-ldflags="-L$FFMPEG_PATH/build/lib" \ --bindir="$FFMPEG_PATH/build/bin" \ --enable-gpl \ --enable-neon \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree
具体的编译过成可以参看这两篇文章
https://blog.csdn.net/heng615975867/article/details/79388439
https://www.cnblogs.com/candycaicai/p/4689459.html
ps: --enable-neon 可以开启 neon 加速
pro 文件
网上的配置有许多坑,遇到了很多莫名的 undefined reference ... ,所以把自己详细完整的配置发出来,以便其他有类似问题的小伙伴能够少走弯路(ps: 我是编译的支持 aac/x264/x265 的 FFmpeg 静态库)
TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt INCLUDEPATH += /usr/local/include \ /home/lingyun/CodeEnvironments/FFmpeg-master \ /home/lingyun/CodeEnvironments/FFmpeg-master/build/include LIBS += -L/usr/local/lib/ \ -L/home/lingyun/CodeEnvironments/FFmpeg-master/build/lib/ \ -lavformat \ -lavcodec \ -lswscale \ -lavutil \ -lavfilter \ -lpostproc \ -lswresample \ -lavdevice \ LIBS += -L/usr/lib/x86_64-linux-gnu/ -lva -lva-x11 -lva-drm -lxcb -lxcb-shm\ -lxcb -lX11 -lasound -lSDL -lpthread -ltheoraenc -ltheoradec \ -logg -lmp3lame -lfdk-aac -lx264 -lx265 -lvpx \ -lm -lbz2 -lz -lrt -lvorbis -lvorbisenc -lass -llzma \ -lrt -lvdpau SOURCES += \ main.cpp
c++ 文件
#include <iostream> using namespace std; //需要加上 extern "C" extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" } int main() { cout << "Hello Qt FFmpeg!" << endl; av_register_all(); //输出版本号 unsigned version = avcodec_version(); cout << "version is:" << version << endl; return 0; }
执行的结果