2013-07-08 5 views
5

Wie könnte eine Audiospur aus einem Video in HTML5-Javascript als rohe Audiodaten extrahiert werden? I.e. eine Reihe von Proben?Wie kann Audio aus einem Video in HTML5 extrahiert werden?

Ich bin völlig neu in der HTML5-Video-API, so ein Beispiel wäre toll.

+0

Ich weiß nicht, ob Javascript für solche Aufgaben geeignet ist. Bitte beziehen Sie sich auf dieses Thema: http://stackoverflow.com/questions/11182587/extract-audio-from-video-stream-using-javascript –

Antwort

7

Die Web Audio API ist genau das, was Sie wollen. Insbesondere möchten Sie eine MediaElementAudioSourceNode in eine AnalyserNode einspeisen. Leider ist die Web Audio API nur in Chrome implementiert (etwas in FF implementiert) und sogar in Chrome doesn't have full support for MediaElementAudioSourceNode yet.

var context = new webkitAudioContext(); 

// feed video into a MediaElementSourceNode, and feed that into AnalyserNode 
// due to a bug in Chrome, this must run after onload 
var videoElement = document.querySelector('myVideo'); 
var mediaSourceNode = context.createMediaElementSource(videoElement); 
var analyserNode = context.createAnalyser(); 
mediaSourceNode.connect(analyserNode); 
analyserNode.connect(context.destination); 

videoElement.play(); 

// run this part on loop to sample the current audio position 
sample = new Float32Array(analyser.frequencyBinCount); 
analyser.getFloatFrequencyData(sample); 
+0

Vielen Dank, das war genau das, wonach ich bin. Hoffentlich werden mehr Browser dies bald unterstützen. – James

+0

Können wir auch anders herum gehen? Könnte ein Video mit einigen Beispielen und Filmmaterial erstellt werden? – James

+0

@James Vielleicht? Die Audio-API erlaubt es Ihnen vielleicht, Samples zu puffern und sie irgendwie neu abzuspielen, aber ich bin mir nicht sicher. In jedem Fall konnten Sie keine tatsächliche Video * -Datei * erstellen, aber Sie können ein stummgeschaltetes Video mit der Audiowiedergabe synchronisieren. – apsillers