2

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

4

1 回答 1

5

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

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

编辑:

由于您使用的是 SdlDotNet,我建议SdlDotNet.Graphics.SurfaceGl使用SdlDotNet.Graphics.Movie.

于 2011-05-11T07:45:13.607 回答