Wir erstellen Animationen mit HTML5 + Javascript. Jetzt möchten wir diese Animationen in Videodateien umwandeln (MPEG4 oder andere, spielt keine Rolle), so dass browserlich herausgeforderte Leute auch die Animationen sehen können. Animationen enthalten eine Audiospur.
Wir suchen nach Lösungen, bei denen die HTML-Seite serverseitig gerendert und aufgezeichnet wird. Ich weiß, dass es Werkzeuge gibt, um Webseiten-Thumbnails usw. statische Bilder zu erzeugen. In unserem Anwendungsfall sollten wir jedoch eine Videodatei ausgeben.
Welche Möglichkeiten gibt es? Ist Headless X Server + Firefox ein Weg zu gehen? Vorzugsweise würden wir dies in einer Cloud (Amazon EC2) ausführen.
Auch wenn es etwas Besonderes gibt, was wir beim Spielen von Animationen in Nicht-Echtzeit-Geschwindigkeiten denken sollten, würde ich gerne hören - z.B. Synchronisieren von HTML5-Audio mit Animation.
Nur um zu bemerken, dass wir dieses Problem durch
gelöst habenAusführen von Firefox auf einem kopflosen Server. Ein Server mit einer ordentlichen Grafikkarte.
Mit einem Selenium Python-Kontrollskript zum Starten / Stoppen des Renderings
Eine benutzerdefinierte Rendering-Schleife, die die XPCom-API von Firefox verwendet, um <canvas>
rohe Pixel direkt in die Codierpipeline zu füttern
Eine benutzerdefinierte JavaScript-Rendering-Schleife, bei der die Uhr nicht von einer echten Uhr kommt, sondern Frames mit einer stabilen Framerate, die keine Echtzeit ist, in den Renderer schneidet
Ein ziemlich komplexes System, passt also nicht in ein Antwortfeld: (
Eine Sache, die je nach Animation funktionieren könnte, wäre, ein animiertes Gif zu erstellen. Wenn genügend Standbilder Ihrer Animation aneinandergereiht sind, sollten Sie in der Lage sein, diese mit der richtigen Software in ein Video zu verwandeln. Dies ist eine ziemlich brute-Force-Lösung, aber wenn Sie Ihre Animation in einer "Frame-by-Frame" -Mode voranbringen können, könnte es funktionieren.
Klingt interessant. Ich habe eine ähnliche Sache mit der QtWebKit-Bibliothek gemacht, die einen headless X-Server benötigt, um zu laufen. Was ich tat, war das Konvertieren von Webseiten in PDF in großem Maßstab. Es kann sinnvoll sein, nach einigen webkit2pdf-Tools zu suchen, um ein Beispiel zu sehen, aus dem Sie erstellen können.
Ich würde mir die Bibliothek ansehen und sie mit einer anderen Aufzeichnungslösung kombinieren.
In puncto Tooling habe ich ziemlich gute Erfahrungen mit diesen Ruby-Tools gemacht:
Ich habe keine Ahnung, wie sie mit Audio umgehen, obwohl
Tags und Links html5 video audio screenshot firefox