2013-11-28 183 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); 

这个简单的解决方案适合我。