ffmpeg踩坑之手动编译报错Unrecognized option ‘preset‘及rtsp/rtmp推流

news/2024/7/5 4:10:16

本文解决的问题记录:

报错1:Unrecognized option 'preset'.
Error splitting the argument list: Option not found

报错2:ERROR: x264 not found using pkg-config

报错3:ffmpeg: error while loading shared libraries: libavdevice.so.60: cannot open shared object file: No such file or directory

报错信息:

Unrecognized option 'preset'.
Error splitting the argument list: Option not found

一开始以为是版本不对,于是从3.1升级到了6.1结果还是不行,然后我在想是不是前面3.1版本的没有删除干净 ,执行时使用了旧版本的依赖,于是重新删除干净再次安装6.1,结果还是不行。

然后百度了一通,有大佬指出了问题,出现这个问题大概率是手动编译导致的,果不其然!是我执行configure的时候没有加--enable-libx264这个参数,首先使用whereis或者which命令找到自己的ffmpeg安装目录,将ffmpeg可执行文件删掉,然后回到ffmpeg目录执行

./configure --enable-shared --enable-libx264 --enable-gpl --prefix=/usr/local/ffmpeg

/usr/bin.ffmpeg可以换成自己的安装目录

 于是马上执行>>>

root@gateway-desktop:~/ffmpeg-6.1# ./configure --enable-shared --enable-libx264 --enable-gpl --prefix=/usr/bin/ffmpeg
ERROR: x264 not found using pkg-config

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.

好家伙报错了

一开始我以为是我没有安装x264导致的问题,于是便安装了libx264

libx264下载地址:x264, the best H.264/AVC encoder - VideoLAN

tar jxvf x264-master.tar.bz2
cd x264-master/
./configure --enable-gpl --enable-libx264  # 先往下看
make
make install

结果发现安装好了x264还是报一样的错误,可能是我configure的时候没有加--enable-shared,重装后这个问题就解决了

然后重新给ffmpeg执行上面的configure

执行完之后别忘了vim /etc/ld.so.conf加上一行/usr/local/ffmpeg/lib 这里换成你自己的安装目录

ps:如果这一步没有操作那应该会报错:ffmpeg: error while loading shared libraries: libavdevice.so.60: cannot open shared object file: No such file or directory

最后ldconfig一下就可以愉快的使用ffmpeg了

参考

​​​​ffmpeg问题解决:Unrecognized option 'preset'. Error splitting the argument list: Option not found - 简书 (jianshu.com)

ffmpeg编译问题:“ERROR: x264 not found using pkg-config”_ffmpeg pkg-config-CSDN博客

ffmpeg中设置配置项时ERROR: x264 not found using pkg-config-CSDN博客


http://lihuaxi.xjx100.cn/news/1896770.html

相关文章

DevOps|研发提效-敏捷开发之任务看板

上篇文章中,我讲了敏捷第一步-每日站立会,讲了我们平时是怎么开站立会的,其实15-30分钟就够了,绝对不是时间长得让你想拄拐那种。本文我们开始讲敏捷开发中的看板。没有看板之前,我们真的是在白板上画泳道,…

设计模式之开篇

在软件开发的世界里,设计模式有如一本精妙的工程艺术指导准则,为我们提供了解决常见问题的优雅实现方案。然而,有些程序员可能会认为设计模式太过繁琐,一个简单的 if/else 语句就能解决问题,何必费心去学习这些看似复杂…

微信支付 二维码生成 域名穿透 封装 如何实现 看这篇就够了!

微信支付 扫码支付 微信扫码支付介绍 具体参考官方文档 微信扫码支付流程 总结我们接下来要做的事情 调用下单接口&#xff0c;获取code_url根据code_url生成二维码查询订单的支付状态 统一下单 核心对象创建 1.添加依赖 <dependency><groupId>com.github…

Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】

今天在写项目时&#xff0c;写到一个嵌套评论的遍历时&#xff0c;控制台出现了一个报错信息&#xff0c;但是并不影响页面的渲染&#xff0c;然后一看这个错的原因是 key值重复&#xff0c;那么问题的解决方式就很简单了。&#xff08;vue for循环读取key值时&#xff0c; key…

TrustZone之强制隔离

TrustZone有时被称为一个强制执行的保护系统。请求者表示其访问的安全性,而内存系统决定是否允许该访问。内存系统基于何种方式进行检查呢? 在大多数现代系统中,内存系统的检查是由互连完成的。例如,Arm NIC-400允许系统设计人员为每个连接的完成者指定以下内容: • 安全…

linux应用程序直接return与exit的区别

在Linux应用程序中&#xff0c;可以使用return语句直接从main函数返回。这将导致程序终止并返回给操作系统。然而&#xff0c;有时候使用exit函数比直接使用return语句更有优势&#xff0c;以下是一些原因&#xff1a; 清理资源&#xff1a;exit函数可以确保在程序终止之前执行…

微软Microsoft二面面试题分享通过总结(不是标准答案分享

误打误撞 我写的shitty代码 当年面试算法开发岗竟然通过了 Background 先说下背景&#xff0c;软件工程本科毕业之后&#xff0c;当年8月到北欧读两年制硕士。面试发生在当年的11月&#xff0c;微软哥本哈根&#xff0c;location在丹麦的哥本哈根lingby&#xff08;是不是这么…

springcloud-分布式缓存

文章目录 一.Redis持久化1.RDB持久化2.AOF持久化 二.Redis主从1.搭建主从架构2.全量同步3.增量同步 三.Redis哨兵1.哨兵的作用和原理2.搭建哨兵架构3.RedisTemplate的哨兵模式 四.Redis分片集群1.搭建分片集群2.散列插槽3.集群伸缩4.故障转移5.RedisTemplate访问分片集群 为什么…