2013-07-08 111 views
5

如何從HTML5 Javascript中的視頻中提取音軌作爲原始音頻數據?即一組樣本?如何從HTML5中的視頻中提取音頻?

我對HTML5 Video API完全陌生,所以一個例子會很棒。

+0

我不知道Javascript是否適合這樣的任務。 請參閱本主題: http://stackoverflow.com/questions/11182587/extract-audio-from-video-stream-using-javascript –

回答

7

Web Audio API正是你想要的。特別是,您想將MediaElementAudioSourceNode加入AnalyserNode。不幸的是,Web Audio API只在Chrome中實現(有些在FF中實現),甚至是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

非常感謝,這正是我所追求的。希望更多的瀏覽器能很快支持這一點。 – James

+0

我們也可以走另一條路嗎?鑑於一些樣本和素材,可以創建視頻嗎? – James

+0

@James也許? Audio API可能允許您緩衝樣本並以某種方式重新播放它們,但我不確定。在任何情況下,您都無法制作實際的視頻*文件*,但可以通過音頻播放同步靜音視頻。 – apsillers