繁体   English   中英

使用 node fluent 合并多个视频 ffmpeg

[英]Merge Multiple Videos using node fluent ffmpeg

要求是读取目录中的所有文件并合并它们。 我正在使用 node fluent-ffmpeg 来实现这一点。 首先读取目录中的所有文件,并通过添加.input连接字符串。

var finalresult="E:/ETV/videos/finalresult.mp4"
outputresult : It consists of all the files read in the directory.

/*Javascript*/
MergeVideo(outputresult);
function MergeVideo(outputresult){
console.log("in merge video");
var videostring = "";

for(i=1;i<5;i++)
    {
videostring = videostring+".input("+"'"+outputresult[i]+"'"+")";
}
console.log("Video String"+videostring);
    var proc = ffmpeg()+videostring
    .on('end', function() {
      console.log('files have  succesfully Merged');
        })
    .on('error', function(err) {
      console.log('an error happened: ' + err.message);
    })
    .mergeToFile(finalresult);
}

它给出了以下错误:

TypeError: Object .input('ETV 22-02-2015 1-02-25 AM.mp4').input('ETV 22-02-2015
9-33-15 PM.mp4').input('ETV 22-02-2015 9-32-46 AM.mp4').input('ETV 22-02-2015 8-
32-44 AM.mp4') has no method 'on'
    at MergeVideo (D:\Development\Node\node-fluent-ffmpeg-master\node-fluent-ffm
peg-master\examples\demo.js:140:6)
    at Object.<anonymous> (D:\Development\Node\node-fluent-ffmpeg-master\node-fl
uent-ffmpeg-master\examples\demo.js:129:1)
    at Module._compile (module.js:456:26)

任何帮助表示赞赏。

尝试这个

var fluent_ffmpeg = require("fluent-ffmpeg");

var mergedVideo = fluent_ffmpeg();
var videoNames = ['./video1.mp4', './video2.mp4'];

videoNames.forEach(function(videoName){
    mergedVideo = mergedVideo.addInput(videoName);
});

mergedVideo.mergeToFile('./mergedVideo.mp4', './tmp/')
.on('error', function(err) {
    console.log('Error ' + err.message);
})
.on('end', function() {
    console.log('Finished!');
});
var fluent_ffmpeg = require("fluent-ffmpeg");

var mergedVideo = fluent_ffmpeg();
var videoNames = ['./video1.mp4', './video2.mp4'];

videoNames.forEach(function(videoName){
    mergedVideo = mergedVideo.addInput(videoName);
});

mergedVideo.mergeToFile('./mergedVideo.mp4', './tmp/')
.on('error', function(err) {
    console.log('Error ' + err.message);
})
.on('end', function() {
    console.log('Finished!');
});

这个问题发生在 Cannot find a matching stream for unlabeled input pad 3 on filter Parsed_concat_0

因为其中一个文件中没有音频。

在这里回答: 在 ffmpeg 中添加无声音频

我尝试使用fluent-ffmpeg但无法成功:/ 经过数小时的调试后,我切换到本机解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM