【问题标题】:Adding audio to multiple mp4 files using mp4box使用 mp4box 将音频添加到多个 mp4 文件
【发布时间】:2021-08-13 15:46:24
【问题描述】:

我正在尝试将相同的音频文件添加到大量 mp4 文件(当前没有音频流)。

我很确定我过去曾成功使用过以下代码(在 .bat 文件中):

for %%a in (*.mp4) do mp4box %%a -add 1sSilenceM.mp3 pause

但是,当我现在尝试运行它时,我收到了这个错误:-

“错误 - 指定了 2 个输入名称,请检查用法”

谁能解释为什么它不再起作用(或告诉我它有什么问题)?

谢谢

【问题讨论】:

  • 也许pause 不应该在同一行,或者至少前面有一个&符号。

标签: batch-file mp4box


【解决方案1】:

嗯嗯,

经过大量的摆弄(以及在互联网上的一些进一步研究),我在 mp4box 命令之后为文件名变量 (%%a) 添加了引号,这已经解决了问题。所以代码现在看起来像这样:-

for %%a in (*.mp4) do mp4box "%%a" -add 1sSilenceM.mp3 pause

我不明白为什么现在需要这样做,因为批处理文件以前可以完美运行(在 Win 10 和更早版本上)。这可能与 Win 10 的一些更新有关吗?

任何可以提供任何见解的人,我都会很高兴听到他们的意见。

感谢所有读者/贡献者。

【讨论】:

  • 您应该始终双引号文件名,因为如果不这样做,文件名中的空格以及其他可能有问题的字符会导致您出现问题。作为一般规则,除非您绝对确定当前目录中的任何.mp4 文件都不会包含此类字符,否则您应该假设它们包含。你似乎仍然在行尾有pause,我已经告诉过你,并且你没有提供任何反馈确认。
  • 正如我在之前的“答案”中所说,在 '%%a' 周围添加双引号完全解决了问题,并且批处理现在可以正常运行。行尾的“暂停”不会造成任何问题,该例程仅在处理完文件夹中的所有视频后才会暂停,所以我没有改变它。 (我怀疑在它之前可能有一个换行符将它放在自己的一行上。)我担心(现在仍然是)这个批处理文件在过去运行良好(没有任何引号)而且我不需要将引号添加到正在...的 .mp3 文件中(续)
  • (contd.) ...已添加(但我会始终确保“添加”的任何文件的文件名中都没有问题字符。)我只是不明白(并且仍然想如果有人可以解释它)为什么批处理文件之前运行完美(没有任何引号)但现在它突然需要它们。但是,现在它运行正常并做我需要的事情,我想我可以不用解释就活下去,哈哈,但非常感谢你们的 cmets。
  • 我假设您突然遇到了一个名称中包含空格的文件,而在此之前的所有内容都已正确命名。
  • 不。在我运行的程序中涉及的任何文件名中肯定没有“非法”字符(或空格),但感谢您抽出宝贵时间提出建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多