gpt4 book ai didi

node.js - 如何在特定视频秒向视频文件添加背景音乐?在 Node 流利-ffmpeg中

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:57 25 4
gpt4 key购买 nike

我有一个 12 秒长的 audio.mp3 文件video.mp4 的长度为 60 秒。

我需要在视频的第 40 秒插入audio.mp3。

如何使用 Node-Fluent-ffmpeg 做到这一点?

最佳答案

我住在乌克兰,我不太懂英语,这就是我的认识。这些都是可以添加到类中的异步方法,我想你会明白本质的

// just variables
let cutesAudio = await this.cutAudio(audio, time, tempAudio);
let videoDuration = await this.getMediaDuration(video);
let mergeVideoAudio = await this.margeFiles(cutesAudio, video, tempVideo);
let cutMergeVideo = await this.cuteVideo(mergeVideoAudio, videoDuration, resultVideo);


// cut audio from a specific time and get temp.mp3
async cutAudio (audio, time, outputMp3) {
return new Promise((resolve, reject) => {
ffmpeg()
.input(audio)
.setStartTime(time)
.output(outputMp3)
.format('mp3')
.on('end', () => {
resolve(outputMp3);
}).on('error', (_err) => {
reject(_err);
}).run();
});
}

// get the video duration
async getMediaDuration (file) {
return new Promise((resolve, reject) => {
ffmpeg.ffprobe(file, (_err, metadata) => {
if (_err === null) {
resolve(metadata.format.duration);
} else {
reject(_err);
}
});
});
}


// connect the cut off temp.mp3 and the video and get temp.mp4
async margeFiles (audio, video, outputVideo) {
return new Promise((resolve, reject) => {
ffmpeg()
.videoCodec('libx264')
.format('mp4')
.outputFormat('mp4')
.input(audio)
.input(video)
.output(outputVideo)
.on('end', () => {
resolve(outputVideo);
}).on('error', (_err) => {
reject(_err);
}).run();
});
}

// we cut off the video we make it old length as the music can be longer.
async cuteVideo (video, time, result) {
return new Promise((resolve, reject) => {
ffmpeg()
.input(video)
.setDuration(time)
.format('mp4')
.output(result)
.on('end', () => {
resolve(result);
}).on('error', (_err) => {
reject(_err);
}).run();
});
}

关于node.js - 如何在特定视频秒向视频文件添加背景音乐?在 Node 流利-ffmpeg中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56433956/

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