繁体   English   中英

如何使用节点 fluent-ffmpeg 向视频添加音频?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM