4

私のプログラムでは、特定のURLからMPEG4ストリームをデコードしようとしていますが、デコードに失敗します。不思議なことに、他のURLからのMPEG4ストリームは正常にデコードされるため、コーデックがないことの問題ではありません。

これが私がデコードする方法です:

1)デコーダーを見つけます:

   AVCodec* codec = avcodec_find_decoder(CODEC_ID_MPEG4);

2)コンテキストを割り当てる

 ACodecContext* ctx = avcodec_alloc_context3(0);

3)コーデックを開きます

avcodec_open2(ctx, codec, 0) // it returns > 0, fine 

4)パケットのデコード(私が持っている)

   avcodec_decode_video2(ctx, frame, &decoded, &packet);

avcodec_decode_video2戻りに失敗し、 FFMPEG-1ログが出力されるようになりました。

画像サイズ0x0が無効ですget_buffer()が失敗しました(-1 0 0x0)

手動で設定しctx->widthctx->height正しい値にデコードする前に(画像のサイズがわかっている)、正常にデコードされます。

しかし、常に寸法がわからないので、-1の誤差を克服できるかどうか知りたいです。

FFMPEGログ出力を見て、誰かが私に何か提案することができますか?

4

1 に答える 1

4

ファイルに正しいVOLヘッダーがありますか?そうでない場合は、この問題に直面します。VOLヘッダーには高さと幅があります。

于 2012-10-05T18:26:52.950 に答える