我正在尝试在Android上构建ffmpeg。有很多教程。有些人很老。 所以我想尝试一个可以使用更新版本的ffmpeg和Android NDK。 经过长时间的搜索,我找到一个,guardianproject / android-ffmpeg
该项目几个月前更新。 使用NDK r8。 ffmpeg来自网上,所以是最新版本。
在我遵循所有指令之后,我很困惑我应该使用哪种结果,以及如何使用它。 README提到测试,如:
# 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中使用它?
Totall困惑。 有光吗?
答案 0 :(得分:2)
我假设您已成功构建了ffmpeg可执行文件,并了解了构建中静态库和共享库之间的区别。如果没有,你应该在尝试在android中的CLI上执行它之前阅读。
我认为作者在cli上使用ffmpeg使用system.exec或processbuilder技术在./data/local/$yourSubDir中手机上运行和执行....
请参阅here关于android中cli的ffmpeg的讨论,并注意到很多人更喜欢使用使用java接口的完整JNI路由来包装对ffmpeg.main()的调用。 IMO JNI路由对于您要分发的应用程序更加强大。但它适用于cli。
让你困惑的测试只是使用ffmpeg的表达式,需要使用你喜欢的方法(system.exec或processbuilder)在android中调用。您可以通过在开发环境中的windows / linux中运行ffmpeg来熟悉cli测试。在那里获取一个shell并使用ffmpeg faqs中提到的样本。
你可以在git上看一下关于JNI方法的更多例子的gn下半项目。