当前位置: 首页 > news >正文

ubuntu18.04.1LTS 编译安装ffmpeg详解

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

 二、下载ffmpeg源码:ffmpeg官网

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

 三、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

附上其它的编译项:

./configure --enable-shared \
  --prefix=/home/hy/ffmpeg-build \
  --enable-libx264  \
  --enable-libsrt  \
  --enable-libfdk-aac \
  --enable-gpl \
  --enable-nonfree \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvpx \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libass \
  --enable-pthreads \
  --enable-version3  \
  --enable-shared \
  --enable-librtmp

4、编译和安装:

make
sudo make install

5、建立软连接:

sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe

6、配置ffmpeg的环境变量:

(1)、打开bashrc文件:

gedit ~/.bashrc

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

export PATH="$PATH:/usr/local/ffmpeg/bin"
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下的动态库:

 添加完成后如下:

unix:!macx: LIBS += -L$$PWD/ffmpeg/lib/ -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswresample -lswscale

INCLUDEPATH += $$PWD/ffmpeg/include
DEPENDPATH += $$PWD/ffmpeg/include

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

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>

extern "C" {

#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavdevice/avdevice.h"
}

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    unsigned version = avcodec_version();
    qDebug() << "version :" << version;
}

MainWindow::~MainWindow()
{
    delete ui;
}

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

相关文章:

  • 接口幂等问题:redis分布式锁解决方案
  • 算法与数据结构(第一周)——线性查找法
  • 修改docker 修改容器配置
  • ARM汇编语言
  • 【通信】非正交多址接入(NOMA)和正交频分多址接入(OFDMA)的性能对比附matlab代码
  • 深入理解控制反转IOC和依赖注入
  • micropython 可视化音频 频谱解析(应该是全网首家)(预告,还没研究完成)
  • 网课答案接口平台 系统独立后台
  • stp基本介绍
  • 公众号如何接入查题功能
  • IDC_ISP网络之IDC机房内网络架构及配置
  • ROS1云课→17化繁为简stdr和f1tenth
  • R-CNN(Regions with CNN features)
  • LeetCode 387---First Unique Character in a String
  • 《OpenDRIVE1.6规格文档》1
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • css系列之关于字体的事
  • Elasticsearch 参考指南(升级前重新索引)
  • IP路由与转发
  • jdbc就是这么简单
  • js作用域和this的理解
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python 反序列化安全问题(二)
  • Redux 中间件分析
  • 从输入URL到页面加载发生了什么
  • 搞机器学习要哪些技能
  • 机器学习学习笔记一
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 码农张的Bug人生 - 见面之礼
  • 前端技术周刊 2019-02-11 Serverless
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用parted解决大于2T的磁盘分区
  • 使用SAX解析XML
  • 突破自己的技术思维
  • 移动端 h5开发相关内容总结(三)
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #控制台大学课堂点名问题_课堂随机点名
  • #数学建模# 线性规划问题的Matlab求解
  • %check_box% in rails :coditions={:has_many , :through}
  • ()、[]、{}、(())、[[]]命令替换
  • (04)odoo视图操作
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (超详细)语音信号处理之特征提取
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (四)linux文件内容查看
  • (算法)N皇后问题
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)jQuery 基础
  • (转)重识new