我确信这是一个非常基本的问题,但由于这是我第一次搞乱NDK,很多事情对我来说仍然很不清楚。
使用案例
我正在尝试开发视频清理功能,因此快速准确的帧搜索至关重要。我已经尝试了大部分可用的玩家,但性能仍然不能满足我的需求。这就是为什么我要走FFmpeg路线。
基本上,我正在寻找的是FFmpeg input seeking。我试过了WrtingMinds' ffmpeg-android-java。然而,这是一个基于文件的实现,这意味着需要将out.jpg
写入外部存储器并回读,这对性能有很大影响(1次搜索大约需要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
文件)所以我真的不知道如何使用它们。
如果有人能够为我的下一步提供一个良好的起点,那将是一种非常的感激之情。
非常感谢你的时间。
答案 0 :(得分:0)
所以要回答我自己的问题,我应该改为“如何构建FFmpeg并将其与Android Studio一起使用”,我已经创建了一条为我工作的详细step-by-step指令( 2016年5月24日强>)。
对不起,我不能在这里发布整个说明,因为它很长,而且我更容易保持最新的1个信息来源。
我希望这可以帮助某些人,因为我知道有太多令人困惑和矛盾的有关这个主题的信息。