Konwertowanie wma na mp3 zbiorczo bez zmiany katalogu

8

Mam tysiące utworów muzycznych w formacie WMA, od kiedy korzystałem z Windows Media Player do zgrywania płyt CD. Teraz mam problemy z odtwarzaniem ich na pulpicie Linux w pracy.

Czy istnieje dobre rozwiązanie (dla systemu Windows lub Linux) do konwersji wszystkich plików WMA na pliki MP3, pozostawiając je w tych samych katalogach, co wcześniej? Próbowałem to zrobić za pomocą iTunes, ale zaczął tworzyć nowe katalogi do przechowywania wszystkich przekonwertowanych ścieżek, których nie chcę.

Wir
źródło
1
W Linuksie (nawiasem mówiąc, jaka dystrybucja?) Jakaś kombinacja find -execdiri ffmpegpowinna to zrobić, ale przeprowadzę test, zanim opublikuję odpowiedź.
William Jackson,
2
Pamiętaj, że za każdym razem, gdy konwertujesz format stratny, tracisz jakość. To, czy utrata jakości jest słyszalna, zależy od jakości oryginału, kodera używanego do transkodowania, sprzętu odtwarzającego i uszu. Gdybym to był ja, wolałbym raczej zgrywać płyty CD (jeśli to możliwe) niż transkodować. Mimo że wiem, że zajmuje to dużo więcej czasu. Można też rozważyć przechowywanie zgrywanie płyt CD w formacie bezstratnym (FLAC jest moim ulubionym, ale są inni), a transkodowanie że do MP3 dla przenośnego odtwarzacza MP3, itd. To oczywiście wymaga więcej miejsca na dysku.
Flimzy,
@William: W pracy używam openSUSE, w domu używam linux mint (ubuntu) i Windows 7. Będę musiał sprawdzić ffmpeg, kiedy będę miał czas i sprawdzić, czy mogę napisać skrypt bash czy coś takiego. Jeśli opublikujesz odpowiedź, która działa, zaznaczę to
Eddy
@Flimzy: Spróbuję przekonwertować kilka utworów i sprawdzić ze słuchu, czy zauważam spadek jakości. Nie jestem audiofilem, więc podejrzewam, że prawdopodobnie będzie dla mnie w porządku, ale przypuszczam, że jest lepiej bezpieczny niż przepraszam
Eddy
Używam DB PowerAmp Music Converter do tego niesamowitego oprogramowania, ale nie za darmo (wymagana licencja mp3) ... dbpoweramp.com/dmc.htm
Moab

Odpowiedzi:

6

Jeśli masz tysiące plików, zajmie to wieczność.

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

(Starsze wersje ffmpeg mogą wymagać -map_meta_datazamiast -map_metadata, 0:0zamiast 0:s:0.)

Przetestowałem to na Ubuntu 16.04. Jeśli jeszcze tego nie zrobiłeś, musisz zainstalować pakiety ffmpegi libavcodec-extra-52.

Uruchom to polecenie z katalogu nadrzędnego, który zawiera wszystkie pliki WMA. Przeszuka wszystkie podkatalogi w poszukiwaniu dowolnego pliku z .wmarozszerzeniem i spróbuje przekonwertować go na MP3. Jeśli plik źródłowy ma nazwę Awesome Song.wma, nowy plik będzie Awesome Song.wma.mp3i będzie w tym samym katalogu, co plik źródłowy.

Jeśli zwykle używasz bitrate wyższej lub niższej niż 192k, zmień -ab 192kflagę na cokolwiek chcesz.

William Jackson
źródło
1

Ta dodana flaga powie ffmpeg, aby spróbowała zachować tagi ID3:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;
normod
źródło
1

Ten znajduje pliki WMA, konwertuje je na MP3 z czystą nazwą rozszerzenia .mp3zamiast .wma.mp3i usuwa stary plik. Zostało to przetestowane pod kątem działania na Fedorze 19 podczas przeszukiwania plików WMA poprzez pliki o wartości 150 GB, które są uporządkowane według artist/album/<disk number>/file.

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;
Randell
źródło
Działa na komputerze Mac i wydaje się, że zachowuje także niektóre metadane. Chociaż dostałem wiele Queue input is backward in time [mp3 @ 0x7fbffb02ba00] Application provided invalid, non monotonically increasing dts to muxer in streamostrzeżeń.
adib