Конвертировать библиотеку треков WMA в MP3?
Я знаю, что есть такие опции, как Sound Converter, для выполнения одной дорожки или каталога за раз, но есть ли инструменты, которые будут рекурсивно сканировать подкаталоги каталога и конвертировать все WMA в MP3?
Я в основном хотел бы освободить его от моей ~/Music и позволить ему делать свое дело без необходимости вручную предоставлять мне один подкаталог за раз.
9 ответов
MPlayer, вероятно, уже установлен. Также убедитесь, что у вас есть хром:
sudo apt-get install mplayer lame
Тогда есть два способа сделать это: простая для чтения версия и короткий и грязный скрипт для этого:
Все wma должны быть в вашем текущем каталоге. Создайте файл с именем wmamp3 в вашем домашнем каталоге (~/), содержащий:
#!/bin/bash
current_directory=$( pwd )
#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done
#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
#cleanup
rm audiodump.wav
chmod +x ~/wmamp3
сделать его исполняемым
sudo cp ~/wmamp3 /usr/bin
чтобы вставить это где-нибудь полезное на вашем пути
Введите "wmamp3", чтобы запустить преобразование.
Короткая и грязная версия (делает то же самое, что и выше):
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader "$i" && lame -m j -h --vbr-new -b 160 audiodump.wav -o "`basename "$i" .wma`.mp3"; done; rm -f audiodump.wav
Установите Soundconverter
и беги Soundconverter
от пусковой установки или терминала
Преобразование по умолчанию .ogg
изменить это на mp3
собирается edit-> preferences
по типу результатов. Format
в MP3 следующим образом:
Нажмите добавить папку, а затем выберите свою музыкальную папку. Вы можете выбрать выходную папку в вышеупомянутой конфигурации предпочтений, прежде чем нажимать на конвертировать.
Надеюсь, что это будет сделано в два клика:)
Mplayer и lame должны быть установлены первыми:
sudo apt-get install mplayer lame
Затем создайте скрипт ( справочную страницу) и выполните его:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader "${wma_file}" && lame -m s \
audiodump.wav -o "${wma_file}".mp3
rm audiodump.wav
done
Похоже, он делает именно то, что вы хотите. Имейте в виду, что вы можете поиграть с хромыми флагами, чтобы получить желаемый уровень качества.
Установите Perl Audio Converter (pacpl): sudo apt-get install pacpl
Эта команда преобразует все файлы wma в данном каталоге в файлы mp3 (оставляя оригиналы без изменений):
pacpl -r -to mp3 -only wma <directory name>
Если вы чувствуете себя рискованно, вы можете добавить --delete
Возможность также удалить оригиналы:
pacpl -r --delete -to mp3 -only wma <directory name>
я
Я знаю, что это немного устарело, но я изменил сценарий, показанный Дэвидом Фатчером. Изменения:
использование
/tmp
вместо текущей папки для временного файла WAV (это дало большое ускорение, когда я использовал это для преобразования файлов на флешку).Удалите файлы wma после того, как они (надеюсь, успешно) были преобразованы.
Вот:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# Modified by V10lator
# to delete the wma files and to use /tmp for temporary files
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
tmp_file=$(mktemp -t -u --suffix=.wav)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader -ao pcm:file="${tmp_file}" \
"${wma_file}" && lame -m s "${tmp_file}" \
-o "${wma_file}".mp3 && rm "${wma_file}"
rm "${tmp_file}"
done
Для тех, кто ищет версию графического интерфейса, которая может выбирать определенные типы файлов: инструмент KDE soundKonverter https://github.com/HessiJames/soundkonverter спрашивает, какие типы файлов должны быть добавлены в очередь разговоров.
Лучшее решение для моей огромной коллекции Audiobook, содержащей файлы mp3/ogg/wma.
Вот моя редакция сценария Марко Хаапала с использованием ffmpeg:
current_directory=$(pwd)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
# Also, it must be run as root to correctly handle spaces on Ubuntu 16
IFS=$'\n'
for wma_file in ${wma_files}; do
ffmpeg -i "${wma_file}" -q:a 0 "${wma_file}".mp3
#uncomment rm below to delete original wma's
#rm "${wma_file}"
done
Я предпочитаю ffmpeg, потому что он не меняет частоту дискретизации и ему не нужен промежуточный временный файл
Я использую WinFF, который в основном представляет собой графический интерфейс для ffmpeg.
sudo apt install winff
Он работает как для аудио, так и для видео.
Для этого можно просто использовать ffmpeg:
$ shopt -s globstar # enable ** globing support
$ for wma_file in **/*.wma; do
ffmpeg -i "$wma_file" "${wma_file%%.wma}.mp3"
done
Вы также можете использовать мое приложение... dmMediaConverter в массовом режиме. Для получения справки посмотрите это видео... вместо видеофайлов перетащите файлы wma. https://www.youtube.com/watch?v=rZR40mdFRoQ&index=1&list=PLwURYFQvHBAtG8wqzyVgOQ1WtEYSkiscO
Soundcoverter показывает ошибку что-то о модуле Windows Media и Python 2.7
Avconv работал нормально: avconv -i ./song.wma song.mp3