如何在现有的OpenGL项目中嵌入SDL视频

时间:2011-05-11 03:13:36

标签: c# opengl sdl opentk

我正在开发OpenGL游戏,并希望在游戏中的3D表面上播放视频。 SDL似乎是视频播放的绝佳选择,但是可以在现有的OpenGL上下文中创建表面吗?我该怎么做呢?

1 个答案:

答案 0 :(得分:5)

据我所知,SDL没有视频播放功能;不要被像SDL_Video这样的API名称所迷惑。这些实际上用于窗口管理。

您需要做的是使用一些视频解码器库将视频解码为图像缓冲区,然后将这些图像缓冲区传递到OpenGL纹理中。开源视频播放器 mplayer (内部使用ffmpeg libavformat libavcodec 库进行视频/音频解码)也有一个OpenGL视频输出模块。我建议您获取mplayer源代码并查看OpenGL视频输出模块,以了解如何执行此操作。

修改

由于您使用的是SdlDotNet,我建议使用SdlDotNet.Graphics.SurfaceGl作为SdlDotNet.Graphics.Movie的目标表面。