OSX: usando a versão CLI do VLC

19

Como posso usar a versão CLI do VLC no OSX?

Depois de instalar o VLC no OSX, ele funciona bem através do processo de GUI normal, spotlight, etc. Além disso, sei que é possível fazer

open bla.avi -a vlc

No entanto, quando eu emito o comando vlc no shell, ele não funciona. which vlc no shell também não retorna nada.

A versão CLI do VLC é muito útil para transcodificação, streaming, etc. Por isso, seria bom tê-lo funcionando.

    
por lang2 19.12.2012 / 17:16

5 respostas

21

O comando open bla.avi -a vlc funciona porque o OS X está usando seu banco de dados dos Serviços de Lançamento para abrir o aplicativo VLC. Isso não tem nada a ver com um binário de linha de comando com o mesmo nome, que não é instalado por padrão.

O binário que você procura está no pacote VLC.app , então você pode digitar isso em um terminal:

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

Isso abrirá a linha de comando interativa VLC. Ou execute o seguinte para registrar a linha acima como um alias para vlc :

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

Depois de adicionar isso, você precisa reiniciar o seu Terminal. Agora digite vlc e você chegará à linha de comando.

Se você não gostar da interface interativa ou quiser usar VLC com outras opções, precisará editar seu ~/.bash_profile de acordo, por exemplo, através de open -e ~/.bash_profile .

    
por 19.12.2012 / 18:33
3

Os aplicativos do OS X geralmente não instalam nenhum executável de programa fora do pacote de aplicativos. Como você normalmente não interage com eles na linha de comando, eles não são colocados em nenhuma pasta no seu PATH .

Se você instalou o VLC em /Applications , o executável real será /Applications/VLC.app/Contents/MacOS/VLC .

/Applications/VLC.app/Contents/MacOS/VLC -h mostrará alguma ajuda e /Applications/VLC.app/Contents/MacOS/VLC --intf ncurses iniciará a interface do usuário ncurses.

    
por 19.12.2012 / 18:34
2

Para acessar vlc da linha de comando, você pode criar um link simbólico local conforme abaixo:

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

Para que este comando esteja disponível para todos os usuários, você pode querer vinculá-lo ao /usr/local/bin .

Certifique-se de que seu ~/bin (ou /usr/local/bin ) esteja em sua variável ambiental PATH , em outras palavras, que o arquivo ~/.profile contenha algo como:

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

O código acima é o comportamento padrão no Linux.

    
por 25.11.2013 / 18:07
1

FYI e / ou uma dica.

Aqui estão duas maneiras de descobrir o caminho real do aplicativo que é iniciado com o comando open .

Útil, no caso em que o VLC é colocado em outro diretório em vez de /Applications , como /Users/<user>/Applications ( ~/Applications ) ou outros diretórios.

Via AppleScript

Simples, mas inicia o aplicativo.

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

Comando lsregister

Pouco complicado, mas não inicia o aplicativo.

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

Testado em: 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.
por 28.10.2018 / 03:49
0

A interface fictícia permite a operação em lote na linha de comando. Eu uso um script de shell como este salvo em / usr / local / bin / vlc:

    export VLC_PLUGIN_PATH=/Applications/VLC.app/Contents/MacOS/plugins
    /Applications/VLC.app/Contents/MacOS/VLC -I dummy "${@}"
    
por 23.09.2015 / 12:31