我以前使用 Windows Media Player 翻录 CD 时,有数千首 WMA 格式的音乐曲目。现在我在工作时在 Linux 桌面上播放它们时遇到了问题。
有没有一个好的解决方案(适用于 Windows 或 Linux)可以将所有 WMA 转换为 MP3,同时将它们保留在与以前相同的目录中?我尝试使用 iTunes 来执行此操作,但它开始创建新目录来存储所有转换后的曲目,而这并不是我想要的。
答案1
如果您有数千个文件,那么这将需要很长时间。
find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;
(旧版本的 ffmpeg 可能需要,-map_meta_data
而不是。)-map_metadata
0:0
0:s:0
(新版本的 ffmpeg 可以使用-map_metadata 0 -movflags use_metadata_tags
代替-map_metadata 0:s:0
)
我在 Ubuntu 16.04 上测试了这一点。如果你还没有安装,你需要安装软件包ffmpeg
和libavcodec-extra-52
。
从包含所有 WMA 文件的父目录启动此命令。它将在所有子目录中搜索任何带有.wma
扩展名的文件并尝试将其转换为 MP3。如果源文件名为Awesome Song.wma
,则新文件将为Awesome Song.wma.mp3
,并将与源文件位于同一目录中。
如果您通常使用高于或低于 192k 的比特率,请将标志更改-ab 192k
为您想要的任何值。
答案2
这个添加的标志将告诉 ffmpeg 尝试保留 ID3 标签:
find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;
答案3
此程序可查找 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"' \;
答案4
免费 Mp3 Wma 转换器 1.95一定能完成你的任务。