我尝试使用FFmpeg和Nodejs连接几个视频。我收到了“没有这样的文件或目录”错误。编写的代码是:
const glob = require("glob");
//store all the filenames with path to the videos
var inputVideos = glob.sync("/home/r/clips/*.mp4");
const output = "./output/output.mp4";
const util = require("util");
const exec = util.promisify(require("child_process").exec);
async function concatVideos(inputVideos, outputVideoPath) {
//imported to get the name of videofile easily
var path = require("path");
//the next ffmpeger variable,will keep the lines
//ffmpeg -i videofile1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate_videofile1.ts
//ffmpeg -i videofile2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2_videofile2.ts
var ffmpeger = "";
ffmpeger = inputVideos
.map(
video =>
` ffmpeg -i ${video} -c copy
-bsf:v h264_mp4toannexb -f mpegts ./intermediate_${
path.parse(video).name
}.ts`
)
.join("\n");
//concatenator keeps the segment
//"concat:intermediate_videofile1.ts|intermediate_videofile2.ts"
var concatenator = '"concat:';
concatenator +=
inputVideos
.map(video => `./intermediate_${path.parse(video).name}.ts`)
.join("|") + '"';
await exec(
`
${ffmpeger}
ffmpeg -i ${concatenator} -c copy -bsf:a aac_adtstoasc ${outputVideoPath}`
);
}
concatVideos(inputVideos, output);
并且误差为
concat:./intermediate_0.ts|./intermediate_1.ts|./intermediate_2.ts|./intermediate_3.ts|./intermediate_4.ts|./intermediate_5.ts|./intermediate_6.ts|./intermediate_diegoortiz1399.ts|./intermediate_dog.ts|./intermediate_dogstify.ts|./intermediate_dylan50568.ts|./intermediate_gabrieleecorrea.ts|./intermediate_golden_leo.ts|./intermediate_helenapatiih.ts|./intermediate_kaiobreno2.ts|./intermediate_khancorso.ts|./intermediate_kitakaze_s_lili.ts|./intermediate_oliver45743.ts|./intermediate_pinkie_pets.ts|./intermediate_shibakoma.ts|./intermediate_thepetcollective.ts|./intermediate_tod_the_foxx.ts|./intermediate_userpub3y9m7kb.ts|./intermediate_warriorbulldogs.ts: No such file or directory```
So the command line would be:
视频文件1.mp4-c拷贝-bsf:v h264_mp4到附件b-f mpegts中间_视频文件1.ts|输出/输出.mp4”-c复制-bsf:a
你能帮助我们吗?非常感谢。真的。
2条答案
按热度按时间gcxthw6b1#
因此,我找到的解决方案位于https://www.npmjs.com/package/ffmpeg-concat中。
首次安装:
然后:要连接视频,请执行以下操作:
它将连接一个视频,音频,和过渡。哇!!!
ui7jx7zq2#
使用editly
像这样的连环视频:
(我花了一整天的时间在ffmpeg和其他非节点解决方案上,这是最简单的解决方案,尽管ffmpeg可能更快)