Ubuntu 下配置 Qt 的 FFmpeg 的开发环境
        【摘要】 
                    FFmpeg 的 configure 脚本 
./configure --prefix="$FFMPEG_PATH/build" \--pkg-config-flags="--static" \--extra-cflags="-I$FFMPEG_PATH/build/include" \--extra-ldflags="-L$FFMPE...
    
    
    
    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;
     
    
- 
    
     
    
    
     
      }
     
    
 执行的结果

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。
原文链接:panda1234lee.blog.csdn.net/article/details/89203919
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)