2

我正在尝试在 Android 上构建 ffmpeg。有很多教程。有些已经很老了。所以我想尝试一个可以使用更新版本的ffmpeg和Android NDK的。找了好久,找到了一个,guardianproject / android-ffmpeg

该项目在几个月前进行了更新。使用 NDK r8。ffmpeg是网上放的,所以是最新版本。

在按照所有说明进行操作后,我很困惑应该使用哪个结果以及如何使用它。自述文件提到了测试,例如:

# embedding metadata into a matroska video /data/local/ffmpeg -y -i test.mp4 \
    -attach attach.txt -metadata:s:2 mimetype=text/plain \
    -acodec copy -vcodec copy testattach.mkv

首先,我找不到路径:/data/local 其次,这是一个命令。我将如何在 Android 中使用它?

完全糊涂了。有光吗?

4

1 回答 1

2

我假设您已成功构建 ffmpeg 可执行文件并了解构建中静态库和共享库之间的区别。如果不是,您应该在尝试在 android 的 CLI 上执行它之前阅读它。

我认为作者在 cli 上使用 ffmpeg,使用 system.exec 或 processbuilder 技术在手机上的 ./data/local/$yourSubDir... 中运行和执行。

请参阅此处以了解有关 android 中 cli 上的 ffmpeg 的讨论,并注意很多人更喜欢使用完整的 JNI 路由,使用 java 接口来包装对 ffmpeg.main() 的调用。IMO JNI 路由对于您打算分发的应用程序更加健壮。但它适用于cli。

让您感到困惑的测试只是使用 ffmpeg 的表达式,需要使用您喜欢的方法( system.exec 或 processbuilder )在 android 中调用。您可以通过在开发环境中的 windows/linux 中简单地运行 ffmpeg 来熟悉 cli 测试。在那里获取一个 shell 并使用 ffmpeg 常见问题解答中提到的示例。

您可以查看 git 上的 halfninja 项目以获取有关 JNI 方法的更多示例。

于 2013-04-04T01:00:45.133 回答