android - 如何使用 MediaCodec Android 压缩 mp4 视频?

标签 android android-mediacodec

在我的 Android 应用中,我想通过更改分辨率和比特率来压缩 mp4 视频。我不想用FFmpeg(因为我不想用NDK),所以我决定用MediaCodec API。

这是我的逻辑步骤:

  1. 使用 MediaExtractor 提取视频文件,然后解码数据。
  2. 使用我的新分辨率、比特率和编码数据创建新编码器。
  3. 使用 MediaMuxer 创建一个新的 mp4 文件。

我的问题是:我不知道如何设置解码器输出和编码器输入之间的连接。我可以将视频解码到 Surface 或从 Surface 编码新视频。但我不明白如何连接它们。

我阅读了以下链接:Android MediaCodec: Reduce mp4 video size , Video compression on android using new MediaCodec Library以及来自 Bigflake 的示例:https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java

谁能给我一个清楚的解释我必须做什么?

最佳答案

我已经用它来了解如何在 android 中操作视频:https://github.com/hoolrory/AndroidVideoSamples ,查看VideoResampler.javaCommonVideoLibrary 中。

关于android - 如何使用 MediaCodec Android 压缩 mp4 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842668/

相关文章:

android - 开始构建时出错 - App Center 上的 Android 构建失败

android - 运行时来自 Eclipse 和 android.view.InflateException 的警告

android - 在Android中,如何将预定义的Surface传递给MediaCodec进行编码?

Android:如何使用 mediacodec 将两个重叠的视频保存为一个?

android - Android MediaCodec 中的错误代码 -1010 是什么意思?

android - 如何从android中的 Activity 中选择自定义 ListView 中的所有复选框

java - DialogPreference 设置对话框的标题

android - Android 中的混淆器和 R

Android 在媒体编解码器示例上应用补丁

android - 使用 mediacodec 从位图文件创建视频