如何使用node fluent-ffmpeg将音频添加到视频?

6pp0gazn  于 9个月前  发布在  Node.js
关注(0)|答案(3)|浏览(123)

我正试图添加在顶部视频使用ffmpeg音频

ffmpeg -i sample.mp4 -i sample.mp3 -c copy -map 0:v:0 -map 1:a:0 output.mp4

字符串
上面的代码在我的终端工作,但我想通过ffmpeg节点 Package 器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')

3ks5zfa0

3ks5zfa01#

new FFmpeg()
    .addInput(video)
    .addInput(audio)
    .saveToFile(destination, "./temp");

字符串
这对我来说是一个没有音频的视频。

vtwuwzda

vtwuwzda2#

在其他函数中传递输出:-

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")

biswetbf

biswetbf3#

MergeAdd和mergeToFile实际上有误导性的名称。它们用于将视频连接到单个视频文件中。
您应该使用addInput添加音频文件,然后使用saveToFile保存合并的输出。

相关问题