Ubuntu 下配置 Qt 的 FFmpeg 的开发环境

举报
ShaderJoy 发表于 2021/12/31 23:03:18 2021/12/31
【摘要】 FFmpeg 的 configure 脚本 ./configure --prefix="$FFMPEG_PATH/build" \--pkg-config-flags="--static" \--extra-cflags="-I$FFMPEG_PATH/build/include" \--extra-ldflags="-L$FFMPE...

FFmpeg 的 configure 脚本


  
  1. ./configure --prefix="$FFMPEG_PATH/build" \
  2. --pkg-config-flags="--static" \
  3. --extra-cflags="-I$FFMPEG_PATH/build/include" \
  4. --extra-ldflags="-L$FFMPEG_PATH/build/lib" \
  5. --bindir="$FFMPEG_PATH/build/bin" \
  6. --enable-gpl \
  7. --enable-neon \
  8. --enable-libass \
  9. --enable-libfdk-aac \
  10. --enable-libfreetype \
  11. --enable-libmp3lame \
  12. --enable-libtheora \
  13. --enable-libvorbis \
  14. --enable-libvpx \
  15. --enable-libx264 \
  16. --enable-libx265 \
  17. --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 静态库) 


  
  1. TEMPLATE = app
  2. CONFIG += console
  3. CONFIG -= app_bundle
  4. CONFIG -= qt
  5. INCLUDEPATH += /usr/local/include \
  6. /home/lingyun/CodeEnvironments/FFmpeg-master \
  7. /home/lingyun/CodeEnvironments/FFmpeg-master/build/include
  8. LIBS += -L/usr/local/lib/ \
  9. -L/home/lingyun/CodeEnvironments/FFmpeg-master/build/lib/ \
  10. -lavformat \
  11. -lavcodec \
  12. -lswscale \
  13. -lavutil \
  14. -lavfilter \
  15. -lpostproc \
  16. -lswresample \
  17. -lavdevice \
  18. LIBS += -L/usr/lib/x86_64-linux-gnu/ -lva -lva-x11 -lva-drm -lxcb -lxcb-shm\
  19. -lxcb -lX11 -lasound -lSDL -lpthread -ltheoraenc -ltheoradec \
  20. -logg -lmp3lame -lfdk-aac -lx264 -lx265 -lvpx \
  21. -lm -lbz2 -lz -lrt -lvorbis -lvorbisenc -lass -llzma \
  22. -lrt -lvdpau
  23. SOURCES += \
  24. main.cpp

c++ 文件


  
  1. #include <iostream>
  2. using namespace std;
  3. //需要加上 extern "C"
  4. extern "C"
  5. {
  6. #include "libavcodec/avcodec.h"
  7. #include "libavformat/avformat.h"
  8. #include "libswscale/swscale.h"
  9. #include "libavdevice/avdevice.h"
  10. }
  11. int main()
  12. {
  13. cout << "Hello Qt FFmpeg!" << endl;
  14. av_register_all();
  15. //输出版本号
  16. unsigned version = avcodec_version();
  17. cout << "version is:" << version << endl;
  18. return 0;
  19. }

执行的结果 

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。

原文链接:panda1234lee.blog.csdn.net/article/details/89203919

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。