0

我正在尝试使用 fluent-ffmpeg 将多个视频文件合并到流输出中。但它只流式传输第一个视频。

res.set('content-type', 'video/webm');    
var proc = ffmpeg()
        .mergeAdd('file-1.webm') // tried with input()
        .mergeAdd('file-2.webm')
        .mergeAdd('file-3.webm')
        .format('webm')
        .size('680x?')
        .on('end', function() {
          console.log('file has been converted succesfully');
        })
        .on('error', function(err) {
          console.log('an error happened: ' + err.message);
        })
        // save to stream
        .pipe(res, {end:true})

有任何想法吗?

4

1 回答 1

0

是的,尽管我在没有 fluent-ffmpeg 的情况下完成了这项工作。相反,生成 ffmpeg 并使用一个输入文件,该文件以正确的顺序列出要合并的文件。

import { spawn } from 'child_process';

输入文件应如下所示:

file 'path/to/webm1.webm'
file 'path/to/webm2.webm'
file 'path/to/webm3.webm'

然后调用ffmpeg

await spawn('ffmpeg', [
'-y',
'-safe', '0',
'-f', 'concat',
'-i', 'path/to/ffmpeg-input.txt'),
'-c', 'copy',
'path/to/finalvideo.webm')
]);
于 2021-09-30T15:29:15.330 回答