fedora 安装 ffmpeg 过程记录

参考博客:1. linux(centos)安装 ffmpeg,并添加 libx264库:https://blog.csdn.net/u013015301/article/details/140778199ffmpeg 执行时如添加参数 -vcodec libx264,会出现错误:Unknown encoder 'libx264’的错误,缺少libx264库,需要安装该库,安装步骤如下:$ 代表普通用户 # 代表root权限确认 linux版本为 fedora:
cat /etc/*-releaseAmazon Linux release 2023.5.20240819 (Amazon Linux)NAME="Amazon Linux"VERSION="2023"ID="amzn"ID_LIKE="fedora"    // !!!!!!VERSION_ID="2023"PLATFORM_ID="platform:al2023"PRETTY_NAME="Amazon Linux 2023.5.20240819"ANSI_COLOR="0;33"CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"SUPPORT_URL="https://aws.amazon.com/premiumsupport/"BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"VENDOR_NAME="AWS"VENDOR_URL="https://aws.amazon.com/"SUPPORT_END="2028-03-15"Amazon Linux release 2023.5.20240819 (Amazon Linux)
   2. 安装步骤此步骤包含安装nasm、x264和ffmpeg。2.1 安装nasm2.1.1 下载nasm下载地址:wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz2.1.2 解压tar -zxvf nasm-2.14.tar.gz2.1.3 进入nasm目录cd nasm-2.142.1.4 执行nasm配置执行:./configure2.1.5 编译nasm执行:make2.1.6 安装nasmsudo make install2.1.7 查看是否安装成功nasm -v2.2 x264 安装2.2.1 下载x264下载地址:git clone https://code.videolan.org/videolan/x264.git2.2.2 进入x264目录cd x2642.2.3 执行x264配置注:如果不将include和lib安装在/usr/local目录,之后运行ffmpeg命令时可能仍然报错误./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared2.2.4 编译x264执行:make2.1.6 安装x264make install2.1.7 x264配置环境变量编辑bashrc文件,执行:vim ~/.bashrc在最后PATH添加环境变量:export PATH="/usr/local/nasm/bin:$PATH"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH保存退出。设置生效,执行:source ~/.bashrc2.1.8 验证是否安装成功pkg-config --libs x2642.3 安装 ffmpeg2.3.1 下载ffmpeg下载地址:wget https://ffmpeg.org//releases/ffmpeg-6.1.tar.gz2.3.2 解压tar -zxvf ffmpeg-6.1.tar.gz2.3.3 进入ffmpeg目录cd ffmpeg-6.12.3.4 执行ffmpeg配置./configure --enable-gpl --enable-libx264 --enable-shared --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include2.3.5 编译ffmpeg执行:make2.3.6 安装ffmpegsudo make install2.3.7 配置环境变量编辑/etc/profile文件,执行:vi /etc/profile在文件的最后位置添加环境变量:export PATH=$PATH:/usr/local/ffmpeg/bin刷新资源,使其生效,执行:source /etc/profile2.3.8 验证是否安装成功ffmpeg -version2.3.9 ffmpeg卸载使用root用户登录停止ffmpeg进程sudo pkill ffmpeg卸载ffmpegsudo yum remove ffmpeg删除ffmpeg的配置文件和数据sudo rm -rf /usr/local/etc/ffmpeg /usr/local/share/ffmpeg /usr/local/share/doc/ffmpeg /usr/local/share/man/man1/ffmpeg*3 遇到过的异常3.1 ERROR: x264 not found using pkg-config说明后缀指定的地址不对,这里x264有三个包,根据大家安装的地址确定 后缀的地址。如上文安装的 包./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared那么 咱们的包就是 /usr/local/include,/usr/local/lib这里有了后,还需要一个pkg-config 包,这样,就能解决这个报错了。用来存放x264.pc我们的pkg-config 包 可以看下地址 /usr/local/lib/pkgconfig解决方案1:vim /etc/profile末尾加入内容export PKG_CONFIG_PATH=/usr/local/x264/lib/pkgconfig,具体看各位自己x264的安装路径source /etc/profile然后再./configure ...就没问题了解决方案2:这个错误信息表示在运行 ./configure 配置脚本时,检测到 libx264 库没有被找到。这可能是由于缺少 libx264 库或者没有正确安装 libx264 的开发包引起的。执行:sudo yum install pkgconfigexport PKG_CONFIG_PATH="/path/to/libx264/lib/pkgconfig"3.2 libavcodec/libavcodec.so: undefined reference to `x264_param_cleanup’这个错误表明在链接 libavcodec 库时,编译器无法找到或解析 x264_param_cleanup 函数。这可能是由于 libx264 版本不匹配或编译选项不正确引起的。以下是一些建议:(1)检查 libx264 版本:确保你的 libx264 版本与 ffmpeg 兼容。有时,特定版本的 ffmpeg 可能需要特定版本的 libx264。尽量使用较新的版本。(2)重新编译 libx264:如果你手动编译了 libx264,请尝试重新编译并安装,确保编译选项正确。可以尝试使用以下步骤:bashCopy codecd path/to/x264/sourcemake distclean./configure --enable-sharedmakesudo make install然后,重新编译 ffmpeg。(3)检查 libx264 的链接选项:确保在链接 libavcodec 时,正确引用了 libx264 库。你可以在编译 ffmpeg 时,通过 lx264 或 llibx264 选项来指定链接 libx264 库。例如,你可以在 ffmpeg 的 configure 阶段添加 --extra-libs=-lx264:./configure --enable-libx264 --extra-libs=-lx264然后,继续编译 ffmpeg。3.3 No package ‘x264’ foundpkg-config --modversion x264Package x264 was not found in the pkg-config search path.Perhaps you should add the directory containing `x264.pc’to the PKG_CONFIG_PATH environment variableNo package ‘x264’ found(1)设置 PKG_CONFIG_PATH:如果找到了 libx264.pc 文件,请将其路径添加到 PKG_CONFIG_PATH 环境变量中。例如:bashCopy codeexport PKG_CONFIG_PATH=/path/to/directory/containing/libx264.pc:$PKG_CONFIG_PATH请将 /path/to/directory/containing/ 替换为实际的目录路径。如果 libx264.pc 文件在 /usr/lib/pkgconfig/ 中,可以运行:bashCopy codeexport PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH(2)重新运行 configure:在重新运行 ./configure 之前,请确保清理之前的编译残留:bashCopy codemake distclean然后重新运行 configure:bashCopy code./configure --enable-gpl --enable-shared --enable-libx2643.4 x264 安装好了,可以看到版本信息,但是pkg-config --libs x264 查询报错x264 --versionx264 0.164.3173 4815cca(libswscale 5.5.100)built on Feb  1 2024, gcc: 4.8.5 20150623 (Red Hat 4.8.5-44)x264 configuration: --chroma-format=alllibx264 configuration: --chroma-format=allx264 license: GPL version 2 or laterlibswscale license: nonfree and unredistributableWARNING: This binary is unredistributable![root@VM-16-10-centos x264]# pkg-config --libs libx264Package libx264 was not found in the pkg-config search path.Perhaps you should add the directory containing `libx264.pc'to the PKG_CONFIG_PATH environment variableNo package 'libx264' found[root@VM-16-10-centos x264]# pkg-config --libs x264Package x264 was not found in the pkg-config search path.Perhaps you should add the directory containing `x264.pc'to the PKG_CONFIG_PATH environment variableNo package 'x264' found在这种情况下,问题可能是 x264.pc 文件不在默认的 pkg-config 搜索路径中。通常来说,x264.pc 文件应该在 lib 或 lib/pkgconfig 目录下。如果找到 x264.pc 文件,请将其路径添加到 PKG_CONFIG_PATH 环境变量中:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH根据你的输出,pkg-config 仍然无法找到 libx264 的信息。在这种情况下,有几个可能的原因:(1)libx264 的 .pc 文件不存在或未正确安装: .pc 文件是由 libx264 的开发包提供的,用于告诉 pkg-config 如何链接到该库。确保你已经安装了 libx264 的开发包,或者手动指定 libx264 的路径。(2)PKG_CONFIG_PATH 未正确设置: 确保 PKG_CONFIG_PATH 包含 libx264 的 .pc 文件所在的目录。你可以通过运行以下命令来设置:bashCopy codeexport PKG_CONFIG_PATH=/path/to/libx264/pkgconfig:$PKG_CONFIG_PATH其中 /path/to/libx264/pkgconfig 是包含 libx264.pc 文件的目录路径。(3)libx264 的库文件不在默认的库加载路径中: 尝试将 libx264 的库路径添加到 LD_LIBRARY_PATH 中:bashCopy codeexport LD_LIBRARY_PATH=/path/to/libx264/lib:$LD_LIBRARY_PATH其中 /path/to/libx264/lib 是包含 libx264.so 文件的目录路径。请注意,确保替换上述命令中的 /path/to/libx264 为你系统上 libx264 的实际路径。完成这些步骤后,再次运行 pkg-config 或者 ./configure,看看问题是否解决。3.5 ffmpeg: error while loading shared libraries: libavdevice.so.60: cannot open shared object file: No such file or directory// 首先查找 libavdevice.so.60sudo find / -name libavdevice.so.60//查找发现 path/usr/local/lib// 配置文件中是否存在,换行追加对应路径vim /etc/ld.so.conf// include ld.so.conf.d/*.conf// /usr/local/lib// wq!保存退出// 更新库配置sudo ldconfig

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM之JVM的组成

Java 虚拟机(JVM)是 Java 程序的运行核心,它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统(Class Loading System) 类加载系统负责在程序运行时动态地将 Java 类加载到 J…

pycharm 调试 debug 进入 remote_sources

解决办法1: pycharm函数跳转到remote_sources中的文件中_pycharm修改remotesource包存放地址-CSDN博客 file->settings->project structure将项目文件夹设为"Sources"(此时文件夹会变为蓝色)。 解决方法2 Debug:使用Pychar…

iOS App的启动与优化

App的启动流程 App启动分为冷启动和热启动 冷启动:从0开始启动App热启动:App已经在内存中,但是后台还挂着,再次点击图标启动App。 一般对App启动的优化都是针对冷启动。 App冷启动可分为三个阶段: dyld&#xff1a…

StarRocks FE leader节点CPU使用率周期性的忽高忽低问题分析

背景 本文基于 StarRocks 3.3.5 最近在做一些 StarRocks 相关的指标监控的时候,看到了FE master的CPU使用率相对其他FE节点是比较高的,且 呈现周期性的变化(周期为8分钟), 于此同时FE master节点的GC频率相对于其他节…

Spring高级篇-Spring IOC容器 Aware 接口

一、概述 在Spring框架中,IOC(Inversion of Control)容器负责管理应用程序中的对象(即Bean)的生命周期和依赖关系。Spring提供了一系列的Aware接口,允许Bean在初始化时获取Spring容器中的某些资源或信息。…

数字信任的底层逻辑:密码学核心技术与现实应用

安全和密码学 --The Missing Semester of Your CS Education 目录 熵与密码强度密码散列函数密钥体系 3.1 对称加密 3.2 非对称加密信任模型对比典型应用案例安全实践建议扩展练习杂项 密码学是构建数字信任的基石。 本文浅析密码学在现实工具中的应用,涵盖 1&…

MySQL数据库连接池泄露导致MySQL Server超时关闭连接

前言 最近做项目,发现老项目出现xxx,这个错误其实很简单,出现在MySQL数据库Server端对长时间没有使用的client连接执行清楚处理,因为是druid数据库,且在github也出现这样的issue:The last packet successf…

DirectX12(D3D12)基础教程三 线性代数与3D世界空间

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。 向量和矩阵是学习3D入门最基本的理论基础。本章重点讲向量和矩阵. 向量概念 向量最基本的定义就是一个方向和…

LeetCode 230.二叉搜索树中第K小的元素

题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 思路: 代码: /*** Definition for a binary tree node.* public class Tre…

Android 老项目 jcenter 库失效

最近重新维护了一些老项目发现大部分jcenter库失效了, Could not resolve com.xx:2.1.3. 如果你也遇到了,不妨试试 替换为 aliyun的jcenter服务,就不用一个个找代替库了。 project 下的 build.gradle 文件添加: maven { url htt…

Python数据结构:哈希表-高效存储与查找的秘密武器!

大家周一好!今天我们来聊聊Python中一个非常重要的数据结构——哈希表。无论是算法面试还是实际开发,哈希表都扮演着至关重要的角色。掌握它,你就能轻松解决许多复杂的编程问题! 在编程中,如何实现快速的存储与查找操…

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…

【电机控制器】ESP32-C3语言模型——DeepSeek

【电机控制器】ESP32-C3语言模型——DeepSeek 文章目录 [TOC](文章目录) 前言一、简介二、代码三、实验结果四、参考资料总结 前言 使用工具&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、简介 二、代码 #include <Arduino.h&g…

STM32-智能小车项目

项目框图 ST-link接线 实物图&#xff1a; 正面&#xff1a; 反面&#xff1a; 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 一、让小车动起来 新建文件夹智能小车项目 在里面复制19-串口打印功能 重命名为01-让小车动起来 新建文件夹motor&…

Redis基础学习

目录 Redis命令 通用命令 String Key的顶层格式 Hash List ​编辑​编辑Set SortedSet 在IDEA使用Jedis操作Redis 常规使用 Jedis的连接池 SpringDataRedis 手动序列化和反序列化 操作Hash Redis命令 通用命令 想知道某个命令怎么用 1.可以在官网学习用法 h…

ASP.NET Core Clean Architecture

文章目录 项目地址一、项目主体1. CQRS1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建CreateEventCommand并使用validation 2. EFcore层2.1 BaseRepository2.2 CategoryRepository2.3 OrderRepository 3. Email/Excel导出3.1 Email1. IEmail接口层2. Ema…

MySQL数据库——表的约束

1.空属性&#xff08;null/not null&#xff09; 两个值&#xff1a;null&#xff08;默认的&#xff09;和not null&#xff08;不为空&#xff09; 数据库默认字段基本都是字段为空&#xff0c;但是实际开发时&#xff0c;尽可能保证字段不为空&#xff0c;因为数据为空没办法…

DeepSeek-R1:通过强化学习激发大语言模型的推理能力

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列三DeepSeek大模型技术系列三》DeepSeek-…

蓝桥杯备考:递归初阶之汉诺塔问题

我们只要想一个主问题&#xff0c;我们是先把a上面n-1个盘子放在c里&#xff0c;然后再把第n个盘子放在b上&#xff0c;再利用a把c上n-1个盘子都放在b上就行了 #include <iostream> using namespace std;void dfs(int n,char x,char y,char z) {if(n0) return;dfs(n-1,x…

聊一聊vue如何实现角色权限的控制的

大家好&#xff0c;我是G探险者。 关于角色与权限控制&#xff0c;通常是分为两大类&#xff1a;一种是菜单权限&#xff1b;一种是操作权限。 菜单权限是指&#xff0c;每个角色对应着可以看到哪些菜单&#xff0c;至于每个菜单里面的每个按钮&#xff0c;比如增删改查等等这类…