在我的程序中,我试图从某个url中解码MPEG4流,但是解码失败。奇怪的是,来自其他urls的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无法返回-1和FFMPEG日志打印:
图片大小0x0无效get_buffer()失败(-1 0 0 x0)
如果我在解码到正确的值之前手动设置了ctx->width和ctx->height (我知道图片的尺寸),那么它会很好地解码。
但是我不能一直确定尺寸,所以我想知道我是否能克服-1错误。
通过看到FFMPEG日志输出,有人能建议我做些什么吗?
发布于 2012-10-05 18:26:52
该文件有正确的VOL吗?如果不这样做,你将面临这个问题。第一卷标题具有高度和宽度。
https://stackoverflow.com/questions/12748601
复制相似问题