8

Android の MediaCodec クラスを使用して H.264 ビデオをデコードする方法を理解しようとしています。まず、H.264 ファイルから NAL ユニットを手動で解析し、デコードのために MediaCodec にフィードしようとしています。ファイルからNALユニットを正しく解析していると思います(ファイル内の0x00 0x00 0x01シーケンスを検索し、NALユニットの開始を示します)が、MediaCodecは常にタイムアウトし、dequeueOutputBufferを呼び出すたびに-1を返します(). デコードのためにH.264 NALユニットをMediaCodecにフィードする方法の詳細を知っている人はいますか? NAL ユニットを送信する前に、0x00 0x00 0x01 シーケンスを削除する必要がありますか? 特定の NAL ユニット タイプを無視/ドロップする必要がありますか? 各 NAL ユニットの前に、抽出された SPS および PPS 情報 (0x00 0x00 0x01 シーケンスの有無にかかわらず) を追加する必要がありますか? 私' ここでたくさんのアイデアをいじっていますが、どれもうまくいきません。この分野でのガイダンスは非常に高く評価されます。

4

2 に答える 2

0

私の知る限り、ヘッダーを取り出し、最初のバッファーとして SPS/PSS をフィードする必要がありますが、-1 を取得することは大したことではなく、通常の動作になります。一部のデバイスは、他の NAL の前に SPS/PPS によってフィードされない場合、クラッシュします。

于 2014-07-30T08:20:12.630 に答える