2016-11-11 169 views
0

我使用ffmpeg制作Windows批处理脚本,可以将音频文件转换为多种格式。使用ffmpeg批量转换

我希望音频在这里以两种格式转换。 32kbps和40kbps。

Setlocal EnableDelayedExpansion 
for %%a in ("*.*") do ffmpeg -i "%%a" -b:a 32000 "%%~na - [email protected]" 
for %%a in ("*.*") do ffmpeg -i "%%a" -b:a 40000 "%%~na - [email protected]" 
pause 

但是,看来我得到了三个输出。

声音 - [email protected]

声音 - MP3 @ 40kbps的-MP3

声音 - MP3 @ 32kbps的 - [email protected]

我知道我必须做的事情这里错了,因为我只想要两个文件。为什么我为什么要在这里获得第三种格式(sound mp3 @ 32kbps - [email protected])以及如何避免这种情况?


这是更新的代码我使用:

@echo off 
for %%a in (*.*) do ( 

    ffmpeg -i "%%a" -b:a 32000 -ar 44100 "%%~na - [16-bit 44,100kHz - 32kbps].mp3" 
) 
pause 
+0

对不起,我不使用的ffmpeg,我想这些问题都涉及到你的资源文件和更改后的选项不是批处理文件等。 – LotPings

+0

感谢您的帮助,但是错误提示'converter.bat:处理输入时发现无效数据,这意味着ffmpeg在批处理文件中发现错误,而不是音频文件。 – Arete

回答

2

第二个for循环也从1日为处理新生成的MP3。 更好地利用只有一个:

Setlocal EnableDelayedExpansion 
for %%a in (*.*) do ( 
    ffmpeg -i "%%a" -b:a 32000 "%%~na - [email protected]" 
    ffmpeg -i "%%a" -b:a 40000 "%%~na - [email protected]" 
) 
pause 
+0

出于某种原因,这给了我'处理输入时发现无效的数据':https://i.imgur.com/GzQJ4Ax.png这是我使用的代码https://i.imgur.com/UAzw5ol.png – Arete

+0

@Arete在不知道你的确切代码或输入文件的情况下,很难说出任何关于它的信息。我用你的'*。*'这不是一个好主意,因为它需要每一个可能的扩展。你应该改变它为mp3或任何你的来源看起来像。如果我的答案是正确的,我会很高兴,如果你检查相应的大绿色标记。干杯 – LotPings

+0

我已经添加了我正在使用的问题的代码。至于哪种文件格式我试图转换结果是相同的..它可以是WAV,MP3或任何其他音频格式 – Arete