【发布时间】:2014-11-08 09:12:18
【问题描述】:
我正在尝试同步从 MP4 视频解码的帧。我正在使用 FFMPEG 库。我已经解码并存储了每一帧,并成功地在 OPENGL 平面上显示了视频。
我在循环帧之前启动了一个计时器;目的是正确同步视频。然后我将每一帧的 PTS 与这个计时器进行比较。我在解码过程中存储了从数据包接收到的 PTS。
我的应用程序中显示的内容似乎没有按我预期的速度播放。它比媒体播放器中的原始视频文件播放得更快。
我一般对 FFMPEG 和编程视频缺乏经验。我是不是用错误的方式解决这个问题?
这是我正在尝试做的一个示例
FrameObject frameObject = frameQueue.front();
AVFrame frame = *frameObject.pFrame;
videoClock += dt;
if(videoClock >= globalPTS)
{
//Draw the Frame to a texture
DrawFrame(&frame, frameObject.m_pts);
frameQueue.pop_front();
globalPTS = frameObject.m_pts;
}
请注意,我使用的是 C++、Windows、Opengl、FFMPEG 和 VS2010 IDE
【问题讨论】:
标签: c++ opengl video ffmpeg pts