【问题标题】:How to reduce mp4 size by using FFMPEG lib into android如何通过在 android 中使用 FFMPEG lib 来减小 mp4 大小
【发布时间】:2013-09-01 17:44:58
【问题描述】:

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

我知道如果我想将我的相机视频转换成小尺寸,我必须使用 avcodac.so 对其进行压缩,所以我对其进行编译,但重要的是我该如何使用它。

使用那个so文件我脑子里有些混乱.. 1) 我是否需要使用 System.load("libavcodec.so") 方法来加载 So 文件 如果在加载 so 文件后是,我如何访问 C/C++ 的本机方法?

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

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

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

感谢任何帮助,我的这个问题也将有助于其他新人。 谢谢你

【问题讨论】:

  • 你能成功缩小mp4的大小吗?

标签: android android-ndk ffmpeg


【解决方案1】:

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

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

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

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

【讨论】:

  • 您能否详细指导我...就像我必须创建自己的 C 类来操作 ffmpeg lib 对吗?...我需要使用 System.load("libavcodec.so ") 在我的 java 类中?..如果你有,请分享一些示例教程
  • @SergeyK。谢谢,但我更感兴趣的是 FFmpeg 样本而不是 NDk ..因为在互联网上你会得到 NDk 样本而不是 FFmpeg ..
  • @SergeyK。你能告诉我是否需要将 System.load("libavcodec.so") 添加到我的 java 类中?
【解决方案2】:

JavaCV 带有 Java 包装器和用于 FFmpeg 的预编译二进制文件。

此外,RecordActivity.java 示例似乎完全符合您的要求!

【讨论】:

    【解决方案3】:

    您正在使用 FFmpeg4 库在 android 中压缩视频。因此,您可以使用此命令获得更好的视频质量和最小压缩。我已经在我的项目中使用它工作成功。

    ffmpeg -i <your input video path.mp4> -s 480x320 -acodec mp2 -strict -2 -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 <your output video path.mp4>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 2022-10-09
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多