Rendern der HTML5-Animation serverseitig?

8

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.

    
Mikko Ohtamaa 27.04.2011, 14:37
quelle

4 Antworten

4

Nur um zu bemerken, dass wir dieses Problem durch

gelöst haben
  • Ausfü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: (

    
Mikko Ohtamaa 10.05.2012, 09:49
quelle
2

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.

    
cdeszaq 27.04.2011 14:51
quelle
0

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.

    
Max 27.04.2011 14:41
quelle
0

In puncto Tooling habe ich ziemlich gute Erfahrungen mit diesen Ruby-Tools gemacht:

Ich habe keine Ahnung, wie sie mit Audio umgehen, obwohl

    
Marc Seeger 02.08.2012 18:44
quelle