尝试使用ffmpeg SPACES IN NAME将mp3(和图像)转换为mp4时出错

时间:2016-04-12 19:06:36

标签: loops batch-file ffmpeg spaces

我找到了如何使用批处理文件中的以下代码批量转换MP3到MP4:

for %%f in (*.mp3) do ffmpeg -i %%f -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest %%~nf.mp4

它工作正常,除非FILENAME中有空格:FILENAME.mp3工作正常,但FILE NAME.mp3给出错误“没有这样的文件或目录。”

我尝试在%% f之前和之后插入“delims =”,但它一直说它是意外的。有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

for %%f in (*.mp3) do ffmpeg -i "%%f" -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest "%%~nf.mp4"

一般"quote filenames that may contain spaces"

"delims="只能与

中的for /f一起使用
for /f "delims=" %%f in (...

for的部分主要是从文件中读取行。

使用'dir /b /a-d filemask' - 包括引号,为for /f提供要处理的文件名列表。 /b表示"基本形式" (仅限姓名)和/a-d表示"没有目录"。

如果您的文件名包含空格之类的分隔符,请使用`" delims ="否则隐含的"令牌= 1"将截断在第一个分隔符处应用的值。