如何使用 ffmpeg 将多个仅视频 mp4 文件与相应的仅音频 mp4 文件合并?

如何使用 ffmpeg 将多个仅视频 mp4 文件与相应的仅音频 mp4 文件合并?

我有一堆仅包含视频和音频的 mp4 文件,想编写脚本来合并这两个文件。但问题是,有多个视频和音频文件,文件名中分别用 (视频) 或 (音频) 表示。

这就是我手动操作的方式:

ffmpeg -i "Videofile (Video).mp4" -i "Audiofile (Audio).mp4" -preset fast -crf 1 "Output file Name.mp4"

答案1

cat - << EOS > myVideoAudioMergerScript 
#!/bin/bash

for file in *\(Video\).mp4; do
     baseName=${file%\(*} 
     #echo baseName=$baseName 
      echo ffmpeg -i \"$f\" -i \"${baseName}(Audio).mp4\" -preset fast -crf ${baseName% }_VideoAudio.mp4
done

chmod +x myVideoAudioMergerScript 

可以帮助您入门。一旦您确认输出echo正确,您可以删除echo或直接将输出通过管道传输到 shell,即

 myVideoAudioMergerScript | bash

我认为一些软件包认为()在文件名中包含空格字符和(括号)是一个好主意,但它增加了编写解决方案脚本的复杂性并且要求您对使用这些名称的任何变量进行双重引用。

我没有简单的方法来测试这个,所以如果你需要帮助,请用错误消息/文件名等的确切文本更新你的问题,然后使用{}鼠标选择的文本上的工具给出正确的格式code/data/output/fileName/statusMsg/errMsg

相关内容