2012-06-25 10 views
2

보이는 qt 위젯에 비디오 출력 (프레임 순서)을 적용하려고합니다. 처음에는 QLabel이이 시점에서 충분할 것이라고 생각했지만 ... 나는 틀 렸습니다. 픽스맵 변환은 큰 이미지 (예 : 1080p)에서 프로세서에 너무 많은 부담이됩니다.표시 할 고성능 QImage 출력

다른 해결책이 있습니까? (QLabel하지?) 코드의

예를 하나의 프레임 :

QImage m_outputFrameImage(width, height, QImage::Format_RGB888); 
memcpy(m_outputFrameImage.bits(), m_frameRGB->data[0], height * width * 3); 
QPixmap pixmap = QPixmap::fromImage(m_outputFrameImage); // BAD, slow and high load 
/* Bad too (Same code?) 
    QPainter painter; 
    painter.begin(&pixmap); 
    painter.drawImage(0, 0, m_outputFrameImage); 
    painter.end(); 
*/ 
labelVideo->setPixmap(pixmap); 

답변

4

예는 QGLWidget에 프레임을 렌더링하고 비디오 카드를 처리 할 수 ​​있습니다. 그것이 Qt MultimediaKit, Phonon 및 다른 사람들이하는 방법입니다.

얼마 전이 작업을 수행하는 방법을 보여준 코드를 공유했습니다. Image scaling (KeepAspectRatioByExpanding) through OpenGL