【发布时间】:2012-06-11 00:52:57
【问题描述】:
我正在尝试使用 NDK 构建 FFmpeg 库以在我的 android 应用程序中使用。这样做的原因是因为我在android中使用了本机视频捕获功能,因为我真的不想编写自己的录像机。但是,本机视频捕获仅允许高质量编码或低质量编码。我想要介于两者之间的东西,我相信解决方案是使用 FFmpeg 库对高质量视频进行重新编码以使其更轻。
到目前为止,我已经能够根据本指南构建 FFmpeg 库:http://www.roman10.net/how-to-build-ffmpeg-for-android/ 并且我已经能够让它工作。
但是,我发现的一切似乎都是关于编写自己的编码器,这对我来说似乎有点过头了。我真正想做的就是将命令行格式的字符串发送到 FFmpeg 的 main() 函数并重新编码我的视频。但是,我似乎无法弄清楚如何构建 FFmpeg 以使我能够访问 main 方法。我找到了这篇文章:Compile ffmpeg.c and call its main() via JNI,它链接到一个项目,做我想做的事,但对于我的生活,我无法弄清楚发生了什么。看起来他编译的东西比我想要的多,我真的希望我的应用程序尽可能地轻量级。
一些额外的方向会非常有帮助。谢谢。
【问题讨论】:
-
我对同样的事情也很感兴趣,但是是为了音频捕获而不是视频。类似的原则也适用,所以我要为你的问题加分。
-
@Brad,您能否澄清一下:您已经能够使用上述指南构建 ffmpg,但您想通过从 java 代码调用它并传递一些参数来弄清楚如何实际使用构建的库为了编码的目的。这种理解对吗?
-
@av501,我希望使用 FFMPEG 的 Alsa 输入从 Android 设备上的麦克风捕获音频。我相信这与 Zargoon 想要从相机捕捉视频的方式一致。不过,这是Zargoon的问题,所以如果这两个东西真的不同,请具体按照视频捕捉的方式回答。
-
通过 JNI 直接调用 ffmpeg 的 main 参考这个链接 .... [这里][1] [1]:stackoverflow.com/questions/2401764/…
标签: android c++ c android-ndk ffmpeg