Qual è il modo più veloce per visualizzare le immagini su un widget Qt? Ho decodificato il video usando libavformat e libavcodec, quindi ho già raw RGB o YCbCr 4: 2: 0 frame. Attualmente sto usando un QGraphicsView con un oggetto QGraphicsScene contenente un QGraphicsPixmapItem. Attualmente sto ottenendo i dati del frame in un QPixmap usando il costruttore QImage da un buffer di memoria e convertendolo in QPixmap usando QPixmap :: fromImage().Qual è il modo più efficiente per visualizzare i frame video decodificati in Qt?
Mi piacciono i risultati di questo e sembra relativamente veloce, ma non posso fare a meno di pensare che ci deve essere un modo più efficiente. Ho anche sentito che la conversione di QImage in QPixmap è costosa. Ho implementato una soluzione che utilizza una sovrapposizione SDL su un widget, ma mi piacerebbe stare con Qt solo perché sono in grado di catturare facilmente i clic e altre interazioni dell'utente con il display video utilizzando QGraphicsView.
Sto eseguendo qualsiasi conversione del ridimensionamento o dello spazio dei colori richiesta con libswscale, quindi vorrei solo sapere se qualcuno ha un modo più efficiente di visualizzare i dati dell'immagine dopo che è stata eseguita tutta l'elaborazione.
Grazie.
ho convertito i pacchetti YUV a RGB con swscale nel mio thread decoder e utilizzato il metodo. correndo in modo impeccabile. – baci
'p.SetRenderHint (QPainter :: SmoothPixmapTransform, 1);' - setRenderHint deve essere in minuscolo. – ottoshmidt
grazie, @ottoshmidt. Fisso. –