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
[quote=Akkon]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.[/quote]
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 [deb]lltag[/deb]. Zwłaszcza jak masz dobrze ponazywane pliki (typu: 01. Wykonawca - tytuł.ogg)
Offline
[quote=azhag]Prosta pętelka[/quote]
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 [b]--opcje[/b] 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
[quote=Akkon][quote=azhag]Prosta pętelka[/quote]
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
[/quote]
[quote=azhag]
rename "s/ /_/g" *.wma
i już nie mają spacji ;)[/quote]
A wystarczy [url=http://minio.jogger.pl/2009/11/21/popularne-bledy-popelniane-podczas-pisania-skryptow-powloki/#zmienne-wprost]otaczać zmienne cudzysłowami[/url] (umieszczenie ich nazw w nawiasach klamrowych nie jest i nie może być substytutem otoczenia zmiennej cudzysłowami!).
[quote=azhag]
#!/bin/bash mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA).wav.mp3}.mp3
[/quote]
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 [tt]shopt -s extglob[/tt] 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
[quote=Minio]Ta ostatnia, niezwykle skomplikowana, konstrukcja, to w jakim shellu i pod jakimi warunkami działa?[/quote]
W [tt]zsh[/tt]. 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 [tt]$FILE[/tt] kryje się tylko „plik.wma”, zatem:
mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA)}.mp3
(konstrukcję [tt](wma|WMA)[/tt] bash już obsługuje, prawda?)
[quote=Minio]A wystarczy otaczać zmienne cudzysłowami (umieszczenie ich nazw w nawiasach klamrowych nie jest i nie może być substytutem otoczenia zmiennej cudzysłowami!).[/quote]
No tak...
[quote=Akkon]Szkoda, że nikt się nie podjął...[/quote]
No dobra, naskrobię to jak należy jeszcze raz. Później. ;)
[quote=Akkon]Jak korzystając z
rename
pozbyć się .wma z nazwy plików w całym katalogu
01_coś_tam_ jeszcze.wma.mp3
[/quote]
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
[quote=azhag]No dobra, naskrobię to jak należy jeszcze raz. Później. ;)[/quote]
:)
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[/quote]
Tak w celach edukacyjnych zapytam tylko czyKod:
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 [tt]$[/tt] w [tt]tu_znajduje_się_ zmieniana_część.nazwy[/tt] 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
[quote=azhag]
mv ${FILE}.wav.mp3 ${FILE%.(wma|WMA)}.mp3
(konstrukcję [tt](wma|WMA)[/tt] bash już obsługuje, prawda?)[/quote]
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 [tt]${VAR%expression}[/tt].
Lub trzeba włączyć jakąś domyślnie wyłączoną opcję, ale nie chce mi się szukać w manie.
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00104 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.61.87' WHERE u.id=1 |
0.00078 | UPDATE punbb_online SET logged=1733992416 WHERE ident='3.145.61.87' |
0.00047 | SELECT * FROM punbb_online WHERE logged<1733992116 |
0.00037 | SELECT topic_id FROM punbb_posts WHERE id=150544 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=17104 ORDER BY posted |
0.00070 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17104 AND t.moved_to IS NULL |
0.00021 | SELECT search_for, replace_with FROM punbb_censoring |
0.00107 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17104 ORDER BY p.id LIMIT 0,25 |
0.00095 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17104 |
Total query time: 0.00581 s |