我正在写一个视频播放器,我的代码将视频解码为原始YCbCr帧。 什么是通过Qt框架输出这些信息的最快方法?我想 避免复制数据太多,因为图像是高清格式。高性能视频输出与Qt
恐怕软件颜色转换成QImage会很慢,后来QImage会在绘制到GUI时再次被复制。
我有看QAbstractVideoSurface甚至有正在运行的代码, 但不能把握如何,这是更快,因为像VideoWidget例如 (http://idlebox.net/2010/apidocs/qt-everywhere-opensource-4.7.0.zip/multimedia-videowidget.html),渲染仍然被调用了QPainter :: drawImage方法与 的QImage完成,它必须在RGB中。
首选的解决方案似乎直接访问硬件表面 ,我可以解码YCbCr或至少直接进行RGB转换(与libswscale)到。 但我不明白我怎么能做到这一点(不使用OpenGL,虽然也可以免费扩展,但我也可以使用它)。
我对此也很感兴趣。这是迄今为止我发现的最好方法,但我想知道是否有更好的方法。 http://stackoverflow.com/questions/1242005/what-is-the-most-efficient-way-to-display-decoded-video-frames-in-qt –
什么平台?你在GPU中解码? –
声子? - https://qt-project.org/doc/qt-4.8/phonon-overview.html –