Подтвердить что ты не робот

Как сжать mp4-видео с помощью MediaCodec Android?

В моем приложении для Android я хочу сжать видео mp4, изменив его разрешение, битрейт. Я не хочу использовать FFmpeg (потому что я не хочу использовать NDK), поэтому решил использовать API MediaCodec.

Вот мои логические шаги:

  • Извлечь видеофайл с помощью MediaExtractor, а затем декодировать данные.
  • Создайте новый кодер с моим новым разрешением, битрейтом и кодированием данных.
  • Использование MediaMuxer для создания нового файла mp4.

Моя проблема: я не знаю, как настроить соединение между выходом декодера и входом энкодера. Я могу декодировать видео на поверхность или закодировать новое видео с поверхности. Но я не понимаю, как их соединить.

Я прочитал эти ссылки: Android MediaCodec: уменьшите размер видео mp4, Сжатие видео на Android с использованием новой библиотеки MediaCodec и пример из Bigflake: https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java

Может кто-нибудь дать мне ясное объяснение, что я должен делать?

4b9b3361