OSX: Verwenden der CLI-Version von VLC

22

Wie kann ich die CLI-Version des VLC unter OSX verwenden?

Nach der Installation von VLC unter OSX funktioniert es problemlos über den normalen GUI-Prozess, Spotlight usw. Ich weiß auch, dass dies möglich ist

open bla.avi -a vlc

Wenn ich jedoch einen vlcBefehl in der Shell absetze, funktioniert dies nicht. which vlcin shell gibt auch nichts zurück.

Die CLI-Version von VLC ist sehr praktisch für das Transcodieren, Streamen usw. Es wäre also schön, wenn es funktioniert.

lang2
quelle
1
Was ist deine Frage hier? Suchen Sie nur den Befehl? Was hast du versucht
Baarn
Unter Linux, wenn ich vlcin Terminal ausstelle , sagt es mir, dass cvlcich es verwenden soll. Ich denke, es wäre dasselbe unter OSX.
Baarn
Also ich gehe davon aus, dass Sie VLC heruntergeladen ... sollte es die benötigten Kommandozeilen - Tools mit dem Programm gesendet ... es kann tun Umcodierung, Streaming, „etc“, aber Sie müssen einen bestimmten Anwendungsfall , um für uns zu schaffen , detaillierte Informationen zur Verfügung zu stellen.
Allquixotic
bitte schreibe nicht, es funktioniert nicht, weil ich mir ziemlich sicher bin, dass es funktioniert, nur nicht so, wie du es erwartest. Also sag bitte, was du willst und was du stattdessen bekommst.
Baarn
3
@allquixotic Leider installiert VLC unter OS X die Befehlszeilenversion nicht.
Slhck

Antworten:

23

Der Befehl open bla.avi -a vlcfunktioniert, weil OS X seine Launch Services-Datenbank verwendet, um die Anwendungs-VLC zu öffnen. Dies hat nichts mit einer Befehlszeilen-Binärdatei mit demselben Namen zu tun, die nicht standardmäßig installiert ist.

Die Binärdatei, nach der Sie suchen, befindet sich im VLC.appPaket. Sie können diese also in ein Terminal eingeben:

/Applications/VLC.app/Contents/MacOS/VLC -I rc

Dies öffnet die interaktive Befehlszeile VLC. Oder führen Sie Folgendes aus, um die obige Zeile als Alias ​​für Folgendes zu registrieren vlc:

echo "alias vlc='/Applications/VLC.app/Contents/MacOS/VLC -I rc'" >> ~/.bash_profile

Sobald Sie dies hinzugefügt haben, müssen Sie Ihr Terminal neu starten. Geben vlcSie nun ein und Sie gelangen zur Befehlszeile.

Wenn Sie die interaktive Oberfläche nicht mögen oder VLCmit anderen Optionen verwenden möchten , müssen Sie Ihre ~/.bash_profileentsprechend bearbeiten , z open -e ~/.bash_profile. B. durch .

slhck
quelle
1
Entfernen Sie -I rcaus dem Befehl, wenn die GUI tatsächlich über den vlc-Befehl in der Befehlszeile geöffnet werden soll.
MikeiLL
4
@MikeiLL Du könntest auch einfach anrufen open -a VLC. Dies funktioniert mit jeder App in OS X.
Slhck
Ich bevorzuge es, diesen Alias ​​zu nennen cvlc, um zu verdeutlichen, dass es sich um die Befehlszeile VLC handelt (und um auch mit der Linux-Version konsistent zu sein).
Lenooh
3

OS X-Anwendungen installieren normalerweise keine ausführbaren Programme außerhalb ihres Anwendungspakets. Da Sie normalerweise nicht über die Befehlszeile mit ihnen interagieren, werden sie nicht in einen Ordner Ihres Ordners verschoben PATH.


Wenn Sie VLC auf installiert haben /Applications, lautet die aktuelle ausführbare Datei /Applications/VLC.app/Contents/MacOS/VLC.

/Applications/VLC.app/Contents/MacOS/VLC -hZeigt Hilfe an und /Applications/VLC.app/Contents/MacOS/VLC --intf ncursesstartet die ncurses-Benutzeroberfläche.

Daniel Beck
quelle
die --intf ncurses
flagge
2

Um vlcvon der Befehlszeile aus zuzugreifen , können Sie eine lokale symbolische Verknüpfung wie folgt erstellen:

mkdir ~/bin
ln -vs /Applications/VLC.app/Contents/MacOS/VLC ~/bin/vlc

Um diesen Befehl für alle Benutzer verfügbar zu haben, können Sie ihn /usr/local/binstattdessen verknüpfen .

Stellen Sie sicher, dass sich Ihr ~/bin(oder /usr/local/bin) in Ihrer Umgebungsvariablen befindet, PATHdh, dass Ihre ~/.profileDatei Folgendes enthält:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Der obige Code ist das Standardverhalten unter Linux.

Kenorb
quelle
1

Die Dummy-Schnittstelle ermöglicht die Stapelverarbeitung in der Befehlszeile. Ich verwende ein Shell-Skript wie dieses, das in / usr / local / bin / vlc gespeichert ist:

    export VLC_PLUGIN_PATH=/Applications/VLC.app/Contents/MacOS/plugins
    /Applications/VLC.app/Contents/MacOS/VLC -I dummy "${@}"
Larrycz
quelle
1

FYI und / oder ein Tipp.

Hier sind zwei Möglichkeiten, um den tatsächlichen Pfad der App zu ermitteln , die mit dem openBefehl gestartet wird .

Hilfreich, in diesem Fall befindet sich der VLC in einem anderen Verzeichnis /Applicationsals /Users/<user>/Applications( ~/Applications) oder anderen Verzeichnissen.

Über AppleScript

Einfach, aber es startet die App.

$ osascript -e 'POSIX path of (path to application "VLC")'
/Applications/VLC.app/
$ 
$ osascript -e 'POSIX path of (path to application "GIMP")'
/Volumes/External_HDD/Applications/GIMP/GIMP_v2.8/GIMP.app/

Über den Befehl lsregister

Etwas kompliziert, startet die App aber nicht.

$ # Path of `lsregister` command
$ #   /System/Library \
$ #     /Frameworks/CoreServices.framework/Versions/A \
$ #     /Frameworks/LaunchServices.framework/Versions/A/Support/
$ 
$ cd /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/
$ 
$ ls
lsregister
$ 
$ # Sample usage
$ ./lsregister -dump | grep -o "/.*\Google Chrome.app" | head -1
/Applications/Google Chrome.app
$ 
$ # Find VLC
$ NAME_APP=VLC
$ ./lsregister -dump | grep -o "/.*${NAME_APP}.app" | grep -v -E "Caches|TimeMachine|Temporary|/Volumes/${NAME_APP}" | uniq
/Applications/VLC.app

Getestet auf: macOS HighSierra (OSX 10.13.6)

$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.
KEINOS
quelle
0

Zunächst müssen Sie die tatsächliche ausführbare Binärdatei im VLC Mac-Anwendungspaket suchen. Öffnen FinderSie den ApplicationsOrdner, klicken Sie mit der rechten Maustaste auf die VLC-App und klicken Sie dann auf Show Package Contents. Jetzt können Sie durchsuchen, was tatsächlich drin ist.

In diesem Fall befindet sich die VLC-Binärdatei Contents/MacOSals Datei im Ordner VLC. Öffnen Sie Terminalund geben Sie den genauen Dateipfad dazu, und Sie werden die VLC binär ausführen finden: /Applications/VLC.app/Contents/MacOS/VLC. Wenn Sie nicht jedes Mal den gesamten Pfad verwenden möchten, können Sie einen Symlink erstellen und Ihren Bash-Pfad so bearbeiten, dass er darauf verweist.

Jetzt, da Sie die Binärdatei direkt über die CLI aufrufen können, möchten Sie wahrscheinlich eine Schnittstelle auswählen, damit nicht die übliche GUI angezeigt wird. Eine vollständige Liste der verfügbaren Schnittstellen finden Sie auf der Wiki-Seite VLC-Schnittstellen .

Sobald Sie den Befehlssatz für Ihre VLC-CLI-Aufrufe gefunden haben, der Ihre beabsichtigte Ausgabe erzeugt, möchten Sie wahrscheinlich die dummySchnittstelle verwenden, wenn Sie VLC in Ihrer Programm- / Stapelverarbeitung aufrufen. Die dummySchnittstelle ist im Grunde nichts anderes als eine Ausgabe im Terminal, wie bei den meisten nicht interaktiven CLI-Programmen.

Endresultat: /Applications/VLC.app/Contents/MacOS/VLC -I dummy [further parameters here]

Ich empfehle, den -vvvParameter zu verwenden, damit Sie beim Testen verschiedener Befehle eine umfassende Protokollausgabe erhalten.

Das Karate Kid
quelle