|
|
1
35
感谢您的回答,但我最终重新审视了这个问题,并提出了一个相当简单的解决方案,它可以提供良好的性能。它涉及从
有了这个,我仍然需要将YUV420P转换为RGB32,但是ffmpeg在libswscale中有一个非常快速的转换实现。主要的收益来自两方面:
我用以前的方法将处理器固定在显示器上(解码在另一个线程中完成)。现在,我的显示线程只使用大约8-9%的内核进行全屏1920x1200 30fps播放。我相信,如果我能直接将YUV数据发送到视频卡,它可能会变得更好,但现在这已经足够好了。 |
|
|
2
3
我的2美分 |
|
|
3
3
根据您的OpenGL/着色技能,您可以尝试将视频帧复制到纹理,将纹理映射到矩形(或任何其他..有趣!)并在OpenGL场景中显示。这不是最直接的方法,但速度很快,因为您直接将数据写入图形内存(如SDL)。我还建议只使用YCbCR,因为这种格式是压缩的(颜色,Y=完全Cb,Cr是帧的1/4),所以显示帧需要更少的内存+更少的复制。我不是直接使用Qts GL,而是在Qt(vis OSG)中间接使用GL,可以实时显示大约7-11个全高清(1440 x 1080)视频。 |
|
|
Wolfspirit · 你如何确定一个时间点是否在一个时间段内? 2 年前 |
|
|
h-swell · QT——如何使用布局类? 2 年前 |
|
|
LeftFrog · Qt中macOS上的按钮颜色不变 2 年前 |
|
|
Bobby · Qt是否与RAII设计模式不兼容? 2 年前 |
|
|
Harvey · 如何更改Qt Creator配置项目的默认套件? 2 年前 |