小编Dun*_*ave的帖子

使用PTS同步FFMPEG视频帧

我正在尝试同步从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;
            }
Run Code Online (Sandbox Code Playgroud)

请注意我使用的是C++,Windows,Opengl,FFMPEG和VS2010 IDE

c++ opengl video ffmpeg pts

4
推荐指数
1
解决办法
1795
查看次数

标签 统计

c++ ×1

ffmpeg ×1

opengl ×1

pts ×1

video ×1