MediaCodec
ffmpeg でエンコードされた h264 パケットをデコードするために使用しています。ffmpeg でデコードすると、フレームは正常に表示されます。ただし、MediaCodec
ハードウェア デコーダーでデコードすると、フレームの中央に黒いバーが表示されることがあります。これは、エンコーディング ビットレートが十分に高く設定されている場合 (たとえば 4000000 以上) にのみ発生し、特定AVPacket
のサイズが 95000 程度を超えるようになります。MediaCodec
(または基礎となるデコーダー)がフレームを切り捨てているようです。残念ながら、ビットレートを下げられないほどの品質が必要です。フレームが他の場所で切り捨てられていないことを確認し、MediaFormat.KEY_MAX_INPUT_SIZE
より高い値に設定しようとしました.
誰かがこの問題に遭遇したか、それを回避する方法を知っていますか?
OpenGL でレンダリングし、Galaxy S4 でデコードしたランダム ピクセルの画像を添付しました。