【发布时间】:2011-12-21 04:52:51
【问题描述】:
我是 iOS 新手,但我已经在 Android 上实现了一个基于 FFmpeg 的播放例程。我打算在 iOS 上再做一次。
看来我可以使用 OpenGL ES 1.1 / 2.0 将帧从 FFmpeg 视频绘制到屏幕上。但是,OpenGL ES 似乎很难。此外,由于视频纹理的宽度,我遇到了一些限制。我不得不将视频帧分割成许多图像并将它们绘制到屏幕上以构成帧。
有没有更简单的方法在 iOS 上使用 OpenGL ES 渲染此视频?有没有其他方法可以在 iOS 中快速将 2-D 视频帧绘制到屏幕上?
【问题讨论】:
-
连续是什么意思?而且,为什么要“将整个视频图像分割成许多纹理并将它们绘制为‘一个’”,而不是一次绘制整个图像?
-
我试着解释一下。我使用“连续”,因为播放应该经常更新视频图像。它通常高达 30 fps(某些视频大于 30 fps)。 OpenGL-ES 可以做到最好的性能,但我对我们来说有点难。我希望将许多解决方案与我们的团队进行比较。也许'不断'说,“表演被接受”
-
纹理的宽度应该是2的幂。例如,视频大小为 640x480,它们不是 2 的幂。我应该拆分它以适应不同的纹理大小。
-
好的,我已经添加了答案。如果有帮助,请编辑您的问题以更好地反映您遇到的问题。
-
所有现代 iOS 设备都支持非二次幂纹理,即使在 OpenGL ES 1.1 中(2.0 在默认规范中支持 NPOT):stackoverflow.com/a/4761453/19679 仅适用于 iPhone 3G 之前的型号S(iPhone、iPhone 3G 以及第一代和第二代 iPod touch)不支持这个扩展,它们只是当今 iOS 设备的一小部分。