OSX: utilisation de la version CLI de VLC


22

Comment puis-je utiliser la version CLI du VLC sur OSX?

Après avoir installé VLC sur OSX, cela fonctionne bien à travers le processus GUI normal, Spotlight, etc. Aussi, je sais qu'il est possible de faire

open bla.avi -a vlc

Cependant, lorsque j'émets une vlccommande dans le shell, cela ne fonctionne pas. which vlcdans shell ne renvoie rien non plus.

La version CLI de VLC est très pratique pour le transcodage, la diffusion en continu, etc. Il serait donc agréable de le faire fonctionner.


1
Quelle est votre question ici? Cherchez-vous simplement la commande? Qu'as-tu essayé?
Baarn

Sous linux, lorsque je lance vlcdans le terminal, il me dit d'utiliser, cvlcje suppose que ce serait la même chose sous OSX.
Baarn

Je suppose donc que vous avez téléchargé VLC ... il devrait expédier les outils de ligne de commande nécessaires avec le programme ... il peut effectuer le transcodage, le streaming, "etc.", mais vous devez fournir un cas d'utilisation spécifique pour nous pour fournir des informations détaillées.
allquixotic

s'il vous plaît, n'écrivez pas, cela ne fonctionne pas, car je suis presque sûr que cela fonctionne, mais pas de la manière que vous attendez. Veuillez donc dire ce que vous voulez et ce que vous obtenez à la place.
Baarn

3
@allquixotic Malheureusement, sous OS X, VLC n'installe pas la version en ligne de commande.
slhck

Réponses:


23

La commande open bla.avi -a vlcfonctionne car OS X utilise sa base de données Launch Services pour ouvrir l'application VLC. Cela n'a rien à voir avec un binaire de ligne de commande du même nom, qui n'est pas installé par défaut.

Le binaire que vous recherchez est dans le VLC.apppackage, vous pouvez donc le taper dans un terminal:

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

Cela ouvrira la ligne de commande interactive VLC. Ou, exécutez ce qui suit afin que la ligne ci-dessus soit enregistrée en tant qu'alias pour vlc:

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

Une fois que vous avez ajouté cela, vous devez redémarrer votre terminal. Tapez maintenant vlcet vous obtiendrez la ligne de commande.

Si vous n'aimez pas l'interface interactive ou si vous souhaitez utiliser VLCd'autres options, vous devez modifier votre en ~/.bash_profileconséquence, par exemple via open -e ~/.bash_profile.


1
Supprimez -I rcde la commande si vous souhaitez réellement que l'interface graphique s'ouvre via la commande de ligne de commande vlc.
MikeiLL

4
@MikeiLL Vous pouvez également appeler open -a VLC. Cela fonctionne avec n'importe quelle application sous OS X.
slhck

Je préfère appeler cet alias cvlcpour qu'il soit clair qu'il s'agit de la ligne de commande VLC (et pour être également cohérent avec la version linux).
lenooh

3

Les applications OS X n'installent généralement aucun exécutable de programme en dehors de leur ensemble d'applications. Comme vous n'interagissez généralement pas avec eux depuis la ligne de commande, ils ne sont placés dans aucun dossier de votre PATH.


Si vous avez installé VLC sur /Applications, l'exécutable réel est /Applications/VLC.app/Contents/MacOS/VLC.

/Applications/VLC.app/Contents/MacOS/VLC -haffichera de l'aide et /Applications/VLC.app/Contents/MacOS/VLC --intf ncurseslancera l'interface utilisateur de ncurses.


le --intf ncursesdrapeau est cool
cwd

2

Pour y accéder vlcdepuis la ligne de commande, vous pouvez créer un lien symbolique local comme ci-dessous:

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

Pour que cette commande soit disponible pour tous les utilisateurs, vous pouvez la lier à la /usr/local/binplace.

Assurez-vous que votre ~/bin(ou /usr/local/bin) est dans votre PATHvariable d' environnement , en d'autres termes que votre ~/.profilefichier contient quelque chose comme:

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

Le code ci-dessus est le comportement par défaut sous Linux.


1

L'interface factice permet une opération par lots sur la ligne de commande. J'utilise un script shell comme celui-ci enregistré dans / usr / local / bin / vlc:

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

1

Pour info et / ou un pourboire.

Voici 2 façons de découvrir le chemin réel de l'application qui se lance avec la opencommande.

Utile, dans le cas où le VLC est placé dans un autre répertoire plutôt que /Applications, tel que /Users/<user>/Applications( ~/Applications) ou d'autres répertoires.

Via AppleScript

Simple mais il lance l'application.

$ 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/

Via la commande lsregister

Peu compliqué mais ne lancera pas l'application.

$ # 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

Testé sur: 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.

0

Tout d'abord, vous devez localiser l'exécutable binaire réel dans le package d'application VLC Mac. Ouvrez Finder, accédez au Applicationsdossier, cliquez avec le bouton droit sur l'application VLC, puis cliquez sur Show Package Contents. Vous pouvez maintenant parcourir ce qui se trouve réellement à l'intérieur.

Dans ce cas, le binaire VLC se trouve dans le Contents/MacOSdossier en tant que fichier VLC. Ouvrir Terminalet entrez le chemin exact du fichier à cela, et vous trouverez les binaires VLC exécute: /Applications/VLC.app/Contents/MacOS/VLC. Si vous ne voulez pas utiliser ce chemin entier à chaque fois, vous pouvez créer un lien symbolique et modifier votre Bash PATH pour pointer vers cela.

Maintenant que vous pouvez appeler le binaire directement à partir de la CLI, vous souhaiterez probablement choisir une interface afin que vous n'ayez pas l'interface graphique habituelle. Une liste complète des interfaces disponibles se trouve sur la page wiki des interfaces VLC .

Une fois que vous avez trouvé l'ensemble de commandes de travail pour vos appels CLI VLC qui produit la sortie souhaitée, vous souhaiterez probablement utiliser l' dummyinterface lors de l'appel de VLC dans votre programme / traitement par lots. L' dummyinterface n'est rien d'autre qu'une sortie dans le terminal comme la plupart des programmes CLI non interactifs.

Résultat final: /Applications/VLC.app/Contents/MacOS/VLC -I dummy [further parameters here]

Je recommande d'utiliser le -vvvparamètre afin d'obtenir une sortie de journal complète pour vous aider lorsque vous testez différentes commandes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.