为Android构建FFmpeg

4
我已经花了将近一周的时间试图让FFmpeg“Angel”/“Happiness”适合Android系统。我从网上找到了各种构建脚本,但都无济于事。最接近成功的是使用这个脚本。虽然作者自己说这个脚本对新版本的FFmpeg不起作用,因为出现了这个bug,但该票已经被驳回,称“我找到了一个可以完成任务的Makefile”。这令人沮丧,因为这是谷歌世界中唯一与我的问题相关的帖子。
那么现在问题来了:有没有办法解决上述问题?我正在尝试使用最新的FFmpeg API,“Love”在使用av_encode_video2()和av_free_frame()时只会给我“未定义的引用”错误。我正在研究ffmpeg git仓库下的/doc/examples/decoding_encoding.c(从第338行开始的函数)。
更新: “Angel”已经不再使用codec_names.sh,但问题现在以不同的形式存在。每次构建尝试,编译器都会抛出特定的错误信息。
start ndk-building...
/home/<user>/android-ndk/build/core/build-binary.mk:41: *** target file `clean' has both : and :: entries.  Stop.

什么意思?

1个回答

8
鉴于完全没有任何回应,我认为在这个主题上知道自己的东西的人都在用他们编译的任何东西来运用他们的技能。对于像我这样在网络上搜寻有任何意义的答案的人来说,我有一个超过合适的解决方法。 The Guardian Project,一个在github上非常棒的资源,提供了完美的项目设置,可以构建带有您选择的所有设置的ffmpeg二进制文件。但是只有一个大问题,就是成功构建时会出现“无法创建可执行文件”的错误。 所以……还有一种方法。不太灵活,但它可以让你省去更多的头发,比我肯定已经失去的头发少。前往这里并获利。 从运行file命令中,我注意到这个二进制文件是动态链接的,这似乎很奇怪,但它可以工作。 此外,在设备上使用它之前,您必须运行chmod命令(因为它是二进制文件)。将其放入res/raw/文件夹中,在需要时加载它,并像没有明天一样编辑这些视频!

@Pratik 我给你点赞,但是你能告诉我怎么用The Guardian Project构建ffmpeg吗?我想在Windows上构建它...这可能吗?我知道Linux有解决方案,但是Windows没有:( - TheFlash
如果您能告诉我您遇到了什么错误,那将会很有帮助。我注意到我的构建在 freetype2 构建期间一直出现问题。因此,我删除了所有的 freetype2 依赖项(需要注释掉大约 3 个 .sh 文件中的行),然后一切都按预期进行了。 - varevarao
请问,您能否上传已编译的二进制文件?我非常非常感兴趣。 - BamsBamx
“无法创建可执行文件错误”通常意味着您的gcc编译器可能未找到。请参见此答案 - Stefan Anca
使用方法:https://dev59.com/_nfZa4cB1Zd3GeqPX_BA#21553337 - Taiko
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接