【发布时间】:2011-10-03 06:20:12
【问题描述】:
我正在尝试将视频同步到在 iPad 上使用 openGL 绘制的动画,但有两件事我不知道该怎么做:
- 查找当前正在播放的视频帧。
- 确保视频更新和 openGL 绘图更新同时发生,因为即使是轻微的同步问题也可能导致视觉伪影。
【问题讨论】:
-
你通过什么方式播放视频?使用内置的封闭式视频播放器视图或控制器,还是通过 AVFoundation 将帧一一拉出,然后将它们推到某个地方?
-
我正在通过 MPMoviePlayerController 播放视频。然后我可以使用 CurrentPlaybackTime 乘以帧速率来获得显示的帧数,但问题是视频以与我的 opengl 渲染器不同的帧速率播放。有没有办法同步这两者,以便在渲染下一个视频帧之前始终确保我的 opengl 层渲染在视频中的每一帧之上?
-
您找到解决方案了吗?我也有同样的问题。
-
使用 OpenGL 渲染视频,这是唯一确定的方法。其他任何事情都可以解决。
-
关于将视频渲染为 OpenGL 纹理的评论,这可能是您最好的选择。可以在此博客文章中找到一个展示如何将视频帧从文件推送到纹理的示例:modejong.com/blog/…