Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Jakim programem (najlepiej konsolowym) można dokonać konwersji plików WMV do MP3?
Ostatnio edytowany przez Akkon (2010-06-24 19:10:57)
Offline
mplayer + lame. Obydwa jak najbardziej konsolowe.
mplayerem zrzucach plik do wav, lame'em kodujesz.
Offline
Ok. Załatwiłem to takim poleceniem
mplayer 01.wma -ao pcm:file=01.wav && lame -h 01.wav 01.mp3
Fajnie by mieć jakiś krypt, który konwertował by wszystkie pliki w katalogu wyciągając nazwę ze starego pliku.
Ostatnio edytowany przez Akkon (2010-06-24 19:10:23)
Offline
Akkon napisał(-a):
Ok. Załatwiłem to takim poleceniem
Kod:
mplayer 01.wma -ao pcm:file=01.wav && lame -h 01.wav 01.mp3Fajnie by mieć jakiś krypt, który konwertował by wszystkie pliki w katalogu wyciągając nazwę ze starego pliku.
Prosta pętelka:
#!/bin/bash for FILE in *.wma *.WMA; do mplayer "$FILE" -ao pcm:file=${FILE}.wav lame --opcje ${FILE}.wav && rm -f ${FILE}.wav mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA).wav.mp3}.mp3 done
Do edycji tagów polecam lltag. Zwłaszcza jak masz dobrze ponazywane pliki (typu: 01. Wykonawca - tytuł.ogg)
Offline
azhag napisał(-a):
Prosta pętelka
Dzięki, ale to jednak nie takie proste wcale ;) Moje pliki mają w nazwach spacje
01 coś tam jeszcze.wmv
A Twój skrypt generuje tylko pliki w takiej postaci
01
Co więcej, są to pliki wav. Lame zgłasza błędy i nie konwertuje do mp3.
Ostatnio edytowany przez Akkon (2010-06-24 22:01:45)
Offline
rename "s/ /_/g" *.wma
i już nie mają spacji ;)
Offline
Konsola i skrypty to jednak potężne narzędzia. Wracając jednak do meritum.
lame --opcje ${FILE}.wav && rm -f ${FILE}.wav
Jeśli ktoś będzie korzystał z tego skryptu w przyszłości to musi pamiętać o podaniu właściwego parametru --opcje dla lame, np.
lame -h ${FILE}.wav && rm -f ${FILE}.wav
Druga sprawa
mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA).wav.mp3}.mp3
W tej linii jest chyba błąd. Skrypt pozostawił u mnie nazwy plików w takiej formie
01_coś_tam_ jeszcze.wma.mp3
Offline
Akkon napisał(-a):
azhag napisał(-a):
Prosta pętelka
Dzięki, ale to jednak nie takie proste wcale ;) Moje pliki mają w nazwach spacje
Kod:
01 coś tam jeszcze.wmvA Twój skrypt generuje tylko pliki w takiej postaci
Kod:
01
azhag napisał(-a):
Kod:
rename "s/ /_/g" *.wmai już nie mają spacji ;)
A wystarczy otaczać zmienne cudzysłowami (umieszczenie ich nazw w nawiasach klamrowych nie jest i nie może być substytutem otoczenia zmiennej cudzysłowami!).
azhag napisał(-a):
Kod:
#!/bin/bash mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA).wav.mp3}.mp3
Ta ostatnia, niezwykle skomplikowana, konstrukcja, to w jakim shellu i pod jakimi warunkami działa? Bo w bash-u 4.1.5(1) nawet z shopt -s extglob nie robi tego co teoretycznie ma robić.
Offline
Szkoda, że nikt się nie podjął skorygowania skryptu azhag'a, bo po zmianie formatów plików i opcji lame wedle życzenia użytkownika mógłby być z tego bardzo przydatny konwerter. Poza tym ładnie by pasował do DUGowego FAQ ;)
Mam jeszcze jedno pytanie na marginesie. Jak korzystając z
rename
pozbyć się .wma z nazwy plików w całym katalogu
01_coś_tam_ jeszcze.wma.mp3
Offline
Minio napisał(-a):
Ta ostatnia, niezwykle skomplikowana, konstrukcja, to w jakim shellu i pod jakimi warunkami działa?
W zsh. Moja wina, że nie sprawdziłem czy mniej rozwinięte powłoki też obsłużą tę ostatnią, niezwykle skomplikowaną, konstrukcję.
(teraz ktoś powinien wyskoczyć z „zshyzm!”, jak ja to czynię z „bashyzmami!”)
Tylko, że to głupota była, bo pod $FILE kryje się tylko „plik.wma”, zatem:
mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA)}.mp3
(konstrukcję (wma|WMA) bash już obsługuje, prawda?)
Minio napisał(-a):
A wystarczy otaczać zmienne cudzysłowami (umieszczenie ich nazw w nawiasach klamrowych nie jest i nie może być substytutem otoczenia zmiennej cudzysłowami!).
No tak...
Akkon napisał(-a):
Szkoda, że nikt się nie podjął...
No dobra, naskrobię to jak należy jeszcze raz. Później. ;)
Akkon napisał(-a):
Jak korzystając z
Kod:
renamepozbyć się .wma z nazwy plików w całym katalogu
Kod:
01_coś_tam_ jeszcze.wma.mp3
O tak, składnia podobna do tej seda (a tak naprawdę to ta z, tfu tfu, perla).
rename "s/.wma.mp3$/.mp3/g" *.wma.mp3
Offline
azhag napisał(-a):
No dobra, naskrobię to jak należy jeszcze raz. Później. ;)
:)
O tak, składnia podobna do tej seda (a tak naprawdę to ta z, tfu tfu, perla).
Kod:
rename "s/.wma.mp3$/.mp3/g" *.wma.mp3
Tak w celach edukacyjnych zapytam tylko czy
rename "s/tu_znajduje_się_ zmieniana_część.nazwy$/a_tu_to_co ją.zastępuje/g" *.a_to_są_pliki_przewidziane_do.zmiany
???
Offline
Tak, dodam że $ w tu_znajduje_się_ zmieniana_część.nazwy oznacza koniec. Na przykładzie:
azhag@debian /tmp $ ls abc* abc.abc.abc.abc azhag@debian /tmp $ rename "s/.abc$/.xyz/g" *abc azhag@debian /tmp $ ls abc* abc.abc.abc.xyz azhag@debian /tmp $ rename "s/.abc/.xyz/g" *abc azhag@debian /tmp $ ls abc* abc.xyz.xyz.xyz azhag@debian /tmp $
Offline
azhag napisał(-a):
Kod:
mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA)}.mp3(konstrukcję (wma|WMA) bash już obsługuje, prawda?)
Tak, nawet w kilku wariantach (poprzedzanych różnymi symbolami wieloznacznymi, jak gwiazdka czy pytajnik), ale najwyraźniej nie obsługuje jej zagnieżdżonej w ${VAR%expression}.
Lub trzeba włączyć jakąś domyślnie wyłączoną opcję, ale nie chce mi się szukać w manie.
Offline