- Registriert
- 3 Aug. 2014
- Beiträge
- 28.573
Hallo,
ich würde euch gerne XMMS2 vorstellen, ein Client/Server Medienplayer, hier im Anwendungsfall für das Hören von Musik und Steuerung über ein simples aber effizienten Kommandozeilen-Client.
Was XMMS2 auch ist, laut Debian.org:
Ich versuche erst mal zu beschreiben aus was es besteht und was damit mögliche ist, dann die Installation und nötigen Schritte zur Nutzung einzugehen und dann die Handhabung, im Kommandozeilen Interface, genauer zu beschreiben.
Zunächst einmal, aus welchen Komponenten besteht XMMS2 in der Regel?
Folgende Paketname sind aus Debian entnommen:
xmms2 - Client/Server-basiertes Medienabspielsystem (Das Hauptpaket für die Installation)
xmms2-core - XMMS2 - Kernpaket
xmms2-client-cli - XMMS2 - Kommandozeilenclient
und für die Wiedergabe von Audio:
xmms2-plugin-pulse - XMMS2 - Erweiterung zur PulseAudio-Ausgabe
oder
xmms2-plugin-alsa - XMMS2 - ALSA-Ausgabe
oder
xmms2-plugin-oss - XMMS2 - OSS-Ausgabe
Unterstütze Formate (über Plugins):
Audiodaten:
APE, Mp2, Mpeg2/Mp4 Audiodekoder (über Faad), FLAC, Mp3, Ogg, sndfile, Speex, TTA, Vorbis, wav, CD-Audio (CDDA), .wma
Unterstütze Wiedergabelisten Typen:
ASX, CUE, HTML, M3U, PLS, XSPF
Videoformat:
FLV, Mp4
Audio + Video: ASF (Microsoft), Mpeg2, Mp4
Die Unterstützung von den Formaten und weiteren Streamingfunktionalitäten (Senden/Empfangen) wird über Plugins erreicht, letztere installiere ich aber hier bewusst nicht!
Auf Streaming würde ich an dieser Stelle nicht eingehen, sondern wirklich nur die Wiedergabe von Audio, die Wiedergabe von Video sollte sich ähnlich gestalten, wie es auch bei Audiotracks der Fall ist.
Alle Erweiterungen in einem Paket:
xmms2-plugin-all - XMMS2 - alle Erweiterungen
Und hier alle Plugins in einer Liste:
xmms2-plugin-airplay - Erweiterung für eine AirPlay-Ausgabe
xmms2-plugin-alsa - ALSA-Ausgabe
xmms2-plugin-ao - Erweiterung für eine libao-Ausgabe
xmms2-plugin-apefile - Erweiterung für Monkey's-Audio-Decodierung
xmms2-plugin-asf - ASF-Erweiterung
xmms2-plugin-asx - Erweiterung für ASX-Wiedergabelisten
xmms2-plugin-avcodec - avcodec-Decoder
xmms2-plugin-cdda - CDDA-Erweiterung
xmms2-plugin-cue - Erweiterung für CUE-Wiedergabelisten
xmms2-plugin-curl - curl-Transport für HTTP
xmms2-plugin-daap - DAAP-Erweiterung
xmms2-plugin-faad - FAAD-Dekodierer
xmms2-plugin-flac - FLAC-Decodierer
xmms2-plugin-flv - Flash-Video-Erweiterung
xmms2-plugin-gme - gme plug-in
xmms2-plugin-gvfs - GVFS-Erweiterung
xmms2-plugin-htm - Erweiterung für HTML-Wiedergabelisten
xmms2-plugin-ices - Ogg-Streaming-Ausgabe
xmms2-plugin-icymetaint - Erweiterung für Shoutcast-Medadaten
xmms2-plugin-id3v2 - ID3v2-Erweiterung
xmms2-plugin-jack - JACK-Ausgabe
xmms2-plugin-karaoke - Karaoke-Erweiterung
xmms2-plugin-m3u -XMMS2 - Erweiterung für M3U-Wiedergabelisten
xmms2-plugin-mad - libmad-basierter MP3-Decodierer
xmms2-plugin-mms - MMS-Transport
xmms2-plugin-modplug - MODPlug-Decodierung
xmms2-plugin-mp4 - MPEG-4-Erweiterung
xmms2-plugin-mpg123 - libmpg123-basierte MP3-Decodierung
xmms2-plugin-musepack - MPC-Decodierung
xmms2-plugin-normalize - Normalisierungserweiterung
xmms2-plugin-ofa - Erweiterung für die Open Fingerprint Architecture
xmms2-plugin-oss - OSS-Ausgabe
xmms2-plugin-pls - Erweiterung für PLS-Wiedergabelisten
xmms2-plugin-pulse - Erweiterung zur PulseAudio-Ausgabe
xmms2-plugin-rss - Erweiterung für RSS-Podcasts
xmms2-plugin-sid - libsidplay2-basierte Decodierung
xmms2-plugin-smb - SMB-Transport (Server Message Block)
xmms2-plugin-sndfile - sndfile-Decodierer
xmms2-plugin-speex - Speex-Decodierer
xmms2-plugin-tta - TTA-Decodierer
xmms2-plugin-vocoder - Vocoder-Erweiterung
xmms2-plugin-vorbis - Vorbis-Decodierer
xmms2-plugin-wavpack - WavPack-Decodierer
xmms2-plugin-xml - XML-Erweiterung
xmms2-plugin-xspf - Erweiterung für XSPF-Wiedergabelisten
Weitere Informationen zu Paketen: Debian Paketsuche nach "xmms2" - wenn ihr auf den Namen des Plugins/Paket klickt gibt es weitere Informationen.
Installation:
Fangen wir mit der Installation an, in meinem Fall nehme ich "apt" aus der Kommandozeile:
Wir installieren "xmms2" mit dem Standardpaket, was eine Hand voll Pakete mit sich bringt, wie ein Ausgabeplugin (in meine Fall "xmms2-plugin-alsa", ein paar vorgegebene Audioformate/Plugins und natürlich das Kommandozeilen Interface und den Server bzw. Daemon/Dienst der die Daten abspielt und einliest.
[src=bash]sudo apt install xmms2[/src]
Jetzt installieren wir einige Audio-Plugins (so fern noch nicht vorhanden):
[src=bash]sudo apt install xmms2-plugin-apefile xmms2-plugin-flac xmms2-plugin-id3v2 xmms2-plugin-mad xmms2-plugin-modplug xmms2-plugin-sid xmms2-plugin-sndfile xmms2-plugin-vorbis[/src]
CD Audio Unterstützung:
[src=bash]sudo apt install xmms2-plugin-cdda[/src]
Playlisten-Erweiterungen:
[src=bash]sudo apt install xmms2-plugin-cue xmms2-plugin-m3u xmms2-plugin-pls[/src]
Sollte ihr Pulse Audio nutzen, solltet ihr dieses mit installieren!
[src=bash]sudo apt install xmms2-plugin-pulse[/src]
Nun zur Handhabung:
Zuerst muss der Daemon/Dienst, also der Server, gestartet werden, dies geht nicht automatisch und muß nach jedem Neustart gemacht werden:
[src=bash]xmms2-launcher[/src]
Um Fehlermeldungen anzuzeigen
[src=bash]xmms2-launcher -v[/src]
oder falls ihr eine Fehlemeldung bekommt, müsst ihr PulseAudio als Ausgabeplugin verwenden:
[src=bash]xmms2-launcher -o pulse[/src]
oder eben Alsa:
[src=bash]xmms2-launcher -o alsa[/src]
Die Optionen könnt ihr euch mit "sudo xmms2d -h" anzeigen lassen.
Allerdings wurde das Alsa Plugin bei mir vorinstalliert, obwohl ich PulseAudio nutze.
Daher mußte ich "-o pulse" verwenden. Man hätte auch "xmms2d -o pulse" eingeben können, um den Server so zu starten, und dann mit Ctrl-C wieder zu beenden. Danach wird immer das Ausgabeplugin genutzt was ihr gesetzt habt.
Wenn keine Fehlermeldung kommt, habt ihr nun den Server/Dienst gestartet.
Kommen wir nun zum zweiten Teil, dem Hinzufügen, Auflisten und Entfernen von Inhalten und der "Server Metadatenbank"-Bereinigung:
Starten wir den Client, das Steuerprogramm:
[src=bash]xmms2[/src]
Das bringt euch in einen Prompt:
"xmms2>"
Hierüber wird der Client gesteuert. Gebt zum Beispiel mal "help" ein, das listet alle Befehle auf.
Für uns interessant sind erst einmal:
add - Hinzufügen von Inhalten in die aktuelle Playlist "Default" wenn noch keine angelegt ist
current - Welcher Track wird gerade abgespielt / Titelanzeige
jump - Zu einem Track springen
list - Tracks auflisten in der aktuellen Playlist
next - Nächster Track
pause - Pausieren
info - Zeigt gesammelte Metadaten zum aktuellen Track an, wie auch das verwendete Dekodierer-Plugin
play - Abspielen
prev - Vorherigen Track
remove - Einen Track aus der Playlist an Position/Muster
stop - Stop
search - Suche in bekannten Tracks der aktuellen Playlist
seek - Zu Zeit in Track springen
toggle - Stumm schalten/Ton anschalten
Interessant wird es auch hier, aber dazu gleich:
playlist - listet Optionen für die Playlistverwaltung auf, der Befehl wird dann ausgeführt wie playlist list (zeigt alle Playlisten an die das System kennt)
server - listet Optionen für den Server auf
Dazu kommen wir gleich:
playlist <subcommand>
server <subcommand>
*Nachtrag:
Um eine Hilfe zu einem Befehl zu bekommen, benutzt help play oder help list.
Wichtig ist auch, solltet der Client in "nichts tun" aber arbeiten, zum Beispiel bei einem "search -l test" (was bei einer Suche die Spalte "test" auflistet (aber alle Tracks durchläuft) laufen, einfach Steuerung + C drücken, das beendet den Client.
Dann einfach neu starten mit "xmms2".
Zuerst brauchen wir etwas in unserer Playlist, das geht so mit "add":
Für eine Übersicht könnt ihr auch "help add" eingeben!
Hier nur eine kurze Übersicht:
add -f /home/user/myMp3.mp3 (fügt die Datei "myMp3.mp3" in die aktuelle Playliste ein, der Server sammelt hier die Metadaten wie Länge und Titel), "-f" sagt das es sich um eine Datei handelt.
add -f --P /home/user/Verzeichniss/playlist.m3u fügt eine M3U Playliste in die aktuelle Playliste.
add home/user/mp3-Ordner/ (fügt alle Dateien in "mp3-Ordner" hinzu, allerdings auch rekursiv! Das heißt, wenn Ordner enthalten sind, werden diese mit eingelesen)
Um einen Track aus der Playlist zu entfernen, genügt ein "remove Positon":
Zum Beispiel entfernt "remove 12" den Track an Position 12.
Inhalte auflisten mit "list":
list - Zeigt alle Titel an, das könnte so aussehen:
[src=bash] [1/1] Silence - Cellule (00:40)
->[2/2] Silence - Cellule2 (00:40)[/src]
Wichtig von den ersten beiden Zahlen ist die erste, das ist die Position, die zweite TrackID im System.
Danach kommt der Interpret und der Titel. Der Pfeil zeigt die Position in der Playliste an.
"list" kann aber auch noch verfeinert werden, nämlich so list 2-7 zeigt die Tracks an Position 2 bis Position 7 an.
Zu einem Titel navigieren mit "jump":
Über die Position in der Playlist, die ihr mit list ermittelt habt, könnt ihr zu einem Titel springen mit jump Position, also hier jump 2 um auf den zweiten Titel zu wechseln. Mit jump +4 oder jump -4 könnt ihr relativ von der aktuellen Position navigieren.
Prev/Next:
Gebt ihr prev ein, gelangt ihr zum vorherigen Titel, next wieder eine Position vorwärts.
Current:
Zeigt den aktuellen Titel mit Dauer an dem wir uns in der Playlist befinden.
Seek:
Angabe in Sekunden, zum Beispiel 110 um auf die Zeit 01:50 zu springen.
Inhalte entfernen mit "remove":
Auch hier geht es über die Track ID, allerdings hat der Server dann noch die Metadata der Datei.
Oder über remove Sil* für ein pattern das alles was mi Sil (Track, Titel, Interpret) "anfängt" wird entfernt.
Info:
Auch interessant ist info - das zeigt euch neben dem aktuell Track URL/Dateiname, auch an, welches Plugin gerade genutzt wird oder wie oft eine Datei abgespielt worden ist. Mit "info 10-12" würden die Infos für die Titel mit Track ID 10-12 angezeigt werden.
Search:
Ohne Angabe, listet alle Tracks aus die in der Playlist sind mit TrackID, "Interpret", "Album", "Titel".
Um beispielsweise "Silence" zu finden, kann "Sil*" eingegeben werden oder "Silence" für eine exakte Suche, hier scheint aber nur der Interpret oder das Album und Titel durchsuchbar zu sein, wenn diese korrekt erkannt sind. Das hatte bei meinem Test nicht ganz so einfach geklappt.
Playlist Verwaltung:
Gebt an dieser Stelle einfach "playlist" ohne weitere Angaben an, ihr solltet das hier sehen:
Available 'playlist' subcommands:
clear - die Playlist leeren
config - ???
create - eine Playlist mit "playlist create playlistTitel" anlegen
list - alle Playlisten die der Server kennt auflisten
remove - eine Playlist mit Angabe des Namens entfernen
rename - eine Playliste umbennen
shuffle - die Playliste mischen
sort - die Playliste sortieren
switch - die Playliste wechseln mit "switch name"
Eigentlich fast selbsterklärend, nicht?
Legt einfach mal eine neue Playlist an mit Namen "test".
Nutzt "playlist switch test" um die Playliste "test" aktiv zu setzen.
Schaut euch nun den Output von "playlist list" an.
Fügt ein paar Audiodaten hinzu.
Nutzt "list" um die Inhalte aufzulisten.
Benutzt nun noch einmal "playlist list".
Benennt dann die Playlist "test" mittels "playlist rename neuerName" um.
Benutzt nun noch einmal "playlist list".
Wechselt dann in die andere Playliste "Default" und listet dort die Inhalte auf.
Um die andere Playlist zu löschen, nutzt "playlist remove NAME".
Und wie kann man die Metadaten aus dem Server entfernen?
Ganz einfach, mit server remove *
Ein Hinweis für die Konsole/den Client, ihr könnt Befehle wie gewohnt in der Shell navigieren oder bereits getippte mit Hoch / Runter Taste navigieren!
Zu guter letzt, wie kann man den Server eigentlich stoppen?
Mittels: server shutdown
Noch ein Hinweis, wenn ihr Musik abspielt, muß das Kommandozeilenprogramm nicht im Hintergrund geöffnet sein, es ist nur bequem!
Und last but not least, wie kann ich einstellen ob ich die Wiedergabe nach dem letzten Titel wiederholen lassen will?
Da kommt server config zum tragen:
Ohne Angabe von etwas, erhaltet ihr alle für den Server hinterlegten Einstellungen. Auch nicht installierte Plugins sind dort enthalten!
Andere Optionen könnt ihr auch so bearbeiten, also immer:
server config OptionsName Wert
In diesem Fall müssen wir folgenden Wert bearbeiten: playlist.repeat_all - dies ist ein boolscher Wert.
Um die Wiederholung zu aktiveren, gebt server config playlist.repeat_all 1 ein.
Ich hoffe euch hat diese kleine Tour gefallen, ist wie ich finde eine interessantes Konzept und mal ohne das ganze GUI gedöns.
Die Handhabung ist hoffentlich auch so einfach, als das ihr euch schnell nach ein paar mal nutzen zu recht findet.
Wenn es Fragen oder Anmerkungen gibt, nur her damit!
Und ich nutze den Player erst seit 3 Tagen, bin aber schon sehr entspannt damit.
Auch wenn mir nicht alles 100% klar ist, aber ich dachte ich Teile mal meine Erfahrung.
Update:
Noch ein wenig zur Konfiguration des Komandozeilen Clients:
"current" zeigt uns Standardmäßig nicht die Playlisten Position an, das kann aber behoben werden:
Dazu geht in den Ordner:
[src=bash]/home/user/.config/xmms2/clients[/src]
und bearbeteitet in:
[src=bash]nycli.conf[/src]
die Zeile:
[src=bashSTATUS_FORMAT=${playback_status}: ${artist} - ${title}: ${playtime} of ${duration}][/src]
Und ergänzt hier: ${position}
Die Zeile könnte dann so aussehen:
[src=bash]STATUS_FORMAT=${playback_status}: ${position} => ${artist} - ${title}: ${playtime} of ${duration}][/src]
Und speichern.
Wenn ihr euch nun wieder in den Kommandozeilen Client einloggt und "current" eingebt, seht ihr auch die Position in der Playliste die ihr mit "jump position" anspringen könnt, das kann durchauch sehr hilfreich sein bei langen Playlisten.
Hinweis: Die Position beginnt bei 0, das heißt man muss etwas umdenken - die angezeigte Position ist optisch nicht ganz korrekt: Der angezeigte Wert 0 ist Track Nummer 1 und 7 als Position ist Track Nummer 8, ein Wert von 12 ist Track Nummer 13.
Wer noch mehr erfahren will, findet weiterführende Informationen unter anderem auch hier:
Ubuntu-Manpages zu XMMS2
Update2:
Einige interessante Anmerkungen: In der Anzeige für "current" können alle Felder verwenden werden, die auch mit "info" gelistet werden können.
Das gilt auch für die Suche. Im Detail kann das dann so aussehen:
Um beispielsweise nach allen Liedern und Alben von 2Pac zu suchen, diese nach Jahreszahl sortiert auszugeben und mit den Spalten (IDv2 / Mp3 Plugin Felder) : Jahr, Interpret, Titel und Albumname anzeigen zu lassen:
search -o date -l date,artist,title,album "2Pac"
Wir könnten auch soweit gehen und noch "tracknr" mit angeben, das wäre in diesem Fall die Titelnummer. Einfach eine Mp3/Audiodatei öffen und "info" eingeben, dann seht ihr allle Details die abgerufen werden. Das erste ist die Quelle, das "size, sample_format, samplerate" sind die Felder.
Der [server] bietet zum Beispiel immer an "status" und "timesplayed" oder die "url" (Dateiname plus Pfad).
"jump" kann auch zu einem Muster springen: "jump "DMX"" - springt zum ersten Track von DMX
Ist auch das was ich gesucht habe, weil ich immer das Problem hatte zu einem Titel/Interpreten springen zu können, Das ist ziemlich lässig!
Update3:
Und noch ein Tip an dieser Stelle, schaut euch die "help Befehl" oder "befehl -h" an!
Sagen wir, ihr wollt alles Track die ihr von DMX haben in eine neue Playliste verschieben... :
playlist create dmx (Playliste DMX anlegen)
add "DMX" -p dmx (Alle Titel mit exaktem Treffer "DMX" in die Playliste "dmx" kopieren)
playlist switch dmx (in die Playliste wechseln)
list (Inhalte der Playliste anzeigen
play
Und früher hat man wie viele Ordner durchsucht?
Es gibt nur eine Sache, um die Dateien über ein "Muster" / "Pattern" hinzuzufügen, müssen diese bereits bekannt sein.
Das geht aber sehr einfach.
Sagen wir ihr habt eine Platte, von der ihr Titel importieren wird.
Legt eine "playlist_festplatte" an.
Fügt alle Audiodaten hinzu.
Nun könnt ihr mit "add muster/pattern -p anderePlaylist" alle "Inhalte" in die andere Liste kopieren.
Man kann es sogar noch einen Schritt weiter treiben, siehe "help add".
-A, --attribute Add media with given key=value attribute(s).
Nun was könnte das wohl sein?
(Bitte Update 4 + 4b lesen)
[b]add -A genre=Rap/Metal/"Heavy Metal"/Rock -p meineThematischePlaylist *[/b]
Nun haben wir alle Tracks die ein Feld "genre" haben was "=" "Rap" oder "Metal" oder "Rock" ist, in eine Playlist verschoben...
Und auch hier muß man nicht "*" benutzen, man könnte zum Beispiel alle Tracks einer Gruppe in eine Playlist setzen die entsprechen "genre=" .... -> genre="Melodic Death" bzw. "Melodic Deathmetal" getaggt sind... andere Tracks fallen dann raus.
Oder "timesplayed=5" (alles was fünf mal abgespielt worde, auch noch mit rein!)
Und jetzt macht das mal mit einem GUI Player
Update 4:
Ganz so einfach ist es nicht mit "add -A genre="Mein Genre" *" - der Client wehrt sich dagegen, ich habe gerade einen Bugreport eingereicht.
Update 4b:
Eine Lösung ist nun doch in Sicht... war aber für mich nicht sichtbar. Ist wirklich einfach.
Nachdem die Medien indexiert / gehased sind (was etwas dauern kann!) (wenn man "xmm2d" über eine zweite Konsole startet und nicht über "xmm2" automatisch, kann man den Status des Server sehen - auch das "hashing" (indexieren).
Was dann geht nach dem man den Server hat alles einlesen lassen:
add gerne:"Rock" (alle Titel mit "genre" "Rock" in die Playlist einfügen)
add -p PlaylistName gerne:"Melodic Death Metal" (alle Titel mit "genre" "Melodic Death Metal" in die Playlist "PlaylistName" hinzufügen)
statt "genre" kann auch ein andere Schlüssel benutzt werden, zum Beispiel das Jahr ("year") (Mp3-Tag) oder andere IDv2 Tags.
Update 5:
So, nachdem wir wissen das "xmms2" automatisch den Server startet, noch ein wichtiges Detail - wer eine Titelanzeige vermisst, kann mit dem Befehl:
xmm2> status
Sich den Status, anzeigen lassen, also welcher Track gerade gespielt wird, die aktuelle Position und die Zeit, dafür wird dann das aus "current" eingestellte Pattern zur Anzeige benutzt.
Mit der Taste "n" kann zum nächsten Track gesprungen werden, mit "p" zum vorherigen, mit "Space" pausieren/abspielen Toggle und "Enter" beendet den Modus.
Die Bedienung wird aber noch einmal angezeigt.
Ansonsten gibt es auch Sachen wie "playlist shuffle" um die Playliste zu mischen, oder eben "playlist sort" um zu sortieren.
Das geht so: "playlist sort artist year album tracknr"
Das sortiert erst nach Interpret/Artistis, Jahr, Album, Titelnr.
In meinem Test wurde das "reverse" ("-" vor einem Attribut) nicht direkt akzeptiert.
ich würde euch gerne XMMS2 vorstellen, ein Client/Server Medienplayer, hier im Anwendungsfall für das Hören von Musik und Steuerung über ein simples aber effizienten Kommandozeilen-Client.
Was XMMS2 auch ist, laut Debian.org:
XMMS2 is a redesign of the XMMS music player. It features a client-server model, allowing multiple (even simultaneous!) user interfaces, both textual and graphical. All common audio formats are supported using plug-ins. On top of this, there is a flexible media library to organize your music.
Ich versuche erst mal zu beschreiben aus was es besteht und was damit mögliche ist, dann die Installation und nötigen Schritte zur Nutzung einzugehen und dann die Handhabung, im Kommandozeilen Interface, genauer zu beschreiben.
Zunächst einmal, aus welchen Komponenten besteht XMMS2 in der Regel?
Folgende Paketname sind aus Debian entnommen:
xmms2 - Client/Server-basiertes Medienabspielsystem (Das Hauptpaket für die Installation)
xmms2-core - XMMS2 - Kernpaket
xmms2-client-cli - XMMS2 - Kommandozeilenclient
und für die Wiedergabe von Audio:
xmms2-plugin-pulse - XMMS2 - Erweiterung zur PulseAudio-Ausgabe
oder
xmms2-plugin-alsa - XMMS2 - ALSA-Ausgabe
oder
xmms2-plugin-oss - XMMS2 - OSS-Ausgabe
Unterstütze Formate (über Plugins):
Audiodaten:
APE, Mp2, Mpeg2/Mp4 Audiodekoder (über Faad), FLAC, Mp3, Ogg, sndfile, Speex, TTA, Vorbis, wav, CD-Audio (CDDA), .wma
Unterstütze Wiedergabelisten Typen:
ASX, CUE, HTML, M3U, PLS, XSPF
Videoformat:
FLV, Mp4
Audio + Video: ASF (Microsoft), Mpeg2, Mp4
Die Unterstützung von den Formaten und weiteren Streamingfunktionalitäten (Senden/Empfangen) wird über Plugins erreicht, letztere installiere ich aber hier bewusst nicht!
Auf Streaming würde ich an dieser Stelle nicht eingehen, sondern wirklich nur die Wiedergabe von Audio, die Wiedergabe von Video sollte sich ähnlich gestalten, wie es auch bei Audiotracks der Fall ist.
Alle Erweiterungen in einem Paket:
xmms2-plugin-all - XMMS2 - alle Erweiterungen
Und hier alle Plugins in einer Liste:
xmms2-plugin-airplay - Erweiterung für eine AirPlay-Ausgabe
xmms2-plugin-alsa - ALSA-Ausgabe
xmms2-plugin-ao - Erweiterung für eine libao-Ausgabe
xmms2-plugin-apefile - Erweiterung für Monkey's-Audio-Decodierung
xmms2-plugin-asf - ASF-Erweiterung
xmms2-plugin-asx - Erweiterung für ASX-Wiedergabelisten
xmms2-plugin-avcodec - avcodec-Decoder
xmms2-plugin-cdda - CDDA-Erweiterung
xmms2-plugin-cue - Erweiterung für CUE-Wiedergabelisten
xmms2-plugin-curl - curl-Transport für HTTP
xmms2-plugin-daap - DAAP-Erweiterung
xmms2-plugin-faad - FAAD-Dekodierer
xmms2-plugin-flac - FLAC-Decodierer
xmms2-plugin-flv - Flash-Video-Erweiterung
xmms2-plugin-gme - gme plug-in
xmms2-plugin-gvfs - GVFS-Erweiterung
xmms2-plugin-htm - Erweiterung für HTML-Wiedergabelisten
xmms2-plugin-ices - Ogg-Streaming-Ausgabe
xmms2-plugin-icymetaint - Erweiterung für Shoutcast-Medadaten
xmms2-plugin-id3v2 - ID3v2-Erweiterung
xmms2-plugin-jack - JACK-Ausgabe
xmms2-plugin-karaoke - Karaoke-Erweiterung
xmms2-plugin-m3u -XMMS2 - Erweiterung für M3U-Wiedergabelisten
xmms2-plugin-mad - libmad-basierter MP3-Decodierer
xmms2-plugin-mms - MMS-Transport
xmms2-plugin-modplug - MODPlug-Decodierung
xmms2-plugin-mp4 - MPEG-4-Erweiterung
xmms2-plugin-mpg123 - libmpg123-basierte MP3-Decodierung
xmms2-plugin-musepack - MPC-Decodierung
xmms2-plugin-normalize - Normalisierungserweiterung
xmms2-plugin-ofa - Erweiterung für die Open Fingerprint Architecture
xmms2-plugin-oss - OSS-Ausgabe
xmms2-plugin-pls - Erweiterung für PLS-Wiedergabelisten
xmms2-plugin-pulse - Erweiterung zur PulseAudio-Ausgabe
xmms2-plugin-rss - Erweiterung für RSS-Podcasts
xmms2-plugin-sid - libsidplay2-basierte Decodierung
xmms2-plugin-smb - SMB-Transport (Server Message Block)
xmms2-plugin-sndfile - sndfile-Decodierer
xmms2-plugin-speex - Speex-Decodierer
xmms2-plugin-tta - TTA-Decodierer
xmms2-plugin-vocoder - Vocoder-Erweiterung
xmms2-plugin-vorbis - Vorbis-Decodierer
xmms2-plugin-wavpack - WavPack-Decodierer
xmms2-plugin-xml - XML-Erweiterung
xmms2-plugin-xspf - Erweiterung für XSPF-Wiedergabelisten
Weitere Informationen zu Paketen: Debian Paketsuche nach "xmms2" - wenn ihr auf den Namen des Plugins/Paket klickt gibt es weitere Informationen.
Installation:
Fangen wir mit der Installation an, in meinem Fall nehme ich "apt" aus der Kommandozeile:
Wir installieren "xmms2" mit dem Standardpaket, was eine Hand voll Pakete mit sich bringt, wie ein Ausgabeplugin (in meine Fall "xmms2-plugin-alsa", ein paar vorgegebene Audioformate/Plugins und natürlich das Kommandozeilen Interface und den Server bzw. Daemon/Dienst der die Daten abspielt und einliest.
[src=bash]sudo apt install xmms2[/src]
Jetzt installieren wir einige Audio-Plugins (so fern noch nicht vorhanden):
[src=bash]sudo apt install xmms2-plugin-apefile xmms2-plugin-flac xmms2-plugin-id3v2 xmms2-plugin-mad xmms2-plugin-modplug xmms2-plugin-sid xmms2-plugin-sndfile xmms2-plugin-vorbis[/src]
CD Audio Unterstützung:
[src=bash]sudo apt install xmms2-plugin-cdda[/src]
Playlisten-Erweiterungen:
[src=bash]sudo apt install xmms2-plugin-cue xmms2-plugin-m3u xmms2-plugin-pls[/src]
Sollte ihr Pulse Audio nutzen, solltet ihr dieses mit installieren!
[src=bash]sudo apt install xmms2-plugin-pulse[/src]
Nun zur Handhabung:
Zuerst muss der Daemon/Dienst, also der Server, gestartet werden, dies geht nicht automatisch und muß nach jedem Neustart gemacht werden:
[src=bash]xmms2-launcher[/src]
Um Fehlermeldungen anzuzeigen
[src=bash]xmms2-launcher -v[/src]
oder falls ihr eine Fehlemeldung bekommt, müsst ihr PulseAudio als Ausgabeplugin verwenden:
[src=bash]xmms2-launcher -o pulse[/src]
oder eben Alsa:
[src=bash]xmms2-launcher -o alsa[/src]
Die Optionen könnt ihr euch mit "sudo xmms2d -h" anzeigen lassen.
Allerdings wurde das Alsa Plugin bei mir vorinstalliert, obwohl ich PulseAudio nutze.
Daher mußte ich "-o pulse" verwenden. Man hätte auch "xmms2d -o pulse" eingeben können, um den Server so zu starten, und dann mit Ctrl-C wieder zu beenden. Danach wird immer das Ausgabeplugin genutzt was ihr gesetzt habt.
Wenn keine Fehlermeldung kommt, habt ihr nun den Server/Dienst gestartet.
Kommen wir nun zum zweiten Teil, dem Hinzufügen, Auflisten und Entfernen von Inhalten und der "Server Metadatenbank"-Bereinigung:
Starten wir den Client, das Steuerprogramm:
[src=bash]xmms2[/src]
Das bringt euch in einen Prompt:
"xmms2>"
Hierüber wird der Client gesteuert. Gebt zum Beispiel mal "help" ein, das listet alle Befehle auf.
Für uns interessant sind erst einmal:
add - Hinzufügen von Inhalten in die aktuelle Playlist "Default" wenn noch keine angelegt ist
current - Welcher Track wird gerade abgespielt / Titelanzeige
jump - Zu einem Track springen
list - Tracks auflisten in der aktuellen Playlist
next - Nächster Track
pause - Pausieren
info - Zeigt gesammelte Metadaten zum aktuellen Track an, wie auch das verwendete Dekodierer-Plugin
play - Abspielen
prev - Vorherigen Track
remove - Einen Track aus der Playlist an Position/Muster
stop - Stop
search - Suche in bekannten Tracks der aktuellen Playlist
seek - Zu Zeit in Track springen
toggle - Stumm schalten/Ton anschalten
Interessant wird es auch hier, aber dazu gleich:
playlist - listet Optionen für die Playlistverwaltung auf, der Befehl wird dann ausgeführt wie playlist list (zeigt alle Playlisten an die das System kennt)
server - listet Optionen für den Server auf
Dazu kommen wir gleich:
playlist <subcommand>
server <subcommand>
*Nachtrag:
Um eine Hilfe zu einem Befehl zu bekommen, benutzt help play oder help list.
Wichtig ist auch, solltet der Client in "nichts tun" aber arbeiten, zum Beispiel bei einem "search -l test" (was bei einer Suche die Spalte "test" auflistet (aber alle Tracks durchläuft) laufen, einfach Steuerung + C drücken, das beendet den Client.
Dann einfach neu starten mit "xmms2".
Zuerst brauchen wir etwas in unserer Playlist, das geht so mit "add":
Für eine Übersicht könnt ihr auch "help add" eingeben!
Hier nur eine kurze Übersicht:
add -f /home/user/myMp3.mp3 (fügt die Datei "myMp3.mp3" in die aktuelle Playliste ein, der Server sammelt hier die Metadaten wie Länge und Titel), "-f" sagt das es sich um eine Datei handelt.
add -f --P /home/user/Verzeichniss/playlist.m3u fügt eine M3U Playliste in die aktuelle Playliste.
add home/user/mp3-Ordner/ (fügt alle Dateien in "mp3-Ordner" hinzu, allerdings auch rekursiv! Das heißt, wenn Ordner enthalten sind, werden diese mit eingelesen)
Um einen Track aus der Playlist zu entfernen, genügt ein "remove Positon":
Zum Beispiel entfernt "remove 12" den Track an Position 12.
Inhalte auflisten mit "list":
list - Zeigt alle Titel an, das könnte so aussehen:
[src=bash] [1/1] Silence - Cellule (00:40)
->[2/2] Silence - Cellule2 (00:40)[/src]
Wichtig von den ersten beiden Zahlen ist die erste, das ist die Position, die zweite TrackID im System.
Danach kommt der Interpret und der Titel. Der Pfeil zeigt die Position in der Playliste an.
"list" kann aber auch noch verfeinert werden, nämlich so list 2-7 zeigt die Tracks an Position 2 bis Position 7 an.
Zu einem Titel navigieren mit "jump":
Über die Position in der Playlist, die ihr mit list ermittelt habt, könnt ihr zu einem Titel springen mit jump Position, also hier jump 2 um auf den zweiten Titel zu wechseln. Mit jump +4 oder jump -4 könnt ihr relativ von der aktuellen Position navigieren.
Prev/Next:
Gebt ihr prev ein, gelangt ihr zum vorherigen Titel, next wieder eine Position vorwärts.
Current:
Zeigt den aktuellen Titel mit Dauer an dem wir uns in der Playlist befinden.
Seek:
Angabe in Sekunden, zum Beispiel 110 um auf die Zeit 01:50 zu springen.
Inhalte entfernen mit "remove":
Auch hier geht es über die Track ID, allerdings hat der Server dann noch die Metadata der Datei.
Oder über remove Sil* für ein pattern das alles was mi Sil (Track, Titel, Interpret) "anfängt" wird entfernt.
Info:
Auch interessant ist info - das zeigt euch neben dem aktuell Track URL/Dateiname, auch an, welches Plugin gerade genutzt wird oder wie oft eine Datei abgespielt worden ist. Mit "info 10-12" würden die Infos für die Titel mit Track ID 10-12 angezeigt werden.
Search:
Ohne Angabe, listet alle Tracks aus die in der Playlist sind mit TrackID, "Interpret", "Album", "Titel".
Um beispielsweise "Silence" zu finden, kann "Sil*" eingegeben werden oder "Silence" für eine exakte Suche, hier scheint aber nur der Interpret oder das Album und Titel durchsuchbar zu sein, wenn diese korrekt erkannt sind. Das hatte bei meinem Test nicht ganz so einfach geklappt.
Playlist Verwaltung:
Gebt an dieser Stelle einfach "playlist" ohne weitere Angaben an, ihr solltet das hier sehen:
Available 'playlist' subcommands:
clear - die Playlist leeren
config - ???
create - eine Playlist mit "playlist create playlistTitel" anlegen
list - alle Playlisten die der Server kennt auflisten
remove - eine Playlist mit Angabe des Namens entfernen
rename - eine Playliste umbennen
shuffle - die Playliste mischen
sort - die Playliste sortieren
switch - die Playliste wechseln mit "switch name"
Eigentlich fast selbsterklärend, nicht?
Legt einfach mal eine neue Playlist an mit Namen "test".
Nutzt "playlist switch test" um die Playliste "test" aktiv zu setzen.
Schaut euch nun den Output von "playlist list" an.
Fügt ein paar Audiodaten hinzu.
Nutzt "list" um die Inhalte aufzulisten.
Benutzt nun noch einmal "playlist list".
Benennt dann die Playlist "test" mittels "playlist rename neuerName" um.
Benutzt nun noch einmal "playlist list".
Wechselt dann in die andere Playliste "Default" und listet dort die Inhalte auf.
Um die andere Playlist zu löschen, nutzt "playlist remove NAME".
Und wie kann man die Metadaten aus dem Server entfernen?
Ganz einfach, mit server remove *
Ein Hinweis für die Konsole/den Client, ihr könnt Befehle wie gewohnt in der Shell navigieren oder bereits getippte mit Hoch / Runter Taste navigieren!
Zu guter letzt, wie kann man den Server eigentlich stoppen?
Mittels: server shutdown
Noch ein Hinweis, wenn ihr Musik abspielt, muß das Kommandozeilenprogramm nicht im Hintergrund geöffnet sein, es ist nur bequem!
Und last but not least, wie kann ich einstellen ob ich die Wiedergabe nach dem letzten Titel wiederholen lassen will?
Da kommt server config zum tragen:
Ohne Angabe von etwas, erhaltet ihr alle für den Server hinterlegten Einstellungen. Auch nicht installierte Plugins sind dort enthalten!
Andere Optionen könnt ihr auch so bearbeiten, also immer:
server config OptionsName Wert
In diesem Fall müssen wir folgenden Wert bearbeiten: playlist.repeat_all - dies ist ein boolscher Wert.
Um die Wiederholung zu aktiveren, gebt server config playlist.repeat_all 1 ein.
Ich hoffe euch hat diese kleine Tour gefallen, ist wie ich finde eine interessantes Konzept und mal ohne das ganze GUI gedöns.
Die Handhabung ist hoffentlich auch so einfach, als das ihr euch schnell nach ein paar mal nutzen zu recht findet.
Wenn es Fragen oder Anmerkungen gibt, nur her damit!
Und ich nutze den Player erst seit 3 Tagen, bin aber schon sehr entspannt damit.
Auch wenn mir nicht alles 100% klar ist, aber ich dachte ich Teile mal meine Erfahrung.
Update:
Noch ein wenig zur Konfiguration des Komandozeilen Clients:
"current" zeigt uns Standardmäßig nicht die Playlisten Position an, das kann aber behoben werden:
Dazu geht in den Ordner:
[src=bash]/home/user/.config/xmms2/clients[/src]
und bearbeteitet in:
[src=bash]nycli.conf[/src]
die Zeile:
[src=bashSTATUS_FORMAT=${playback_status}: ${artist} - ${title}: ${playtime} of ${duration}][/src]
Und ergänzt hier: ${position}
Die Zeile könnte dann so aussehen:
[src=bash]STATUS_FORMAT=${playback_status}: ${position} => ${artist} - ${title}: ${playtime} of ${duration}][/src]
Und speichern.
Wenn ihr euch nun wieder in den Kommandozeilen Client einloggt und "current" eingebt, seht ihr auch die Position in der Playliste die ihr mit "jump position" anspringen könnt, das kann durchauch sehr hilfreich sein bei langen Playlisten.
Hinweis: Die Position beginnt bei 0, das heißt man muss etwas umdenken - die angezeigte Position ist optisch nicht ganz korrekt: Der angezeigte Wert 0 ist Track Nummer 1 und 7 als Position ist Track Nummer 8, ein Wert von 12 ist Track Nummer 13.
Wer noch mehr erfahren will, findet weiterführende Informationen unter anderem auch hier:
Ubuntu-Manpages zu XMMS2
Update2:
Einige interessante Anmerkungen: In der Anzeige für "current" können alle Felder verwenden werden, die auch mit "info" gelistet werden können.
Das gilt auch für die Suche. Im Detail kann das dann so aussehen:
Um beispielsweise nach allen Liedern und Alben von 2Pac zu suchen, diese nach Jahreszahl sortiert auszugeben und mit den Spalten (IDv2 / Mp3 Plugin Felder) : Jahr, Interpret, Titel und Albumname anzeigen zu lassen:
search -o date -l date,artist,title,album "2Pac"
Wir könnten auch soweit gehen und noch "tracknr" mit angeben, das wäre in diesem Fall die Titelnummer. Einfach eine Mp3/Audiodatei öffen und "info" eingeben, dann seht ihr allle Details die abgerufen werden. Das erste ist die Quelle, das "size, sample_format, samplerate" sind die Felder.
Der [server] bietet zum Beispiel immer an "status" und "timesplayed" oder die "url" (Dateiname plus Pfad).
"jump" kann auch zu einem Muster springen: "jump "DMX"" - springt zum ersten Track von DMX
Ist auch das was ich gesucht habe, weil ich immer das Problem hatte zu einem Titel/Interpreten springen zu können, Das ist ziemlich lässig!
Update3:
Und noch ein Tip an dieser Stelle, schaut euch die "help Befehl" oder "befehl -h" an!
Sagen wir, ihr wollt alles Track die ihr von DMX haben in eine neue Playliste verschieben... :
playlist create dmx (Playliste DMX anlegen)
add "DMX" -p dmx (Alle Titel mit exaktem Treffer "DMX" in die Playliste "dmx" kopieren)
playlist switch dmx (in die Playliste wechseln)
list (Inhalte der Playliste anzeigen
play
Und früher hat man wie viele Ordner durchsucht?
Es gibt nur eine Sache, um die Dateien über ein "Muster" / "Pattern" hinzuzufügen, müssen diese bereits bekannt sein.
Das geht aber sehr einfach.
Sagen wir ihr habt eine Platte, von der ihr Titel importieren wird.
Legt eine "playlist_festplatte" an.
Fügt alle Audiodaten hinzu.
Nun könnt ihr mit "add muster/pattern -p anderePlaylist" alle "Inhalte" in die andere Liste kopieren.
Man kann es sogar noch einen Schritt weiter treiben, siehe "help add".
-A, --attribute Add media with given key=value attribute(s).
Nun was könnte das wohl sein?
(Bitte Update 4 + 4b lesen)
[b]add -A genre=Rap/Metal/"Heavy Metal"/Rock -p meineThematischePlaylist *[/b]
Nun haben wir alle Tracks die ein Feld "genre" haben was "=" "Rap" oder "Metal" oder "Rock" ist, in eine Playlist verschoben...
Und auch hier muß man nicht "*" benutzen, man könnte zum Beispiel alle Tracks einer Gruppe in eine Playlist setzen die entsprechen "genre=" .... -> genre="Melodic Death" bzw. "Melodic Deathmetal" getaggt sind... andere Tracks fallen dann raus.
Oder "timesplayed=5" (alles was fünf mal abgespielt worde, auch noch mit rein!)
Und jetzt macht das mal mit einem GUI Player
Update 4:
Ganz so einfach ist es nicht mit "add -A genre="Mein Genre" *" - der Client wehrt sich dagegen, ich habe gerade einen Bugreport eingereicht.
Update 4b:
Eine Lösung ist nun doch in Sicht... war aber für mich nicht sichtbar. Ist wirklich einfach.
Nachdem die Medien indexiert / gehased sind (was etwas dauern kann!) (wenn man "xmm2d" über eine zweite Konsole startet und nicht über "xmm2" automatisch, kann man den Status des Server sehen - auch das "hashing" (indexieren).
Was dann geht nach dem man den Server hat alles einlesen lassen:
add gerne:"Rock" (alle Titel mit "genre" "Rock" in die Playlist einfügen)
add -p PlaylistName gerne:"Melodic Death Metal" (alle Titel mit "genre" "Melodic Death Metal" in die Playlist "PlaylistName" hinzufügen)
statt "genre" kann auch ein andere Schlüssel benutzt werden, zum Beispiel das Jahr ("year") (Mp3-Tag) oder andere IDv2 Tags.
Update 5:
So, nachdem wir wissen das "xmms2" automatisch den Server startet, noch ein wichtiges Detail - wer eine Titelanzeige vermisst, kann mit dem Befehl:
xmm2> status
Sich den Status, anzeigen lassen, also welcher Track gerade gespielt wird, die aktuelle Position und die Zeit, dafür wird dann das aus "current" eingestellte Pattern zur Anzeige benutzt.
Mit der Taste "n" kann zum nächsten Track gesprungen werden, mit "p" zum vorherigen, mit "Space" pausieren/abspielen Toggle und "Enter" beendet den Modus.
Die Bedienung wird aber noch einmal angezeigt.
Ansonsten gibt es auch Sachen wie "playlist shuffle" um die Playliste zu mischen, oder eben "playlist sort" um zu sortieren.
Das geht so: "playlist sort artist year album tracknr"
Das sortiert erst nach Interpret/Artistis, Jahr, Album, Titelnr.
In meinem Test wurde das "reverse" ("-" vor einem Attribut) nicht direkt akzeptiert.
Zuletzt bearbeitet: