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

TOP*_*TOP 16 compression mp4 android mediacodec

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

以下是我的逻辑步骤:

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

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

我读了这些链接:Android MediaCodec:使用新的MediaCodec库和Bigflake的示例减少mp4视频大小,Android上的视频压缩:https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests /tests/media/src/android/media/cts/DecodeEditEncodeTest.java

谁能给我一个明确的解释我要做什么?

ism*_*a3l 12

我用这个来看看如何在android中操作视频:https://github.com/hoolrory/AndroidVideoSamples,检查VideoResampler.javaCommonVideoLibrary.

  • @Taiko压缩后没有音频.有没有代码丢失? (4认同)