android - FFmpeg - 最后编译。怎么办?

标签 android video android-ndk ffmpeg

好的,这是我的故事:

我正在创建一个应用程序,需要我拍摄几张图片和一段视频并将它们合并在一起。起初我不知道该用什么,从来没有听说过 ffmpeg 或 ndk.. 在与 NDK 战斗大约 5 天后,切换到 Ubuntu 并疯狂使用 ndk-build 命令我终于得到了 FFmpeg 来编译使用 dolphin-播放器 示例。现在我可以在我的计算机和 Android 设备上运行 ffmpeg,我不知道下一步该做什么。

以下是我的主要问题:

  • 要使用 FFmpeg,我看到我需要使用某种命令。首先,什么这些命令,我在哪里运行它们?

  • 其次,这些命令是否都是我需要的?我的意思是我可以正常运行我的应用程序,在它的某个地方以某种方式执行命令,它会为我做剩下的事情吗?或者我是否需要代码中的某种元素,例如 VideoEncoder 实例或其他东西..

  • 第三,我看到有人使用 NDK 来使用 FFmpeg,我吗?还是可选?我想尽可能避免使用 C,因为我根本不知道。

  • 可选:最后但同样重要的是,这是处理我在应用程序中需要做的事情的最佳方式吗?如果是这样,有人可以简要地指导我如何使用 FFmpeg 完成上述任务(提及命令或类似的东西)。

我知道这是一堵文字墙,但每个问题对我来说都很重要!

非常感谢 stackoverflow 社区!

最佳答案

我看到我的回答可能不再与你的问题相关,但我仍然把它放在这里,因为我最近经历了同样的道路,我理解这个问题造成的痛苦和困惑(设置 NDK 使用混合 gradle 插件需要我 1 天,构建 FFmpeg 需要 2 天,然后在 wtf 失败,我下一步应该做什么??)

简而言之,正如@Daniel 所指出的,如果您只是想使用 FFmpeg 来运行命令,例如压缩、剪切、插入关键帧...然后 Writing mind's prebuilt FFmpeg Android Java是让 FFmpeg 在您的应用程序上运行的最简单方法。缺点是因为它只是运行命令,所以它需要为进程获取输入和输出文件。参见 my question here进一步澄清。

如果您需要执行比这更复杂的任务,那么您别无选择,只能将 FFmpeg 构建为库并从中调用 API。我已经写下了适合我的分步说明(2016 年 5 月)。你可以在这里看到它:

请不要让我在这里复制整个内容,因为它是一条很长的说明,而且我更容易保持 1 个信息源是最新的。我希望这可以拯救某人的键盘 ;)。

关于android - FFmpeg - 最后编译。怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821784/

相关文章:

Android - 以编程方式添加到布局的动画 View

java - 使用 swipeview 时如何将 Java 文件链接到 UI xml 文件?

android - 在不写入文件的情况下将视频录制到字节数组

android - NDK 和 Java MediaCodec api 哪个延迟最低?

java - cpu/内存绑定(bind)环境中大图的最佳数据结构

android - 如何在 Android Nougat 中替换 dlopen()?

android - 使用gps而不使用互联网连接在android中获取地址的纬度和经度

android - 将 Android Studio 与 SVN 连接

video - 尽管编解码器未更改,FFMPEG 转换会创建更小的文件

安卓 NDK/JNI : loadLibrary failure with dependant shared libarires