如何解决“错误:找不到 libx264”?

     2023-03-13     200

关键词:

【中文标题】如何解决“错误:找不到 libx264”?【英文标题】:How to resolve "ERROR: libx264 not found"? 【发布时间】:2014-09-24 14:14:07 【问题描述】:

我需要安装支持 libx264 的 ffmpeg 以启用 H.264 编码。我使用以下脚本成功安装了 libx264,并使用了 android-ndk-r9d 中提供的工具链。

 #!/bin/bash
 NDK=~/android-ndk-r9d
 SYSROOT=$NDK/platforms/android-8/arch-arm/
 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
 function build_one
 
 ./configure \
 --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
 --sysroot="$SYSROOT" \
 --host=arm-linux \
 --enable-pic \
 --enable-shared \
 --disable-cli
 make clean
 make
 make install
 
 build_one 

现在我想构建支持 libx264 的 ffmpeg。我将以下脚本与 --enable-libx264 、 --enable-nonfree 、 --enable-gpl 选项一起使用,如下面的脚本所示。

#!/bin/bash
NDK=~/android-ndk-r9d
SYSROOT=$NDK/platforms/android-8/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
function build_one

./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-nonfree \
--enable-gpl \
--enable-libx264 \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

但是当我运行脚本时出现错误“错误:找不到 libx264”。

我想 ffmpeg 无法确定 libx264 的安装位置。安装 libx264 后,我在 /usr/local/bin 的 /usr/local/lib 可执行文件中有 libx264.so 文件,在 /usr/local/include 目录中有头文件。

我需要对 ffmpeg 构建脚本进行哪些更改才能使其检测到 libx264?

注意:我使用 Ubuntu 12.04(64 位)进行交叉编译。

【问题讨论】:

您使用哪个 Linux 发行版/版本/arch 来构建它? @Salem 我正在使用内核版本为 3.8.0-44 的 Ubuntu 12.04(64 位)。抱歉没有提。 【参考方案1】:

确保您的 $ADDI_CFLAGS 变量(您传入 --extra-cflags)包含 -I /usr/local/include

【讨论】:

谢谢。我相应地修改了 -cflags 和 -ldflags 及其工作。 你能告诉我你在标志中包含哪条路径吗?我的意思是说 /usr/local/include 我从哪里得到这条路径? 你能回答我吗? ***.com/questions/28876811/… 您的 x264 标头在哪里?您需要将此路径作为 -I /path/to/headers 添加到编译器命令行选项中。您还需要将 -L /path/to/x264libraries 添加到链接器命令行标志中。【参考方案2】:

您还需要为 Android 交叉编译 libx264,不要使用您的 linux 发行版中的那个。

交叉编译后,通过在 $ADDI_CFLAGS var 中添加 -I/path/to/x264 来添加 libx264.a 的路径。

要做这一切,你可以直接试试这个构建脚本:https://github.com/ph0b/FFmpeg-Android

【讨论】:

【参考方案3】:

在较新版本的 libx264 上,您必须使用 --disable-opencl 进行配置,ffmpeg 才能正确找到库。

./configure --enable-static --disable-opencl

wget http://download.videolan.org/pub/x264/snapshots/x264-snapshot-20191217-2245-stable.tar.bz2
tar xjvf x264-snapshot-20191217-2245-stable.tar.bz2
cd x264-snapshot*
./configure --enable-static --disable-opencl
make install

【讨论】:

谢谢。最后,我使用选项(--disable-opencl)解决了这个问题 谢谢,2年后还是有用的! 那个链接现在失效了 根据download.videolan.org/pub/x264/snapshots/…,您现在应该直接从code.videolan.org/videolan/x264 的存储库下载文件,但需要有人验证它是否有效。否则我已经用他们拍摄的最后一张快照更新了上面的内容。【参考方案4】:

我已经尝试过了,它对我有用。

cd /opt

git clone git://git.videolan.org/x264.git

cd x264

./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static 

make

make install

【讨论】:

如何解决子重复错误?

】如何解决子重复错误?【英文标题】:HowcanIresolvechildduplicationerror?【发布时间】:2021-02-2100:03:10【问题描述】:如何解决子重复错误:错误:重复的命名参数“孩子”。孩子:CenteredView(这是我的代码:Container(child:RaisedButton(o... 查看详情

如何解决 ObjectParameterError?

】如何解决ObjectParameterError?【英文标题】:HowtosolveObjectParameterError?【发布时间】:2021-09-2120:54:55【问题描述】:你能告诉我如何解决这个错误吗?还有另一种方法可以将数组发送回控制台吗?错误说参数不正确,我应该更改函... 查看详情

如何解决循环引用?

】如何解决循环引用?【英文标题】:Howtosolvecircularreference?【发布时间】:2011-10-1904:39:42【问题描述】:您如何解决循环引用问题,例如A类将B类作为其属性之一,而B类将A类作为其属性之一?架构师如何解决这类问题?如果以N... 查看详情

RichEmbed 未定义错误如何解决

】RichEmbed未定义错误如何解决【英文标题】:RichEmbedisnotdefinederrorhowtofix【发布时间】:2020-10-1423:40:47【问题描述】:所以,我已经学会了如何从一个名为“CodeLyon”的youtube频道制作一个不和谐的机器人,并且出现错误:enterimaged... 查看详情

如何解决文本溢出

】如何解决文本溢出【英文标题】:howtoresolvedthetextoverflow【发布时间】:2019-02-1215:09:19【问题描述】:我正在尝试从数据库中检索数据..有问题的包含128个字,这显示我溢出了533pl...我该如何解决..下面是我的代码#文字代码Padding... 查看详情

我需要帮助解决这个 JDBC 异常错误,如何解决这个问题?

】我需要帮助解决这个JDBC异常错误,如何解决这个问题?【英文标题】:IneedhelpsolvingthisJDBCExceptionError,doesanyoneknowhowtosolvethis?我需要帮助解决这个JDBC异常错误,有谁知道如何解决这个问题?【发布时间】:2019-05-2219:36:41【问题... 查看详情

如何解决 TesseractNotFoundError?

】如何解决TesseractNotFoundError?【英文标题】:HowdoIresolveaTesseractNotFoundError?【发布时间】:2018-11-1207:44:32【问题描述】:我正在尝试在Python中使用pytesseract,但我总是遇到以下错误:raiseTesseractNotFoundError()pytesseract.pytesseract.Tesseract... 查看详情

如何解决KDiff在解决合并冲突时增加额外空行的问题?

】如何解决KDiff在解决合并冲突时增加额外空行的问题?【英文标题】:HowtosolvetheproblemthatKDiffaddsextrablanklineswhenresolvingmergeconflicts?【发布时间】:2021-11-0914:28:17【问题描述】:如何解决KDiff在解决合并冲突时添加额外空行的问题... 查看详情

运行代理失败,如何解决这个问题?

【中文标题】运行代理失败,如何解决这个问题?【英文标题】:runanagentitfailed,whatandhowtoworkonthisissue?【发布时间】:2019-05-1704:35:26【问题描述】:代理没有成功提供分析或报告,如何解决这个问题?请帮帮我提前致谢【问题讨... 查看详情

如何解决 NSInternalInconsistencyException',原因:'+entityForName:失败报告

】如何解决NSInternalInconsistencyException\\\',原因:\\\'+entityForName:失败报告【英文标题】:HowcanIsolveNSInternalInconsistencyException\',reason:\'+entityForName:failreport如何解决NSInternalInconsistencyException\',原因:\'+entityForName:失败报告【 查看详情

如何解决导航约束警告?

】如何解决导航约束警告?【英文标题】:Howcanresolvenavigationconstraintwarning?【发布时间】:2017-07-1705:53:46【问题描述】:您好,我在uinavigation控制器约束中遇到了一些xcode问题。它会发出一些警告,但无法解决。这是一个错误还... 查看详情

如何解决一个问题

...不明攻击,导致网站目录下所有文件都被篡改了,这时该如何解决问题? 处理过程:1和运维人员确认的确出现问题了,详细了解问题情况。2制定处理方案,先备份数据,防止二次破坏,然后,执行命令批量修改回来。3检查... 查看详情

如何解决 FileSizeLimitExceededException 错误?

】如何解决FileSizeLimitExceededException错误?【英文标题】:HowtoresolveFileSizeLimitExceededExceptionerror?【发布时间】:2019-08-1404:12:19【问题描述】:上传excel文件大小超过1MB时出错。[org.springframework.web.multipart.MultipartException:Couldnotparsemultip... 查看详情

如何解决“缩进错误”?

】如何解决“缩进错误”?【英文标题】:HowdoIresolvean"IndentationError"?【发布时间】:2018-06-0819:51:00【问题描述】:我正在制作一个Discord机器人并尝试让它发送图像。这些都是我的导入:importdiscordfromdiscord.extimportcommandsfro... 查看详情

如何解决方法getDownloadUrl()

】如何解决方法getDownloadUrl()【英文标题】:HowtoresolvemethodgetDownloadUrl()[duplicate]【发布时间】:2019-02-0811:43:51【问题描述】:UriresultUri=result.getUri();Stringcurrent_user_id=mCurrentUser.getUid();StorageReferencefilepath=mImageStorage.c 查看详情

如何使用流解决以下练习

】如何使用流解决以下练习【英文标题】:HowcanIsolvethefollowingexercisewithstreams【发布时间】:2021-12-2300:31:03【问题描述】:在下面的练习中,我应该保留所有包含SmartLamps的房间。我怎样才能用流解决这个问题?由于每个SmartLamp都... 查看详情

用户交互中断drawRect,如何解决?

】用户交互中断drawRect,如何解决?【英文标题】:UserinteractioninterrupteddrawRect,howtosolve?【发布时间】:2017-01-2806:03:34【问题描述】:当我使用drawRect函数绘制UIVewrect时,如果发生用户交互(例如下拉一个UITableView,如下图所示)... 查看详情

如何使用google解决问题

如何使用google解决问题redguardtoo2004/07/07本文介绍了使用google解决难题的一些高级技术,重点讲述了如何选择关键字,如何分析过滤信息等等。1.声明请读者不要使用本文所介绍的技巧从事违法、不道德的事情。我对于本文... 查看详情