2013-11-28 1 views
3

Есть способ объединить аудио (wav) и видео (webm) на сервере nodejs?Слияние 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

    теперь мы можем объединить аудио и видео файлов с помощью этой команды оболочки:

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

Здесь мы можем объединить файл с нашей оболочкой, но мне не нужно было этого. Мне нужна была возможность сделать это с сервера 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); 

Это простое решение отлично подходит для меня.

2
+0

Спасибо за совет! ;) Я уже использую RecorderRTC для записи, но я создаю «свой собственный пакет» для команды ffmpeg ... -_- Я не искал пакет ... Но теперь все идет правильно! ;) – RikyTres

+0

Вы не разделяете этот пакет здесь? .. – deva11