Bardzo często zdarza mi się odtwarzać muzykę mplayerem. Jest to odtwarzacz konsolowy, co sprawia pewne kłopoty. Brakuje mu także opcji odtwarzania wszystkich utworów z danego katalogu i podkatalogów.
Oto rozwiązanie tego problemu za pomocą narzędzia find:
$ find -type f -printf "`pwd`/%p\n" | shuf > /tmp/pls && mplayer -playlist /tmp/pls
Kilka uwag:
- używam komendy "shuf" aby zrandomizować listę odtwarzanych utworów. mplayer posiada opcję -shuffle, ale powoduje ona losowanie przy każdej zmianie utworu. shuf ustala jedną permutację listy, dzięki czemu można się cofnąć do odegranego już utworu
- lista tworzona jest w /tmp/pls. Można uprościć polecenie find jeżeli zapiszemy ją w aktualnym katalogu:
$ find -type f | shuf > pls && mplayer -playlist pls
Ja nie chcę jednak sobie zaśmiecać katalogów playlistami.
Można wreszcie nie używać pliku pomocniczego, a korzystać z przekierowania strumieni:
$ find -type f | shuf | mplayer -playlist -
Wtedy jednak nie można sterować mplayerem, np. zmniejszając głośność lub zmieniając utwór. W tym momencie shuf staje się zbędny.
$ find -type f | mplayer -shuffle -playlist -
Na dobrą sprawę możemy pominąć także parametr "-type f" który mówi find by wyświetlał jedynie pliki, a pomijał katalogi.
$ find | mplayer -shuffle -playlist -
W ostateczności można też słuchać plików w kolejności podawanej przez find:
$ find | mplayer -playlist -
I tak wygląda komenda od której zacząłem :-)
wtorek, marca 31, 2009
Subskrybuj:
Posty (Atom)