ffmpeg avcodec_receive_frame 解码效率慢 5C
if (pPacket->stream_index == videoIndex)
{
                Uint32 pretimer = SDL_GetTicks();
                /*
                ret = avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, pPacket);
                if (ret < 0)
                {
                    printf("解帧失败!\n");
                    return -1;
                }
                */
                ret = avcodec_send_packet(pCodecCtx, pPacket);
                if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF)
                    return -1;

                ret = avcodec_receive_frame(pCodecCtx, pFrame);
                if (ret < 0 && ret != AVERROR_EOF) {
                    //fprintf(stderr, "Could not open audio codec: %s\n", av_err2str(ret));
                    continue;
                }

                Uint32  a = SDL_GetTicks() - pretimer;
                cout << "avcodec_receive_frame" << a << endl;
}

ffmpeg 我是用3.4版本 解码时,使用函数avcodec_send_packet avcodec_receive_frame 获取一帧4K高清视频,30ms左右
使用2.8老版本时 avcodec_decode_video2 获取一帧4K高清视频 10ms左右,请问这种情况如何解决。为什么新版本的解码速度反倒是变慢了。

c++
zxhy521
zxhy521 回复zxhy521:是这个 avcodec_encode_video2
大约一年之前 回复
zxhy521
zxhy521 弱弱的问一句我使用ffmpeg编码avcodec_decode_video2为什么用了400ms
大约一年之前 回复
u012579346
这是什么呀 回复qfxx_csdn: 我到现在也没有解决这个问题。 我现在使用了2.8版本的。如果您发现了原因,请务必给我解决的方法,十分感谢
大约一年之前 回复
qfxx_CSDN
qfxx_csdn 同问,我的也是30ms,时间太长了点
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问