2017-08-03 14 views
0

ich Qt 5.9-basierte Anwendung bin mit der & android auf Embedded Linux läuft. Die Anwendung verarbeitet Echtzeitdaten unter Verwendung von OpenGL ES 3.0 & zeigt OpenGL-Texturen in Echtzeit an. Ich zeige mit einer Rate von 30 Bildern pro Sekunde, was es ziemlich real macht & erscheint wie ein Video.Wie Qt Multimedia und C++ verwenden, um eine .mp4 Video aus OpenGL-Texturen speichern

Ich muss ein mp4 von 30 bis 40 Frames speichern, die mit OpenGL-Texturen angezeigt werden. Wie ich verstehe, kann ichQt Multimedia dazu nutzen, dies zu tun. Aber mir fehlt das Wissen, wie man das macht. Ich versuche zu lesen & verstehen, wie Teil von Links wie here & here.

Einer der mp4 ist gespeichert, die Wiedergabe kann mit QMediaPlayer wie erläutert here durchgeführt werden. Das sieht verdammt simpel aus. Aber ich habe Mühe herauszufinden, wie meine OpenGL-Texturen in einem .mp4 gespeichert werden, wenn ich sie brauche.

Also, wie speichere ich ein .mp4-Video aus den OpenGL-Texturen, die auf einem QML-Element angezeigt werden?

Hervorhebung zu irgendeinem grundlegenden Beispiel, das existiert, würde auch helfen.

Antwort

1

Ich glaube nicht, dass Qt Ihnen einen Gefallen tun wird, wenn es um die Erstellung von Inhalten geht. Die Multimedia-Einrichtungen von Qt dienen ausschließlich dem Zweck des Inhalts. Sie können MM spielen, nicht MM.

Sie werden explizit eine der vielen verfügbaren MM-Bibliotheken verwenden - vlc, ffmpeg, gstreamer, libav, um nur einige zu nennen.

+0

Ok. Daher war meine Erwartung, dass Qt Multimedia helfen würde, falsch. Gibt es ein Beispiel dafür, wie man 'ffmpeg' oder' vlc' verwendet? –

+1

https://ffmpeg.org/doxygen/trunk/encoding-example_8c-source.html – dtech

+0

[diesen Link] (http://blog.qt.io/blog/2017/02/21/making-movies-qml/) scheint auch 'ffmpeg' zu verwenden, um ein Video aus den angezeigten Bildern zu speichern. Ich lehne mich mit 'ffmpeg' zu erstellen mein Video –