[英]How to add audio to video with node fluent-ffmpeg?
我正在尝试使用 ffmpeg 在顶级视频上添加音频
ffmpeg -i sample.mp4 -i sample.mp3 -c copy -map 0:v:0 -map 1:a:0 output.mp4
上面的代码在我的终端中工作,但我想通过 ffmpeg 节点包装器fluent-ffmpeg
使用它
此代码不起作用,也不会引发任何错误
ffmpeg()
.input('DATA/sample.mp4')
.input('DATA/sample.mp3')
.videoCodec('copy')
.outputOptions(['-map 0:v:0', '-map 1:a:0'])
// .outputOption('-map 1:a:0')
.save('node.mp4')
new FFmpeg() .addInput(video) .addInput(audio) .saveToFile(destination, "./temp");
这对我有一个没有音频的视频很有用。
MergeAdd 和 mergeToFile 实际上有误导性的名称。 它们用于将视频连接成一个视频文件。
您应该使用 addInput 添加音频文件,然后使用 saveToFile 保存合并的 output。
在其他 function 中通过 output:-
ffmpeg()
.addInput(videoInput) //your video file input path
.addInput(audioInput) //your audio file input path
.output(output) //your output path
.outputOptions(['-map 0:v', '-map 1:a', '-c:v copy', '-shortest'])
.on('start', (command) => {
console.log('TCL: command -> command', command)
})
.on('error', (error) => console.log("errrrr",error))
.on('end',()=>console.log("Completed"))
.run()
如果您的视频持续时间小于音频持续时间,此命令也会进行调整,(-shortest)此标志将选择持续时间较短的文件
保存文件:-
ffmpeg()
.addInput(videoInput) //your video file input path
.addInput(audioInput) //your audio file input path
.output(output) //your output path
.outputOptions(['-map 0:v', '-map 1:a', '-c:v copy', '-shortest'])
.saveToFile(destination, "./temp")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.