MediaCodec
API
を使用したエンコード/デコードの以下の例を見ました。https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/EncodeDecodeTest.java
推測されたプレゼンテーション時間と、デコードされた情報から受け取ったプレゼンテーション時間の比較があります。
assertEquals("Wrong time stamp", computePresentationTime(checkIndex),
info.presentationTimeUs);
デコーダーはエンコードされたバッファー内のデータをデコードするだけなので、このエンコーダーの出力 H.264 ストリームで解析できるタイムスタンプ情報があると思います。
( )MediaCodec
を使用して mp4 コンテナーにエンコードされた H264 ストリーム (.h264) を多重化する Android アプリケーションを作成しています。高すぎるバージョン 4.3 が必要なため、使用したくありません。ffmpeg
libavformat
MediaMuxer
ただし、ffmpeg
によってエンコードされたパケットのプレゼンテーション タイムスタンプを認識しないようMediaCodec
です。そのため、ストリームからフレームを読み取ろうとすると、常に NO_PTS 値が取得されます。
この状況で正しいプレゼンテーションのタイムスタンプを取得する方法を知っている人はいますか?