2013-11-28 215 views
3

有一種方法可以在nodejs服務器中合併音頻(wav)和視頻(webm)?合併WAV音頻和WebM視頻

由於WebM是一種容器格式,我希望可以將音軌添加到現有的WebM文件中。 我是對的?

任何人都知道這樣做的NodeJS包?

+0

如果這個包幫助我嗎? - whammy [https://npmjs.org/package/whammy] - ncoder [https://npmjs.org/package/ncoder] – RikyTres

回答

7

找到了一個解決方案,但不是很容易做到。 這是必需的ffmpeg(或類似的)。

要安裝它,我做了這個步驟:

  1. (僅適用於Mac)安裝HomeBrew
  2. 運行的ffmpeg安裝了所有所需的相關性:

    sudo brew install ffmpeg --with-libvpx --with-theora --whit-libogg --with-libvorbis

    現在我們可以合併一個音頻和視頻文件,這個shell命令:

    ffmpeg -i video-file.webm -i audio-file.wav -map 0:0 -map 1:0 output-file-name.webm

在這裏,我們可以從我們的shell合併文件,但我需要的不是這個。我需要能夠從NodeJS服務器執行此操作,爲此我們可以運行此代碼。

var util = require('util'), 
    child_process = require('child_process'); 

var exec = child_process.exec; 

function puts(error, stdout, stderr) { 
    stdout ? util.print('stdout: ' + stdout) : null; 
    stderr ? util.print('stderr: ' + stderr) : null; 
    error ? console.log('exec error: ' + error) : null; 
} 

exec("ffmpeg -i video-file.webm -i audio-file.wav -map 0:0 -map 1:0 output-file-name.webm", puts); 

這個簡單的解決方案適合我。