Конвертировать библиотеку треков 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

Другие вопросы по тегам