2013-06-10 9 views
8

Ich bin auf der Suche nach einem Video-Encoder vollständig in Javascript. Die Idee ist, dass der Benutzer in der Lage ist, ein existierendes Video (einfach genug) oder eine Reihe von Bildern anzugeben und dann in der Lage zu sein, es zur Veröffentlichung in H.264 zu kodieren.H.264 Video-Encoder in Javascript

Ich verstehe, dass die Codierung von Inhalten derzeit nicht unterstützt wird, aber ich frage mich, ob dies etwas ist, das vollständig in Javascript (oder einer Flash-Brücke) möglich ist oder nicht?

Danke.

+0

Genau so ist es klar, werden Sie gefragt, ob Sie die Komprimierung von Grund auf neu in JavaScript Video implementieren könnte, oder wenn es einige Anlage zur Verfügung zu tun es für dich? – rakslice

+0

Hier ist ein experimenteller clientseitiger Webm-Encoder: http://antimatter15.com/wp/2012/08/whammy-a-real-time-javascript-webm-encoder/ – forresto

Antwort

1

Video-Encoding ist im Wesentlichen nur eine spezielle mathematische Operation auf binäre Daten aus einer Datei, um mehr binäre Daten in eine andere Datei zu bekommen. Vorausgesetzt, Sie haben eine Möglichkeit, die Daten (z. B. HTML 5 FileReader) und heraus (z. B. AJAX) in die Wege zu bekommen, die Sie benötigen, ist es sicherlich im Rahmen der Möglichkeit für den Teil in der Mitte in JavaScript zu sein.

3

Es ist möglich, einen Video-Encoder zu Javascript mit emscripten zu kompilieren. Zum Beispiel, hier ist eine Emscripten kompilierte Version von VP9 Googles libvpx Bibliothek:

https://bitbucket.org/desmaj/libvpx.js/overview

Leider ist es unglaublich langsam - in der Größenordnung von einem Zehntel der Geschwindigkeit der nativen Bibliothek. Ich glaube, dies liegt an der Tatsache, dass es viel Speicherzugriff gibt, und das ist unglaublich langsam in emscripten (siehe https://bugzilla.mozilla.org/show_bug.cgi?id=771106). Außerdem basiert das Codieren im Allgemeinen auf GPU- oder SIMD-Parallelität, die derzeit in Javascript nicht verfügbar ist.

Ich denke, Video-Codierung ist derzeit in Javascript derzeit nicht möglich. Die beste Lösung wäre, dass W3C HTML5 eine Videokodierungs-/Dekodierungs-API hinzufügt, vielleicht als Teil von WebRTC/getUserMedia.

Auch finden Sie in diesem Blog-Post, die die Situation beschreibt:

https://brendaneich.com/2013/05/today-i-saw-the-future/

Verwandte Themen