Android MediaCodec: уменьшите размер видео в формате mp4

Я ищу способ "сжать" видео в формате mp4. Чтобы добиться этого, я хочу уменьшить разрешение видео и / или уменьшить FPS.

После долгих исследований, я думаю, что способ сделать это - использовать MediaCodec и связанные API-интерфейсы следующим образом:

-> MediaExtractor для извлечения закодированных мультимедийных данных из файла mp4. -> MediaCodec (Decoder): декодировать каждый кадр для последующей обработки. -> MediaCodec (Encoder): на данный момент, я думаю, именно здесь мы должны установить параметры MediaFormat, такие как разрешение видео, которые должны помочь нам уменьшить окончательный размер файла mp4. -> MediaMuxer для создания файла mp4 (MinSDK 18, это может быть проблемой, но пока ... хорошо).

Я не хочу использовать SurfaceView / TextureView. Что касается аудио, я не хочу обрабатывать его, чтобы снизить качество.

Я смотрел на все примеры здесь:http://bigflake.com/mediacodec/

Я также видел модули исходного кода CTS.

И я смотрел на несколько таких проектов:https://github.com/vecio/MediaCodecDemo/blob/master/src/io/vec/demo/mediacodec/DecodeActivity.java

И, конечно же, я прочитал десятки сообщений на stackoverflow.

Проблема в том, что я еще не нашел ни одного примера кода, который бы хорошо работал для этого porpuse. Я пытался взять различные кусочки кода и собрать их вместе в проекте, но на самом деле это не работает.

Благодарю.