Erster Erfolg! Dieser Blog-Beitrag hat mein Hauptproblem gelöst:
Man muss in den VLC-Einstellungen (nach Klick auf "Einstellungen anzeigen" > "Alle", ganz unten links in den Einstellungen) zuerst auf
Interface > Hauptinterfaces > Fernsteuerungs-Interface klicken, dann erscheint in dem Feld darunter "oldrc".
Danach einen Haken bei Interface > RC > "TTY vortäuschen" setzen.
Zum Schluss im Feld darunter ("UNIX-Socketbefehl-Input") den Speicherort einer Socket-Datei angeben, die VLC für die Dauer des Betriebs anlegen soll. Ich habe /home/user/vlc-input.socket gewählt. Wichtig ist es, das Home-Verzeichnis zu benutzen. Dort hat VLC vollen Lese-/Schreibzugriff.
Jetzt kann man endlich VLC fernsteuern...und zwar mit Netcat und dem neuen Socket, der erscheint sobald VLC startet. Der Befehlssyntax lautet:
/bin/echo "play" | /bin/nc -UN /home/user/vlc-input.socket
Hier wird der play-Befehl an's VLC-Socket gesendet.
Für echo und nc habe ich vollständige Pfade benutzt, damit irexec die Programme findet, wenn man die Zeilen in der /home/user/.config/lircrc verwendet. Die netcat-Schalter U und N bewirken, dass ein Socket benutzt (U) und die Verbindung nach dem Absenden wieder beendet wird (N).
Ein lircrc-Eintrag sieht dann zum Beispiel so aus:
begin
prog = irexec
button = KEY_CHANNELUP
config = /bin/echo "next" | /bin/nc -UN /home/user/vlc-input.socket
end
Natürlich muss irexec dafür im Hintergrund laufen. Außerdem existiert das VLC-Socket nur so lange, wie VLC auch läuft.
Der Blog-Beitrag war der einzige Beitrag zu dem Thema, den ich im Netz finden konnte. Unglaublich, dass der Autor diese ultra-geheimen Optionen rausgefunden hat. Die VLC-Dokumentation ist stark lückenhaft und veraltet.
Probleme habe ich nun noch mit den möglichen Befehlen. Die normalen Schalter für die Kommandozeile können offenbar nicht verwendet werden. Stattdessen sind (leider) nur diese möglich:
+----[ Fernsteuerungsbefehle ]
|
| add XYZ . . . . . . . . . XYZ der Wiedergabeliste hinzufügen
| enqueue XYZ . . . . . . . . XYZ der Wiedergabeliste anhängen
| playlist . . . . . aktuelle Objekte der Wiedergabeliste zeigen
| play . . . . . . . . . . . . . . . . . . . Stream wiedergeben
| stop . . . . . . . . . . . . . . . . . . . . . Stream stoppen
| next . . . . . . . . . . . . . nächstes Wiedergabelistenobjekt
| prev . . . . . . . . . . . . vorheriges Wiedergabelistenobjekt
| gehe zu. . . . . . . . . . gehe zu Objekt bei gegebenem Index
| repeat [on|off] . . . . . . . . Objektwiederholung umschalten
| loop [on|off] . . . . Wiedergabelistenwiederholung umschalten
| random [on|off] . . . . . . . Zufällige Wiedergabe umschalten
| clear . . . . . . . . . . . . . . . . Wiedergabeliste löschen
| status . . . . . . . . . . . aktueller Wiedergabelistenstatus
| title [X] . . . . . Titel im aktuellen Objekt ein-/darstellen
| title_n . . . . . . . . . nächster Titel im aktuellen Objekt
| title_p . . . . . . . . vorheriger Titel im aktuellen Objekt
| chapter [X] . . . Kapitel im aktuellen Objekt ein-/darstellen
| chapter_n . . . . . . . nächstes Kapitel im aktuellen Objekt
| chapter_p . . . . . . vorheriges Kapitel im aktuellen Objekt
|
| seek X . . . . . Suchen in Sekunden, beispielsweise `seek 12'
| pause . . . . . . . . . . . . . . . . . . . Pause umschalten
| fastforward . . . . . . . . . . . . auf maximale Rate schalten
| rewind . . . . . . . . . . . . . . auf minimale Rate schalten
| faster . . . . . . . . . . . schnellere Wiedergabe des Streams
| slower . . . . . . . . . . . langsamere Wiedergabe des Streams
| normal . . . . . . . . . . . . normale Wiedergabe des Streams
| Frame . . . . . . . . . . . Frame für Frame wiedergeben
| f [on|off] . . . . . . . . . . . . . . . . Vollbild umschalten
| info . . . . . . . . . Informationen über den aktuellen Stream
| stats . . . . . . . . . . . statistische Informationen zeigen
| get_time . . Sekunden, die seit Beginn des Streams vergangen sind
| is_playing . . 1 falls der Stream gerade läuft, andernfalls 0
| get_title . . . . . Titel des aktuellen Streams
| get_length . . . . Länge des aktuellen Streams
|
| volume [X] . . . . . . . . . . . . Lautstärke zeigen/festlegen
| volup [X] . . . . . . . . . . Lautstärke um X Stufen erhöhen
| voldown [X] . . . . . . . . Lautstärke um X Stufen verringern
| adev [Device] . . . . . . . . Ton-Gerät zeigen/einstellen
| achan [X]. . . . . . . . . . . . . Tonkanäle zeigen/einstellen
| atrack [X] . . . . . . . . . . . Audiospur zeigen/einstellen
| vtrack [X] . . . . . . . . . . . Videospur zeigen/einstellen
| vratio [X] . . . . . . . Videoseitenverhältnis zeigen/einstellen
| vcrop [X] . . . . . . . . . . . Videobeschneidung zeigen/einstellen
| Zoom [X] . . . . . . . . . . . Videovergrößerung zeigen/einstellen
| snapshot . . . . . . . . . . . . einen Videoschnappschuss machen
| strack [X] . . . . . . . . . Untertitelspur zeigen/einstellen
| key [Hotkey Name] . . . . . . Hotkey-Druck simulieren
|
| help . . . . . . . . . . . . . . . . . . diese Hilfsmitteilung
| logout . . . . . . . . . . . Abmelden (bei Socket-Verbindung)
| quit . . . . . . . . . . . . . . . . . . . VLC beenden
|
+----[ Ende der Hilfe ]
Ich würde gerne "key [hotkey Name]" verwenden, doch das scheint nicht zu funktionieren. Wenn ich
benutze erscheint nicht das OSD mit der aktuellen Timecode-Position des Videos. Außerdem würde ich gerne Tonspuren und Untertitel per wiederholtem Knopfdruck durchschalten können.