gpt4 book ai didi

c++ - ffmpeg + glfwGetTime()

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:09 25 4
gpt4 key购买 nike

我尝试使用 ffmpeg + opengl 来控制视频的播放速度。但是我有问题。

我的视频以 25 fps 编码,播放速度非常快。我在我的代码中添加了这个。

tiempo = glfwGetTime();
duracion = 1.0/25.0; // 1 second / 25 fps

while(1){

...

if(glfwGetTime() > tiempo + duracion){
if(av_read_frame(pFormatCtx,&packet) >= 0){
if(packet.stream_index == 0){
avcodec_decode_video2(pCodecCtx,pFrame,&frameFin,&packet);
if(frameFin)sws_scale(img_convert_ctx,pFrame->data,pFrame->linesize,0,pCodecCtx->height,pFrameRGB->data,pFrameRGB->linesize);
}
av_free_packet(&packet);
}
tiempo = glfwGetTime();
}

...

}

问题是现在视频播放速度比应有的慢。有什么问题?

最佳答案

您将解码图像解码所需的时间添加到您必须等待显示下一个图像的 40 毫秒。此错误是因为您在循环结束时再次测量了时间。

代替:

    }
tiempo = glfwGetTime();
}

写:

   }
tiempo+=duraction;
}

关于c++ - ffmpeg + glfwGetTime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18577927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com