내 코드가 비디오를 원시 YCbCr 프레임으로 디코딩하는 곳의 비디오 플레이어를 작성하고 있습니다. Qt 프레임 워크를 통해 이들을 출력하는 가장 빠른 방법은 무엇입니까? 이미지를 HD 형식으로 너무 많이 복사하지 않도록하고 싶습니다.Qt로 고성능 비디오 출력
QImage 로의 소프트웨어 색상 변환 속도가 느리고 나중에 GUI로 그릴 때 QImage가 다시 복사됩니다.
내가 QAbstractVideoSurface 살펴했고 심지어 을 실행하는 코드를 가지고 있지만, VideoWidget 예 (http://idlebox.net/2010/apidocs/qt-everywhere-opensource-4.7.0.zip/multimedia-videowidget.html)에서이 같은 때문에 빠른 방법을 이해 할 수없는 한 렌더링은 여전히 QImage 와 QPainter를 ::의 drawImage를 호출하여 수행됩니다 , RGB에 있어야합니다.
선호하는 솔루션은 직접 하드웨어 표면에 액세스 할 수있는 것으로 보입니다. 으로 YCbCr을 디코딩하거나 적어도 RGB 변환 (libswscale 사용)을 직접 수행 할 수 있습니다. 그러나 나는 이것을 할 수있는 방법을 알지 못한다. (그래도 OpenGL을 사용하지 않으면 무료 크기 조절 을 얻을 수있다.)
나는 이것에 또한 흥미있다. 지금까지 내가 찾은 최선의 방법이 있지만, 더 좋은 방법이 있는지 알고 싶습니다. http://stackoverflow.com/questions/1242005/what-is-the-most-efficient-way-to-display-decoded-video-frames-in-qt –
어떤 플랫폼입니까? GPU에서 해독합니까? –
Phonon? - https://qt-project.org/doc/qt-4.8/phonon-overview.html –