• ubuntu18.04.1LTS 编译安装ffmpeg详解


    一、环境:win10 虚拟机安装的ubuntu系统

     二、下载ffmpeg源码:ffmpeg官网

     进入Download页面,向下拉,找到最新的源码下载:

    2、下载NDK并安装(此步骤也不可以不安装):https://developer.android.google.cn/ndk/downloads/index.html 

    打开profile文件:

    sudo gedit /etc/profile

     在文件末尾添加NDK的路径:

    1. export NDKROOT=/home/zzc/android-ndk-r25b
    2. export PATH=$PATH:$NDKROOT

    继续执行:

    source  /etc/profile

     最后执行:

    ndk-build -v

     出现下图证明NDK配置成功:

     三、ffmpeg的编译安装

    1、将下载压缩包放置到home目录下(放到哪个目录自己定),对压缩包进行解压:

    tar -xvjf ffmpeg-5.1.tar.gz

    2、编译ffmpeg之前首先安装必要的库(这里我安装了全部库):

    sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev libx264-dev libx265-dev libfdk-aac-dev libmp3lame-dev libopus-dev libvpx-dev

    3、设置编译项,首先在命令行中 cd ffmpeg-5.1(解压后的文件夹):prefix制定的参数表示安装完成后库文件和头文件的路径

    (1)最基础的编译项:

    ./configure --enable-shared  --prefix=/usr/local/ffmpeg
    

    (2)增加H264支持(我是用的这个):

    ./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc  --enable-gpl --enable-libx264
    

    附上其它的编译项:

    1. ./configure --enable-shared \
    2. --prefix=/home/hy/ffmpeg-build \
    3. --enable-libx264 \
    4. --enable-libsrt \
    5. --enable-libfdk-aac \
    6. --enable-gpl \
    7. --enable-nonfree \
    8. --enable-libmp3lame \
    9. --enable-libopus \
    10. --enable-libvpx \
    11. --enable-libtheora \
    12. --enable-libvorbis \
    13. --enable-libass \
    14. --enable-pthreads \
    15. --enable-version3 \
    16. --enable-shared \
    17. --enable-librtmp

    4、编译和安装:

    make
    sudo make install

    5、建立软连接:

    1. sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
    2. sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe

    6、配置ffmpeg的环境变量:

    (1)、打开bashrc文件:

    gedit ~/.bashrc

    (2)、在环境的末尾添加环境变量配置项:注意冒号后面的路径,同上面ffmpeg的安装路径一致。

    1. export PATH="$PATH:/usr/local/ffmpeg/bin"
    2. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib"

    (3)、保存文件,然后输入如下命令就配置完成:

    source ~/.bashrc

    (4)、如果可以查询出版本号则安装成功:

    ffmpeg -version

     四、在ubuntu中的QT中编写代码调用ffmpeg的动态库:

    1、ffmpeg的头文件和库文件相对于测试工程的存放路径如下:

     2、打开pro文件,右键---Add Library---ExternalLibrary,添加Linux下的动态库:

     添加完成后如下:

    1. unix:!macx: LIBS += -L$$PWD/ffmpeg/lib/ -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswresample -lswscale
    2. INCLUDEPATH += $$PWD/ffmpeg/include
    3. DEPENDPATH += $$PWD/ffmpeg/include

    3、添加头文件和测试代码:

    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. #include
    4. extern "C" {
    5. #include "libavcodec/avcodec.h"
    6. #include "libavformat/avformat.h"
    7. #include "libswscale/swscale.h"
    8. #include "libavdevice/avdevice.h"
    9. }
    10. MainWindow::MainWindow(QWidget *parent)
    11. : QMainWindow(parent)
    12. , ui(new Ui::MainWindow)
    13. {
    14. ui->setupUi(this);
    15. unsigned version = avcodec_version();
    16. qDebug() << "version :" << version;
    17. }
    18. MainWindow::~MainWindow()
    19. {
    20. delete ui;
    21. }

    可以输出版本号则编译安装成功:

  • 相关阅读:
    phpstudy2018中的mysql命令行,输入root显示这个怎么办
    【服务的主从切换实现原理】
    Spring cloud gateway过滤器学习
    Python实现基于深度学习的图像风格迁移
    消除两个inline-block元素之间的间隔
    如何将 Langfuse 链接到自有 PostgreSQL 数据库并升级 PostgreSQL 版本
    头歌平台——C语言之数学运算强化练习题
    MySQL 慢查询探究分析
    【slam十四讲第二版】【课本例题代码向】【第二讲初识SLAM】【SLAM基础知识】【linux下C++编译】【cmake基础使用】
    11.MySQL多表查询简介
  • 原文地址:https://blog.csdn.net/u012372584/article/details/126683515