gpt4 book ai didi

javascript - 在nodejs上使用ffmpeg连接mp4视频文件

转载 作者:行者123 更新时间:2023-12-02 21:14:36 25 4
gpt4 key购买 nike

我正在尝试使用 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:

ffmpeg -i videofile1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts middle_videofile1.tsffmpeg -i videofile2.mp4 -c 复制 -bsf:v h264_mp4toannexb -f mpegts middle_videofile2.tsffmpeg -i "concat:intermediate_videofile1.ts|intermediate_videofile2.ts"-c 复制 -bsf:a aac_adtstoasc ./output/output.mp4

你能帮助我们吗?非常感谢。确实。:>

最佳答案

所以,我找到的解决方案在 https://www.npmjs.com/package/ffmpeg-concat .

首次安装:

npm i ffmpeg-concat

然后:要连接视频:

const concat = require('ffmpeg-concat')
const glob=require('glob')

//an array of video path to concatenate
const videos=glob.sync('/home/username/Downloads/clips/*.mp4')

const output='./output/concatenated.mp4'

//a function to merge an array of videos with custom music
//and a transition fadegrayscale of 500ms duration between videos.
async function oneTransitionMergeVideos(){
await concat({
output,
videos,
audio:"/home/username/Downloads/music/music.m4a",
transition: {
name:"fadegrayscale",
duration: 500
}
})
}

oneTransitionMergeVideos()

它将连接视频、音频和过渡。呜呼!!!

关于javascript - 在nodejs上使用ffmpeg连接mp4视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61003625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com