将文件夹中的每个.flac文件转换为320kbps .mp3,而不会丢失元数据

时间:2018-07-27 19:29:30

标签: powershell ffmpeg

我正在尝试将文件夹中的每个.flac文件转换为320kbps .mp3,而不会丢失元数据

我尝试过:

ffmpeg -i *.flac -ab 320k -map_metadata 0 -id3v2_version 3 *.mp3

但它返回:*.flac: Invalid argument

我想做的是将每个flac文件转换为320kbps mp3,而不会丢失元数据

谢谢。

3 个答案:

答案 0 :(得分:0)

在CMD中尝试:

for %A IN (*.flac) DO ffmpeg -i "%A" -ab 320k -map_metadata 0 -id3v2_version 3 %~nA.mp3

答案 1 :(得分:0)

这似乎可以通过在Get-ChildItem上进行简单循环来实现,例如...

PS C:\Users> Get-ChildItem *.flac | % {
  $mp3filename = $_.basename + '.mp3'
  ffmpeg -i $_.filename -ab 320k -map_metadata 0 -id3v2_version 3 $mp3filename
}

这似乎也解决了评论中提到的“无通配符”问题

答案 2 :(得分:0)

在bash中,这很容易做到:

for f in *.flac;do ffmpeg -i ${f} -ab 320k -map_metadata 0 -id3v2_version 3 ${f%.*}.mp3;done;

只要文件名不包含空格。