Ubuntu22.04源码安装ffmpeg

news2024/9/9 1:28:27

Ubuntu22.04源码安装ffmpeg

1.下载ffmpeg的源码包

wget https://ffmpeg.org/releases/ffmpeg-7.0.1.tar.xz

解压:

tar -xvf ffmpeg-7.0.1.tar.xz

2.安装基本编译构建工具

sudo apt-get install gcc g++ cmake make pkgconf -y

3.编译ffmpeg

进入解压后的ffmpeg源码目录,目录中有一个名为configure的shell脚本,通过该shell脚本可以配置ffmpeg的安装位置以及需要安装的ffmpeg组件,这里选择将ffmpeg安装到~/util/ffmpeg/,使用的命令如下:

mkdir -p ~/util/ffmpeg/lib
./configure --prefix="/home/cat/util/ffmpeg" --enable-gpl --enable-nonfree --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --extra-cflags=-I/home/cat/util/ffmpeg/include --extra-ldflags=-L/home/cat/util/ffmpeg/lib

在安装时可能显示缺失某些依赖包:

nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

解决方案:下载yasm源码并解压,编译yasm源码

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install
export PATH=$PATH:/home/cat/util/ffmpeg/bin

ERROR: libfdk_aac not found

解决方案:下载fdk_aac源码并编译

wget https://zenlayer.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-2.0.3.tar.gz
tar -zxvf fdk-aac-2.0.3.tar.gz
cd fdk-aac-2.0.3/
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install
export PKG_CONFIG_PATH=/home/cat/util/ffmpeg/lib/pkgconfig/

某些情况下可能已经编译好了ffmpeg的依赖包,但是编译ffmpeg时依然找不到对应的包,此时可以尝试执行rm -f ffbuild/config.log命令并重新构建ffmpeg

ERROR: libmp3lame >= 3.98.3 not found

解决方案:下载对应的源码包并编译

wget https://zenlayer.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar -zxvf lame-3.100.tar.gz
cd lame-3.100/
./configure --enable-shared --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install

ERROR: speex not found using pkg-config

wget https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.1.tar.gz
tar -zxvf speex-1.2.1.tar.gz
cd speex-1.2.1/
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install

ERROR: x264 not found using pkg-config

wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar -jxvf x264-master.tar.bz2
cd x264-master/
./configure --prefix=/home/cat/util/ffmpeg/ --disable-asm --enable-static --enable-shared
make -j16
sudo make install

ERROR: x265 not found using pkg-config

wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.tar.gz
tar -zxvf x265_3.2.tar.gz
cd x265_3.2/build/linux
./make-Makefiles.bash
make -j16
sudo make install

4.安装ffmpeg

执行ffmpeg的安装脚本,如果输出如下,表示依赖安装完成,可以编译并安装ffmpeg

install prefix            /home/cat/util/ffmpeg
source path               .
C compiler                gcc
C library                 glibc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
standalone assembly       yes
x86 assembler             yasm
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
......

在编译并安装ffmpeg之前,先下载并编译SDL源码,因为ffplay依赖于SDL

wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.30.5.tar.gz
tar -zxvf release-2.30.5.tar.gz
cd SDL-release-2.30.5
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install

进入ffmpeg源码目录

make -j16
sudo make install

5.将ffmpeg程序目录添加到PATH

sudo vim /etc/profile,在profile文件末尾添加export PATH="/home/cat/util/ffmpeg/bin/:$PATH",将/home/cat/util/ffmpeg/bin/替换为ffmpeg的安装目录

sudo vim /etc/ld.so.conf,在ld.so.conf文件末尾添加库文件路径/home/cat/util/ffmpeg/lib,执行ldconfig命令

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

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

相关文章

Springboot手工艺品交易平台—计算机毕业设计源码11541

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对手工艺品交易平台等问题,对手工…

办公人导航-一个资源丰富的网站

办公人导航是一个资源丰富的网站,旨在为办公人员提供各种优质资源和工具,以提高工作效率和生活质量。 ★★★★★办公人导航:https://www.bgrdh.com/ 这个网站涵盖了以下几个方面: 综合性的导航平台:办公人导航集成了…

机械学习—零基础学习日志(高数15——函数极限性质)

零基础为了学人工智能,真的开始复习高数 这里我们将会学习函数极限的性质。 唯一性 来一个练习题: 再来一个练习: 这里我问了一下ChatGPT,如果一个值两侧分别趋近于正无穷,以及负无穷。理论上这个极限值应该说是不存…

虹科技术前沿 | TSN网络中时间感知整形器的性能验证实测

来源:虹科技术前沿 | TSN网络中时间感知整形器的性能验证实测 原文链接:https://mp.weixin.qq.com/s/h3hTRAAEVN42DjDRifGxnA 欢迎关注虹科,为您提供最新资讯! #时间敏感网络 #TSN #时间感知整形器 导读 本文旨在验证时间敏感…

vscode搭建rust开发环境

由于rustrover不是免费的,此处教学搭建一套基于vscode的rust开发环境,可运行,可调式 1.下载vscode1.91.1 Download Visual Studio Code - Mac, Linux, Windows 2.下载插件 打开网站下载插件 rust-analyzer-0.4.2049、vscode-lldb-1.10.0、…

SQL数据库如何修改表中栏位的长度

1.问题 已经建立的表中MEMO 栏位原来长度是20,随着使用需要将MEMO长度调整为200; 即 MEMO VARCHAR(20) → MEMO VARCHAR(200) 2.修改办法 -- ALTER TABLE 表名 ALTER COLUMN 栏位名字 类型(长度);ALTER T…

java通过poi解析word入门

文章目录 介绍一、了解word docx文档的结构二、引入POI的依赖三、解析Word文档常用API加载Word文档获取文档整体结构获取文档中的段落获取文档中的表格获取文档中的脚注 四、解析Word中的段落示例五、读取Word文档并遍历图片六、解析Word中的图片示例 介绍 Apache POI 是一个处…

6. 运行时数据区-程序计数器和栈帧

运行时数据区分类 Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。运行时数据区分为两大类,线程共享和线程不共享,线程共享的有: 方法区堆 线程不共享的有: 程序计数器Java虚拟机栈本地方法栈…

收银系统源码-会员营销

系统概况 专门为零售行业的连锁店量身打造的收银系统,适用于常规超市、生鲜超市、水果店、便利店、零食专卖店、服装店、母婴用品、农贸市场等类型的门店使用。同时线上线下数据打通,线下收银的数据与小程序私域商城中的数据完全同步,如商品…

Luma AI发布文生视频大模型Dream Machine——可免费在线试玩

Sora模型的文生视频能力,想必一定惊艳过你。虽然Sora模型很惊艳,但是并没有开放给普通大众。Luma AI发布文生视频大模型Dream Machine模型,可以免费供大家使用,任何人只要到Luma AI的官方网站,就可体验Luma AI的文生视…

vue3前端开发-小兔鲜项目-sku的实现

vue3前端开发-小兔鲜项目-sku的实现!这是一个会计学的特殊专业名词,可以理解为产品的型号,规格的货品计量单位。 它是一组数据的混合体。比如:尺寸,材料,品质,等等。组合在一起形成的一个混合数…

Java——多态(Polymorphism)

一、多态 1、什么是多态 多态(Polymorphism)是面向对象编程的三大核心特性之一(另外两个是封装和继承)。多态性允许一个接口或基类的不同实现或子类以统一的方式处理。 二、方法多态 方法的多态性主要通过方法重载&#xff08…

Git原理与用法系统总结

目录 Reference前言版本控制系统Git的诞生配置Git配置用户名和邮件配置颜色配置.gitignore文件 Git的基础用法初始化仓库克隆现有的仓库添加暂存文件提交变动到仓库比较变动查看日志Git回退Git重置暂存区 Git版本管理重新提交取消暂存撤销对文件的修改 Git分支Git分支的优势Git…

2024年中小企业为何更需要找百度竞价托管代运营公司

企业间的竞争日益激烈,网络营销已成为企业获取市场份额、提升品牌知名度的关键途径。而在众多网络营销手段中,百度竞价推广因其高效、精准的特点,成为众多企业的首选。然而,随着市场竞争的加剧和百度竞价规则的不断调整&#xff0…

值得细读的8个视觉大模型生成式预训练方法

大语言模型的进展催生出了ChatGPT这样的应用,让大家对“第四次工业革命”和“AGI”的来临有了一些期待,也作为部分原因共同造就了美股2023年的繁荣。LLM和视觉的结合也越来越多:比如把LLM作为一种通用的接口,把视觉特征序列作为文…

年化27.9%,最大回撤-13.6%的可转债因子策略,结合机器学习特征筛选(附python代码)

原创文章第603篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 我们重新更新了可转债的全量数据,包含全量已经退市的转债。 ——这是与股票市场不一样的地方,股票退市相对少,而转债本身就有退出周期。 因此&…

喝奶 (全脂 抵脂肪 脱脂 )

鲜牛奶就是全脂的. 婴儿配方奶粉, 脂肪含量就高 全脂牛奶通常口感更浓郁,适合许多人的口味偏好, 全脂牛奶含有较高的脂肪含量,这有助于提供能量和饱腹感,从而减少总体热量的摄入, 有研究指出,喝全脂牛奶的儿童超重或肥胖的风险可能比喝低脂…

80端口被system占用 ,system进程是4!!!亲测-----解决

最近需要使用nginx,发现80端口北占用 正常情况下,查看那个进程占用,然后找到对应的程序,关闭对应的就可了。 使用 netstat 命令: 打开命令提示符(以管理员身份)。输入命令 netstat -ano | fi…

昇思25天学习打卡营第18天|ResNet50 迁移学习实战:从数据准备到模型构建

目录 环境配置 加载数据集 数据集可视化 构建Resnet50网络 固定特征进行训练 训练和评估 可视化模型预测 环境配置 MindSpore 库的版本管理和数据集的下载操作。首先,它卸载了已安装的 MindSpore 版本,并重新安装指定版本(2.3.0rc1&…

帆软BI 模仿一个可视化护理软件大屏 (三百六十行 行行fine BI)

帆软BI 模仿一个可视化护理软件大屏 (三百六十行 行行fine BI) 文章目录 帆软BI 模仿一个可视化护理软件大屏 (三百六十行 行行fine BI)前言一、怎么做?二、导入数据三、编辑数据制作联合饼图四、编辑数据风险管理五、…