我敢肯定这是一个非常基本的问题,但是由于这是我第一次弄乱NDK,所以很多事情对我来说仍然很不清楚。
用例:
我正在尝试开发视频清理功能,因此快速准确的寻帧至关重要。我已经尝试了大多数可用的播放器,但性能仍达不到我的要求。这就是为什么我要走FFmpeg路线的原因。
基本上,我要寻找的是FFmpeg输入寻找。我已经尝试过WrtingMinds的ffmpeg-android-java。但是,它是基于文件的实现,这意味着out.jpg
需要将其写入外部存储器并进行回读,这对性能有很大的影响(一次搜索大约需要1000毫秒)。
这就是为什么我试图构建自己的FFmpeg播放器以在JNI中进行输入搜索并将其推回byte[]
Java中进行显示的原因。
问题:经过NDK的大量努力之后,我设法进行了设置,并成功地从Java代码中调用了JNI方法。结构如下:
MyApp
-app
-MyFFmpegPlayer
-build
-libs
-src
-main
-java
-com.example.myffmpegplayer
+HelloJNI.java
-jni
+MyFFmpegPlayer.c
在Windows上无法成功构建FFmpeg后,我决定使用WritingMinds预构建FFmpeg。但是,提取后它们只是作为纯ffmpeg
文件(而不是.so
文件)出现,所以我真的不知道如何使用它们。
如果有人可以插话并为我的下一步提供一个很好的起点,那将是极大的感谢。
非常感谢您的参与。
因此,为了回答我自己的问题(我应该改为“如何构建FFmpeg并在Android Studio中使用它”),我创建了一条适用于我的详细分步说明(截至2016年5月24日)。
抱歉,由于篇幅太长,我无法在此处发布整个说明,而且我更容易保持1个信息源的最新状态。
我希望这可以对某人有所帮助,因为我知道关于该主题的信息太多,令人困惑和矛盾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句