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

时间:2015-06-15 10:18:18

标签: android compression mp4 mediacodec

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

以下是我的逻辑步骤:

  1. 使用MediaExtractor提取视频文件,然后解码数据。
  2. 使用我的新分辨率,比特率和编码数据创建新编码器。
  3. 使用MediaMuxer创建新的mp4文件。
  4. 我的问题是:我不知道如何设置解码器输出和编码器输入之间的连接。我可以将视频解码为Surface或从曲面编码新视频。但我不明白如何连接它们。

    我阅读了以下链接:Android MediaCodec: Reduce mp4 video sizeVideo 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

    有人能给我一个明确的解释我必须做什么吗?

1 个答案:

答案 0 :(得分:12)

我用它来看看如何在android中操作视频:https://github.com/hoolrory/AndroidVideoSamples,查看CommonVideoLibrary中的VideoResampler.java