私のプログラムでは、特定の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->width
、ctx->height
正しい値にデコードする前に(画像のサイズがわかっている)、正常にデコードされます。
しかし、常に寸法がわからないので、-1の誤差を克服できるかどうか知りたいです。
FFMPEGログ出力を見て、誰かが私に何か提案することができますか?