OSXでVLCのCLIバージョンを使用するにはどうすればよいですか?
OSXにVLCをインストールした後、通常のGUIプロセス、スポットライトなどで問題なく動作します。また、
open bla.avi -a vlc
ただし、シェルでvlc
コマンドを発行すると機能しません。 which vlc
Shellも何も返しません。
VLCのCLIバージョンは、トランスコーディング、ストリーミングなどに非常に便利です。そのため、VLCが機能していると便利です。
OS XはLaunch Servicesデータベースを使用してアプリケーションVLCを開くため、コマンドopen bla.avi -a vlc
は機能します。これは、デフォルトではインストールされない、同じ名前のコマンドラインバイナリとは何の関係もありません。
検索するバイナリはVLC.app
パッケージにあるため、ターミナルに入力できます。
/Applications/VLC.app/Contents/MacOS/VLC -I rc
これにより、インタラクティブなコマンドラインVLCが開きます。または、次のコマンドを実行して、上記の行をvlc
のエイリアスとして登録します。
echo "alias vlc='/Applications/VLC.app/Contents/MacOS/VLC -I rc'" >> ~/.bash_profile
これを追加したら、ターミナルを再起動する必要があります。ここでvlc
と入力すると、コマンドラインが表示されます。
インタラクティブなインターフェースが気に入らない場合、または他のオプションでVLC
を使用する場合は、それに応じて~/.bash_profile
を編集する必要があります。 open -e ~/.bash_profile
まで。
OS Xアプリケーションは通常、アプリケーションバンドルの外部に実行可能プログラムをインストールしません。通常はコマンドラインから操作しないため、PATH
のフォルダーには配置されません。
VLCを/Applications
にインストールした場合、実際の実行可能ファイルは/Applications/VLC.app/Contents/MacOS/VLC
です。
/Applications/VLC.app/Contents/MacOS/VLC -h
はいくつかのヘルプを表示し、/Applications/VLC.app/Contents/MacOS/VLC --intf ncurses
はncurses UIを起動します。
コマンドラインからvlc
にアクセスするには、次のようにローカルシンボリックリンクを作成します。
mkdir ~/bin
ln -vs /Applications/VLC.app/Contents/MacOS/VLC ~/bin/vlc
このコマンドをすべてのユーザーが使用できるようにするには、代わりに/usr/local/bin
にリンクすることができます。
~/bin
(または/usr/local/bin
)が環境変数PATH
に含まれていることを確認してください。つまり、~/.profile
ファイルに次のような内容が含まれていることを確認してください。
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
上記のコードは、Linuxのデフォルトの動作です。
ダミーインターフェイスを使用すると、コマンドラインでバッチ操作を実行できます。/usr/local/bin/vlcに保存されている次のようなシェルスクリプトを使用します。
export VLC_PLUGIN_PATH=/Applications/VLC.app/Contents/MacOS/plugins
/Applications/VLC.app/Contents/MacOS/VLC -I dummy "${@}"
参考までに、および/またはヒント。
open
コマンドで起動する--- [アプリの実際のパスを見つけるを実行する2つの方法があります。
VLCが/Applications
ではなく/Users/<user>/Applications
(~/Applications
)などのディレクトリではなく別のディレクトリに配置されている場合に役立ちます。
シンプルですが、アプリを起動します。
$ 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/
少し複雑ですが、アプリを起動しません。
$ # 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
テスト済み: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.
まず、VLC Macアプリケーションパッケージで実際のバイナリ実行可能ファイルを見つける必要があります。 Finder
を開き、Applications
フォルダーに移動し、VLCアプリを右クリックして[Show Package Contents
]をクリックします。これで、実際に何が入っているかを参照できます。
この場合、VLCバイナリはContents/MacOS
フォルダーにファイルVLC
として配置されます。 Terminal
を開き、正確なファイルパスを入力すると、VLCバイナリが実行されます:/Applications/VLC.app/Contents/MacOS/VLC
。毎回このパス全体を使用したくない場合は、シンボリックリンクを作成し、これを指すようにBash PATHを編集できます。
CLIから直接バイナリを呼び出すことができるようになったので、通常のGUIポップアップが表示されないようにインターフェイスを選択することをお勧めします。利用可能なインターフェースの完全なリストは VLC Interfaces wiki page にあります。
意図した出力を生成するVLC CLI呼び出しのコマンドの作業セットが見つかったら、プログラム/バッチ処理でVLCを呼び出すときにdummy
インターフェイスを使用することをお勧めします。 dummy
インターフェースは基本的に、ほとんどの非対話型CLIプログラムと同様に、ターミナルでの出力にすぎません。
最終結果:/Applications/VLC.app/Contents/MacOS/VLC -I dummy [further parameters here]
-vvv
パラメータを使用することをお勧めします。これにより、さまざまなコマンドをテストするときに役立つログ出力が得られます。