ffmpeg最新5.1.6版本源码安装

news2024/9/22 15:46:09

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

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

  • 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-aac

make -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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 后台管理系统项目 前端部分

这里写目录标题 1 创建Vue3项目1.1 相关链接1.2 Vue Router1.3 Element1.4 scss1.5 mitt1.6 axios1.7 echarts1.8 配置vite.config.js 2 CSS部分2.1 样式穿透2.2 :style :在样式中使用插值语法 3. ElementUI3.1 rules: 数据验证3.2 修改element.style中的…

《计算机网络-期末模拟卷》

一、分析题(每题 6 分,共 36 分) 1.请分析图 1-1 所展示的是哪种互联网接入技术,分析此接入技术的优势,并介绍你所了解的其他互联网接入技术。(至少写 3 个) 二、计算问答题(每题 5…

docker应用

打包传输 1.将镜像打包 #查看帮助文件 docker --help #找到save,可以将镜像保存为一个tar包 docker save --help #查看save使用方式 #查看现有的镜像 docker images # docker save --output centos.tar centos:latest ls ...centos.tar... 可以将tar发送给其他用户…

JS基础进阶3-DOM事件

DOM事件流 一、定义 DOM事件流指的是从页面接收事件的顺序。这个路径包括了事件的捕获阶段、目标阶段和冒泡阶段。 图片来源黑马pink老师PPT 二、事件流阶段 DOM事件流涉及三个主要阶段: 捕获阶段(Capturing Phase): 事件从…

QtChart1-基础入门

Qt Charts概述 Qt Charts模块是一组易于使用的图标组件,它基于Qt的Graphice View架构,其核心组件是QChartView和QChart。QChartView的父类是QGraphicsView,就是Graphics View架构中的视图组件,所以,QChartView是用于显…

Apollo9.0 PNC源码学习之Planning模块—— Lattice规划(六):横纵向运动轨迹评估

参考文章: (1)Apollo6.0代码Lattice算法详解——Part6:轨迹评估及碰撞检测对象构建 (2)自动驾驶规划理论与实践Lattice算法详解 0 前言 横纵向运动轨迹的评估,主要通过构建定点巡航和定点停车两个场景下,对纵向运动参考速度、加速度、加加速度的大小进行检验和过滤,然…

Vue3源码调试-第一篇

前言 相信大家在前端从业生涯中都会被问到过,有了解过Vue源码吗?我是没有的,所以今天就来读好吧,浅浅读一下,顺便记录一下。 那究竟怎么读,从哪里读,我就不啰嗦了,直接给大家一个链…

python dash框架 油气田可视化软件设计文档

V1.1:机器学习框架(神经网络) 时间范围优化 表格布局优化 添加前端设计元素布局 V1.0:基础布局和对应计算函数 要求 首先第一部分是通过神经网络预测天然气流量,其中输入开始时间和截止时间是为了显示这一段时间内的天然气流量预测结果 第二部分&…

小型空气净化器可以除猫毛吗?宠物空气净化器评测推荐

前段时间我有个病人,诊断出来肺结节,他第一反应就是说他家养着好几只猫,会不会是吸入宠物毛发导致的肺结节。有些结节确实跟宠物有关系,如果是对毛发过敏、或者是对排泄物过敏,养宠物就会增加患结节的概率。不过就算是…

推荐一款AI智能编程助手CodeGeeX

最近,使用了一款AI智能编程助手CodeGeeX,感觉还不错,推荐给大家。 官网地址:https://codegeex.cn/ 一、安装教程 IDEA中安装插件:https://codegeex.cn/downloadGuide#idea VSCode中安装插件:https://codege…

八股(5)——数据库

八股(5)——数据库 4.1 数据库基础什么是数据库, 数据库管理系统, 数据库系统, 数据库管理员?什么是元组, 码, 候选码, 主码, 外码, 主属性, 非主属性?主键和外键有什么区别?为什么不推荐使用外键与级联?什么是 ER 图&#xff1…

TD学习笔记————中级教程总结(中)

目录 四、生成艺术 问题: CHOP TO放置后直接报错 附着不上线 五、Python Lists 与 Python Dictionaries 问题: 使用for的格式要求 显示numRows错误 List中表格定义报错 六、Replicate 与 Instance 问题: 传递处理好的噪音后不变化 Renderpass区分线和字时不起作用…

安科瑞智能物联网关:重塑能源管理新纪元,远程智控尽在“掌”握

在数字化转型浪潮中,能源管理与工业自动化领域正经历着前所未有的变革。安科瑞智能物联网关-智能通信管理机不仅重新定义了智能监控与保护装置的通信管理模式,更为能源数据采集与远程控制提供了前所未有的高效解决方案。 安科瑞智能物联网关&#xff0c…

qt开发环境搭建Qt Creator并创建Demo项目

一 Qt Creator工具下载:工具下载链接: Index of /archive/online_installers/4.8 (qt.io) 下载后点击安装,没有账号得先注册一个账号,如下图,然后点击下一步 随便填点,我填"abc",然…

Unity读取Android本地图片

unity读取Android本地图片 一、安卓读取路径 安卓路径:“file:///storage/emulated/0/”自己图片的路径 例:“file:///storage/emulated/0/small.jpg” 二、unity搭建 使用UI简单搭个界面 三、新建一个脚本 代码内容如下 using System.Collectio…

Android自定义简单TextView

自定义属性 <declare-styleable name"TextView"><!--name 属性名称format 格式&#xff1a;string 文字 color颜色dimension 宽高 字体大小 integer数字reference 资源引用(drawable)--><attr name"YiRanText" format"string"/&…

Sora:视频生成模型

​2024年2月16日&#xff0c;OpenAI 在其官网上面正式宣布推出文本生成视频的大模型 Sora: openai.com/sora Sora的能力 Sora是生成视频为主要能力的模型&#xff0c;能够&#xff1a; 1. 文/图生成视频 openai sora文生视频案例&#xff1a; Prompt: Historical footage of…

自动化立体仓库设施及设备:汇总总结

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于自动化立体仓库的详细介绍&#xff0c;包括其分类、系统组成、基本设施…

SylixOS 网卡混杂模式和组播模式

基本概念 混杂模式&#xff1a; Promiscuous mode&#xff0c;是电脑网络中的术语。是指一台机器的网卡能够接收所有经过它的数据流&#xff0c;而不论其目的地址是否是它。 一般计算机网卡都工作在非混杂模式下&#xff0c;此时网卡只接受来自网络端口的目的地址指向自己的…

《征服数据结构》LRU缓存

摘要&#xff1a; 1&#xff0c;LRU的介绍 2&#xff0c;LRU元素的添加 3&#xff0c;LRU元素的读取 4&#xff0c;LRU完整代码实现 1&#xff0c;LRU的介绍 LRU(Least Recently Used)最近最少使用&#xff0c;它是一种缓存淘汰策略。也就是说在缓存容量满的时候&#xff0c;我…