将WMA批量转换为mp3,而无需更改目录


8

从我以前使用Windows Media Player翻录CD以来,我就有数千种WMA格式的音乐曲目。现在我在工作时无法在Linux桌面上播放它们。

是否有一个很好的解决方案(对于Windows或Linux),可以将所有WMA转换为MP3,同时将它们保留在与以前相同的目录中?我尝试使用iTunes来执行此操作,但是它开始创建新目录来存储所有不需要的转换后的曲目。


1
在Linux中(顺便说一下,是什么发行版?)find -execdirffmpeg应该做一些组合,但是在发布答案之前,我将进行一些测试。
威廉·杰克逊

2
请注意,每次在有损格式之间进行转换时,都会失去质量。这种质量损失是否可以听见取决于原始质量,用于转码的编码器,播放设备和耳朵。如果是我,我会考虑重新翻录CD(如果可能),而不是转码。即使我知道这需要花费更多时间。你也可以考虑存储在无损格式的光盘翻录(FLAC是我的最爱,但也有其他人),和转码以MP3为您的便携式MP3播放器,等等。这当然需要更多的磁盘空间。
Flimzy 2011年

@William:在工作中,我使用openSUSE,在家里,我使用linux mint(ubuntu)和Windows7。我必须在有空的时候检查ffmpeg,看看是否可以编写bash脚本或其他东西。如果您发布了有效的答案,那么我会在此注明
Eddy

@Flimzy:我将尝试转换一些曲目,并通过耳朵检查我是否注意到质量下降。我不是发烧友,所以我怀疑这对我来说可能没问题,但比我想的抱歉要安全得多
Eddy

我为此使用DB PowerAmp Music Converter,它是一款很棒的软件,但不是免费的(需要MP3许可证)... dbpoweramp.com/dmc.htm
Moab

Answers:


6

如果您有成千上万个文件,那么这将永远花费。

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;

(较早版本的ffmpeg可能需要-map_meta_data代替-map_metadata0:0而不是0:s:0。)

我在Ubuntu 16.04上进行了测试。如果尚未安装,则需要安装软件包ffmpeglibavcodec-extra-52

从包含所有WMA文件的父目录中启动此命令。它将在所有子目录中搜索具有.wma扩展名的任何文件,然后尝试将其转换为MP3。如果源文件名为Awesome Song.wma,则新文件将Awesome Song.wma.mp3与源文件位于同一目录中。

如果您通常使用高于或低于192k的比特率,请将-ab 192k标志更改为所需的任何值。


1

这个添加的标志将告诉ffmpeg尝试保留ID3标签:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;

1

这将找到WMA文件,将其转换为扩展名为.mp3而不是的MP3 ,.wma.mp3并删除旧文件。经过测试,该功能可在Fedora 19上正常运行,同时通过排列的150 GB有价值的文件搜索WMA文件artist/album/<disk number>/file

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;

在Mac上可以使用,似乎也保留了一些元数据。虽然我收到很多Queue input is backward in time [mp3 @ 0x7fbffb02ba00] Application provided invalid, non monotonically increasing dts to muxer in stream警告。
adib 2015年


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.