私のAndroidアプリでは、解像度、ビットレートを変更してmp4ビデオを圧縮したいと思います。FFmpegを使いたくない(NDKを使いたくないからです)ので、 MediaCodec APIを使用します。
これが私の論理的なステップです:
私の問題は、デコーダの出力とエンコーダの入力の間の接続を設定する方法がわかりません。ビデオをSurfaceにデコードしたり、Surfaceから新しいビデオをエンコードしたりできます。しかし、それらの接続方法がわかりません。
私はこれらのリンクを読みます: Android MediaCodec:mp4ビデオサイズを縮小します 、 Android新しいMediaCodecライブラリを使用してビデオ圧縮 および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.Java
CommonVideoLibrary
内。