Videos mit FFMpeg abspielen / Performance
Verfasst: 26. Juni 2009 16:08
Hi@all
Ich habe konkret vor unter Linux FFMPEG als Bibiliothek für Videos zu verwenden.
Ich möchte in einer QGraphicsScene verschiedene grafische Elemente darstellen ,dass kann zum Beispiel ein transparentes Video mit einem PDF dahinter sein.
Die Gründe die gegen Phonon-Schnittstelle sprechen sind folgende :
Sie ist nicht transparent genug ,dass heißt wenn Fehler auftreten wird eine eventuelle Analyse durch die komplexe Struktur erschwert.
Unter Linux gibt es 2 Backends ,das eine davon also die Xinelib kann das Video nur als Overlay ausgeben ist also ungeeignet für mein Vorhaben.
Das 2. der Gstreamer hat leider Probleme mit dem Scaling und läuft deswegen extrem schlecht.
Als drittes wäre da noch die Möglichkeit der VDPAU-Schnittstelle von Nvidia zu nutzen ,diese entfällt bei Gstreamer und ist bei Xine noch nicht ganz ausgereift ganz im Gegensatz zu FFMpeg.
Wichtig ist also dass ich die Möglichkeit habe Videos auf ein QGraphicsImage zu rendern. Dabei stehe ich vor einem großen Problem.
Um ein Frame auf ein Widget oder ein QGraphicsImage zu rendern muss ich es vorher umwandeln in ein QImage.
Das ist ein eigendlich nicht wirklich ein Problem, das Problem ist ein ganz anderes welches mit der Architektur des X11-Servers zu tun hat.
Der X11-Server basiert nähmlich auf ein Server-Client System das heißt QImages befinden sich auf dem Client-Teil und QPixmap auf dem Server-Teil ,da sich das QImage nun lokal auf dem Client-Teil befindet muss es natürlich zum Server-Teil kopiert werden und das kostet richtig Performance.
Vielleicht hat sich jemand von euch schon mit dem Problem befasst und kennt eine Lösung für ich die Performance in dem Bereich optimieren kann.
Ich habe konkret vor unter Linux FFMPEG als Bibiliothek für Videos zu verwenden.
Ich möchte in einer QGraphicsScene verschiedene grafische Elemente darstellen ,dass kann zum Beispiel ein transparentes Video mit einem PDF dahinter sein.
Die Gründe die gegen Phonon-Schnittstelle sprechen sind folgende :
Sie ist nicht transparent genug ,dass heißt wenn Fehler auftreten wird eine eventuelle Analyse durch die komplexe Struktur erschwert.
Unter Linux gibt es 2 Backends ,das eine davon also die Xinelib kann das Video nur als Overlay ausgeben ist also ungeeignet für mein Vorhaben.
Das 2. der Gstreamer hat leider Probleme mit dem Scaling und läuft deswegen extrem schlecht.
Als drittes wäre da noch die Möglichkeit der VDPAU-Schnittstelle von Nvidia zu nutzen ,diese entfällt bei Gstreamer und ist bei Xine noch nicht ganz ausgereift ganz im Gegensatz zu FFMpeg.
Wichtig ist also dass ich die Möglichkeit habe Videos auf ein QGraphicsImage zu rendern. Dabei stehe ich vor einem großen Problem.
Um ein Frame auf ein Widget oder ein QGraphicsImage zu rendern muss ich es vorher umwandeln in ein QImage.
Das ist ein eigendlich nicht wirklich ein Problem, das Problem ist ein ganz anderes welches mit der Architektur des X11-Servers zu tun hat.
Der X11-Server basiert nähmlich auf ein Server-Client System das heißt QImages befinden sich auf dem Client-Teil und QPixmap auf dem Server-Teil ,da sich das QImage nun lokal auf dem Client-Teil befindet muss es natürlich zum Server-Teil kopiert werden und das kostet richtig Performance.
Vielleicht hat sich jemand von euch schon mit dem Problem befasst und kennt eine Lösung für ich die Performance in dem Bereich optimieren kann.