gpt4 book ai didi

node.js - fluent-ffmpeg - 如何在不丢失音频的情况下合并两个相邻的视频?

转载 作者:行者123 更新时间:2023-12-04 23:18:41 28 4
gpt4 key购买 nike

我想将两个视频合并为一个,一个在左侧,另一个在右侧,而不是串联。下面的代码几乎可以正常工作,但是两个音频都丢失了。我怎样才能做到这一点而不会失去声音?

ffmpeg()
.input('video1.mp4')
.input('video2.mp4')
.videoCodec('libx264')
.complexFilter([
'[0:v]scale=400:300[0scaled]',
'[1:v]scale=400:300[1scaled]',
'[0scaled]pad=800:300[0padded]',
'[0padded][1scaled]overlay=shortest=1:x=400[output]',
])
.outputOptions(['-map [output]'])
.output('output.mp4')
.on('error', function (er) {
console.log('error occured: ' + er.message);
})
.on('end', function () {
console.log('success');
})
.run();

最佳答案

根据@kesh 的评论,添加 amix 过滤器解决了它。这是我的代码。

ffmpeg()
.input('video1.mp4')
.input('video2.mp4')
.videoCodec('libx264')
.complexFilter([
'[0:v]scale=400:300[0scaled]',
'[1:v]scale=400:300[1scaled]',
'[0scaled]pad=800:300[0padded]',
'[0padded][1scaled]overlay=shortest=1:x=400[output]',
'amix=inputs=2:duration=shortest', ///////// here
]).outputOptions(['-map [output]'])
.output('output.mp4')
.on('error', function (er) {
console.log('error occured: ' + er.message);
}).on('end', function () {
console.log('success');
}).run();
您不必写 :duration=shortest如果你不需要它。此命令用于确定混合视频持续时间。

关于node.js - fluent-ffmpeg - 如何在不丢失音频的情况下合并两个相邻的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71452306/

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