我有一个通过 RTSP 流式传输 h264 视频的 IP 摄像机。在 iOS 上,我使用 FFmpeg 捕获 RTSP 流并解码帧,然后使用 UIimage 和 UIimageview 进行渲染。
我已经看到了从 FFmpeg 渲染视频的示例,它们似乎都使用 OpenGL ES 或 SDL 库。
我的问题是使用 OpenGL 有什么好处?因为使用 UIimage 进行渲染很容易并且看起来工作正常。
SDL 和 OpenGL 是可移植的跨平台标准
这些库使用 GPU 来处理数据。这对于图形处理非常有效,并且使您能够 - 例如 - 将实时过滤器应用于视频。
Apple 提供 CIImage 用于在 GPU 上处理图像数据。这可以是一种更加以可可为中心的方式来提供 openGL 和 SDL 的一些好处。请参阅iOS 5.0 中的核心图像过滤器是否足够快以进行实时视频处理?对此进行一些有用的讨论。
如果您不需要应用过滤器,并且不需要跨平台代码,那么您的工作方法就可以了。