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

ffmpeg最新5.1.6版本源码安装

一、编译安装需要的开源编码格式:

首先在编译安装这些开源编码格式之前,我们要明白为啥需要他们:

  • aac
  • x264
  • x265

为啥需要呢?如果你对ffmpeg稍微了解的话,ffmpeg本身是一个框架,自身默认并没有支持这三种编码格式,所以需要我们手动添加来支持!

ok,明白了这个之后,我们开始来下载这三个开源编码格式源码包:

1、编译aac:

aac下载链接:

wget https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.2.tar.gz

开始编译

./configure --prefix=/usr/local/ffmpeg/ --enable-shared
make -j8 && make install

这里我把编译出来的东西都放在/usr/local/ffmpeg/,而且这里只编译动态库出来;大家按照上面两个步骤操作就行。

最终编译出来的动态库,就放在/usr/local/ffmpeg/lib下面,头文件在/usr/local/include下面。

2、 编译x264:

x264下载链接:

wget http://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20191024-2245-stable.tar.bz2

开始编译:

./configure  --prefix=/usr/local/ffmpeg --enable-static --enable-pic
make -j8 && make install

这里把编译出来的东西同样放在路径/usr/local/ffmpeg,而且编译的是静态库。

注意:这里你第一次安装的话,会报错nasm版本过低,这个时候你要重新下载nasm源码安装编译

这里我给大家nasm的安装步骤;首先是nasm的下载链接:

wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2

编译步骤: 

./configure
make -j8 && make install

ok,这个操作就比较简单,你按照这个操作就行;第一次安装x264的话,通过重新安装nasm,是可以解决报错的,然后我们接着来安装x264。

3、编译x265:

x265下载链接:

wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.tar.gz

编译步骤: 

cd x265_3.2/build/linux/
./make-Makefiles.bash
make -j8 && make install

刚开始大家采用模式安装到/usr/local/目录下了,我们可以结合情况修改安装路径或者将对应的动态库拷贝制定的路径下/usr/local/ffmpeg,x265编译出来的库和头文件默认分别放在/usr/local/lib和/usr/local/include路径下!

二、最新ffmpeg源码编译安装

这里我们用gitte上的源码,github上的下载会有点慢,或者可以自己下载安装包(ffmpeg下载)

git clone https://gitee.com/mirrors/ffmpeg/

然后开始编译:

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-version3 --enable-nonfree --enable-pthreads --enable-libx264 --enable-libx265 --enable-libfdk-aacmake -j8 && make install

我们就是手动把aac、x264、x265编码格式给强制打开,这里也提一下其他enable的作用:

  • –enable-pthreads:启用pthreads(多线程)(默认关闭,可能会有线程安全问题)
  • –enable-gpl:允许使用GPL(默认关闭)
  • –enable-shared :构建共享库(默认关闭)
  • –enable-version3:升级GPL到版本3(默认:关闭)
  • –enable-nonfree:允许使用非免费的代码, 产生的库和二进制程序将是不可再发行的
  • –prefix=/usr/local/ffmpeg:把ffmpeg编译出来的东西都放在这个路径下去

我们发现找不到libfdk_aac,那怎么解决呢,问题出在找不到它路径,所以我们配置一下环境变量:

vim ~/.bashrc

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig"

然后退出,执行一下source ~/.bashrc使其生效。为什么我们这里要这样操作,这里主要通过下面这个里面fdk-aac.pc这个文件去定位fdk-aac。

这个时候再执行刚才的那个配置,就可以解决这个问题,如果后期遇到类似的问题,都可以参考这种方法去解决,核心是要找到你编译出来的.pc后缀对应的文件就行:

这里也配置一下环境变量:

vim /etc/profile修改后生效指令
souce /etc/profile
export PATH="$PATH:/usr/local/ffmpeg/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib"

这个时候,我就可以在任何终端路径查看ffmpeg的版本了:

ffmpeg -version

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 邻接表的具体实例
  • Linux简单介绍(1)
  • CVPR 2024论文分享┆LMDrive:基于大模型的闭环端到端自动驾驶
  • 【Unity3D小技巧】Unity3D中实现对InputField的自定义输入限制实例
  • [数据集][目标检测]铁轨缺陷检测数据集VOC+YOLO格式4020张4类别
  • 埃筛C++写法
  • BUUCTF PWN wp--pwn1_sctf_2016
  • 区块链的搭建与运维4
  • 【数据库】MySQL表的约束
  • QT-贪吃蛇小游戏
  • 【自动化】一共获取6600多公司信息【逆向】一页15还加密。
  • S7通信协议从入门到精通_1_Sharp7(C#)类编写西门子 S7系列 plc驱动程序(扩展C++语言)
  • springCloud 网关(gateway)配置跨域访问
  • MyBatis中的#{}和${}区别、ResultMap使用、MyBatis常用注解方式、MyBatis动态SQL
  • spark全面个人总结(20个面试点)非网文 持续更新中
  • 分享一款快速APP功能测试工具
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • download使用浅析
  • GraphQL学习过程应该是这样的
  • Java超时控制的实现
  • js继承的实现方法
  • php ci框架整合银盛支付
  • Python 基础起步 (十) 什么叫函数?
  • Vue小说阅读器(仿追书神器)
  • 百度小程序遇到的问题
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 构建二叉树进行数值数组的去重及优化
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 用jQuery怎么做到前后端分离
  • 正则表达式
  • NLPIR智能语义技术让大数据挖掘更简单
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (1)常见O(n^2)排序算法解析
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (ibm)Java 语言的 XPath API
  • (javascript)再说document.body.scrollTop的使用问题
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (六)Hibernate的二级缓存
  • (六)软件测试分工
  • (四)stm32之通信协议
  • (算法)Travel Information Center
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)socket Aio demo
  • (转载)Linux 多线程条件变量同步
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .Net语言中的StringBuilder:入门到精通
  • ::前边啥也没有