2013-07-08 3 views
5

Как извлечь аудиодорожку из видео в HTML5 Javascript в качестве исходных аудиоданных? То есть массив образцов?Как можно извлечь аудио из видео в HTML5?

Я совершенно новичок в API HTML5 Video, поэтому пример будет замечательным.

+0

Я не знаю, подходит ли Javascript для таких задач. Пожалуйста, обратитесь к этой теме: http://stackoverflow.com/questions/11182587/extract-audio-from-video-stream-using-javascript –

ответ

7

Web Audio API - это именно то, что вы хотите. В частности, вы хотите подать MediaElementAudioSourceNode в AnalyserNode. К сожалению, API Web Audio реализован только в 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

@ Джеймс Может быть? Аудио API может позволить вам буферизовать образцы и воспроизводить их каким-то образом, но я не уверен. В любом случае вы не смогли бы создать фактический видеофайл *, но вы могли бы синхронизировать отключенное видео с воспроизведением звука. – apsillers

Смежные вопросы