2013-07-08 11 views
5

W jaki sposób można wyodrębnić ścieżkę dźwiękową z filmu w formacie HTML5 Javascript jako nieprzetworzone dane audio? To znaczy. tablica próbek?Jak można wyodrębnić dźwięk z filmu w HTML5?

Jestem całkowicie nowy w interfejsie API HTML5, więc przykład może być świetny.

+0

Nie wiem, czy JavaScript nadaje się do takich zadań. Proszę odnieść się do tego tematu: http://stackoverflow.com/questions/11182587/extract-audio-from-video-stream-using-javascript –

Odpowiedz

7

Web Audio API jest dokładnie tym, czego potrzebujesz. W szczególności chcesz przekazać MediaElementAudioSourceNode do AnalyserNode. Niestety Web Audio API jest zaimplementowany tylko w Chrome (nieco zaimplementowany w FF), a nawet w 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

Dziękuję bardzo, to było to, o co prosiłem. Mamy nadzieję, że więcej przeglądarek będzie obsługiwać to wkrótce. – James

+0

Czy moglibyśmy pójść w drugą stronę? Biorąc pod uwagę próbki i materiał filmowy, czy można stworzyć film wideo? – James

+0

@James Może? Interfejs API audio może pozwolić na buforowanie próbek i odtwarzanie ich w jakiś sposób, ale nie jestem pewien. W każdym razie nie można utworzyć rzeczywistego pliku * wideo *, ale można zsynchronizować wyciszone wideo z odtwarzaniem audio. – apsillers

Powiązane problemy