android - 如何通过将 FFMPEG lib 用于 android 来减小 mp4 大小

标签 android android-ndk ffmpeg

我是 NDK 的新手,所以我阅读了教程并成功构建了 FFMPEG 库,然后将其复制到我的 jni 文件夹中创建 Android.mk 和 Application.mk 文件并执行 ndk-build 命令所以现在我得到了 libavcodec.so我的 lib 文件夹..(我没有将 ffmpeg 头文件复制到我的 jni 文件夹中..是否有必要添加头文件或者我应该将完整的 ffmpeg lib 添加到 jni 中......堆栈溢出评论说你只需要添加头文件)

我知道如果我想将我的相机视频转换成小尺寸而不是我必须使用 avcodac 压缩它所以我编译它但重要的是我如何使用它。

我对使用那个 so 文件感到困惑。 1) 我是否需要使用 System.load("libavcodec.so") 方法来加载 So 文件 如果在加载 so 文件后是,我如何访问 C/C++ 的 native 方法?

2) 或者我是否需要创建我的 java 类和我的 c 类,它们都相互通信并且 c 类与 ffmpeg 的 avcodec 类通信?

或者如果我必须创建我的 c 类而不是在 Android.mk 中我必须将它添加到源文件行中,那么应该需要同时实现和一件更重要的事情???

谁能告诉我在 FFMPEG 中压缩视频文件大小的方法和步骤是什么?

感谢任何帮助,我的这个问题对其他新生也有帮助。 谢谢

最佳答案

1) 是的,您需要调用System.load("libavcodec.so")。您可以通过 JNI 访问这些方法。

2) 您需要创建在C 中实现的JNI 方法并调用ffmpeg

JNI Android 教程:http://code.google.com/p/awesomeguy/wiki/JNITutorial

ffmpeg 教程:http://dranger.com/ffmpeg/

关于android - 如何通过将 FFMPEG lib 用于 android 来减小 mp4 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508449/

相关文章:

android - 即使在 android :configChanges is specified? 时,应用程序也会重新创建

android - 在android应用程序中使用volley api访问所有响应头

android - ndk-build 错误 prebuilt-library.mk :28: *** missing separator. 停止

java - 写入 jfloat 数组时获取 'Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1)'

android - 平板电脑摄像头的/dev/video0 的 Android 等价物是什么?

api - 使用 ffmpeg API : bigger filesize than ffmpeg. exe 进行 MPEG-2 视频编码

android - 在 Android 3 中使用 NumberPicker

android - 无法读取原生 JSON 数据

android - 在 NDK 中使用资源文件

video - ffmpeg 从视频中提取帧时间戳