Конвертирование wma в mp3 без изменения каталога

8

У меня есть тысячи музыкальных треков в формате WMA с тех пор, как я использовал Windows Media Player для копирования компакт-дисков. Теперь у меня проблемы с воспроизведением их на рабочем столе Linux на работе.

Есть ли хорошее решение (для Windows или Linux) для преобразования всех WMA в MP3, оставляя их в тех же каталогах, что и раньше? Я попытался использовать iTunes, но он начал создавать новые каталоги для хранения всех преобразованных треков, которые мне не нужны.

Эдди
источник
1
В Linux (какой дистрибутив, кстати?) Какая-то комбинация find -execdirи ffmpegдолжна это делать, но я проведу некоторый тест, прежде чем отправлять ответ.
Уильям Джексон
2
Имейте в виду, что каждый раз, когда вы конвертируете между форматами с потерями, вы теряете качество. Слышна ли эта потеря качества, зависит от исходного качества, используемого вами кодера для транскодирования, вашего воспроизводящего оборудования и ваших ушей. Если бы это был я, я бы посмотрел на перезапись CD (если возможно), а не на перекодирование. Хотя я знаю, что это занимает намного больше времени. Вы могли бы также рассмотреть вопрос о хранении скопированных компакт - дисков в формате без потерь (FLAC моя любимая, но есть и другие), а также транскодирование , что в MP3 для вашего портативного MP3 - плеера и т.д. Это, конечно , требует больше дискового пространства.
Хлипкий
@William: На работе я использую openSUSE, дома я использую linux mint (ubuntu) и windows 7. Мне придется проверить ffmpeg, когда у меня будет время, и посмотреть, смогу ли я написать скрипт bash или что-то в этом роде. Если вы отправите ответ, который работает, то я отмечу это
Эдди
@Flimzy: Я постараюсь преобразовать несколько треков и на слух проверить, замечу ли я потерю качества. Я не аудиофил, поэтому я подозреваю, что это, вероятно, будет хорошо для меня, но лучше, чем потом сожалеть, я полагаю
Эдди
Я использую DB PowerAmp Music Converter для этого, потрясающего программного обеспечения, но не бесплатно (требуется mp3-лицензия) ... dbpoweramp.com/dmc.htm
Моав

Ответы:

6

Если у вас есть тысячи файлов, это займет вечность.

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) .

Я проверял это на Ubuntu 16.04. Если вы этого еще не сделали, вам нужно установить пакеты ffmpegи libavcodec-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 \;
normod
источник
1

Он находит файлы WMA, преобразует их в MP3 с чистым расширением .mp3вместо имени .wma.mp3и удаляет старый файл. Это было проверено для работы в Fedora 19 при поиске файлов WMA по 150 ГБ файлам, которые упорядочены 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предупреждений.
августа