1

vlc -I rc from OS X Terminal bash prompt returns error:

VLC media player 2.2.3 Weatherwax (revision 2.2.3-3-g0777f11) [0000000100233778] core libvlc error: No plugins found! Check your VLC installation.

VLC -I rc opens a remote VLC session successfully, as expected. Why doesn't the filesystem's case insensitivity make vlc and VLC equivalent commands? What could be causing the system to return different outputs for these two (theoretically identical) commands?

which vlc returns: /Applications/VLC.app/Contents/MacOS/vlc

which VLC returns /Applications/VLC.app/Contents/MacOS/VLC

ls -la /Applications/VLC.app/Contents/MacOS/ returns drwxr-xr-x@ 8 jay admin 272 May 4 06:52 . drwxr-xr-x@ 8 jay admin 272 May 4 06:52 .. -rwxr-xr-x@ 1 jay admin 28656 May 4 06:52 VLC drwxr-xr-x@ 2 jay admin 68 May 4 06:52 bin drwxr-xr-x@ 3 jay admin 102 May 4 06:52 include drwxr-xr-x@ 6 jay admin 204 May 4 06:52 lib drwxr-xr-x@ 303 jay admin 10302 May 4 06:52 plugins drwxr-xr-x@ 5 jay admin 170 May 4 06:52 share

echo $PATH returns this relevant entry:

/Applications/VLC.app/Contents/MacOS

Inelegantly, I've temporarily corrected the behavior by running: alias vlc='VLC' but I'd like to understand what's really happening. Ideas?

UPDATED:

type VLC returns: VLC is /Applications/VLC.app/Contents/MacOS/VLC

type vlc returns: vlc is hashed (/Applications/VLC.app/Contents/MacOS/vlc)

Clearing the hashes with hash -r and then re-running vlc repeats the faulty execution.

3
  • If the calling command is referenced from inside the application as anything other than a filename, it wouldn't be automatically case insensitive. Commented May 25, 2016 at 16:36
  • It's the filesystem that's case-insensitive, not the terminal. Meanwhile, most everything else (e.g. the C VLC is written in) is case sensitive. Commented May 25, 2016 at 16:38
  • What happens when you run type instead of which? Same results? Commented May 25, 2016 at 17:41

2 Answers 2

3

This is just guesswork, but I suspect the issue has more to do with application invocation in Mac OS X and the way which works. As others commented, the filesystem is what makes things case-insensitive. which is a little dumb; it will only show you where executable binaries are in your shell's execution path. For whatever reason, you have /Applications in there, but this isn't really right— many applications in OS X may invoke the underlying binary in the application's .app "package", but the event is clearly triggered by the system's recognition of the associated .plist files and whatnot that make up the whole app.

So when you use which, it shows you the binary file your terminal will attempt to execute, but in doing so it leaves out all the associated app libraries and configuration files necessary to make it work in your environment. Note this doesn't apply to commands in /usr/bin or anything built out of MacPorts. So as an alternative you could also try vlc (or Mplayer!) via an external package system, but then you'll likely be opening it in X instead of using the app.

If you want to use any .app package on the command line in Mac OS X, I'd advise you to follow the instructions as listed here, and use Mac's fairly versatile open command instead.

2
  • Thank you for your answer. In order to test out your ideas, I removed VLC from my path by retracting its addition from my .profile file. I then tried to use open /Applications/VLC.app --args -I rc to initialize VLC's remote interface. VLC didn't like that. The VLC help page named "Command line" has some specific instructions which I should have found and read first. My apologies. I'm inclined to re-add the vlc to my path and leave the alias in place permanently. I'll update this post if anything blows up. Thanks everyone! Commented May 25, 2016 at 20:07
  • Ah, I think I see what they wanted to do. Thanks for the update. Commented May 25, 2016 at 20:31
0

According to the VLC wiki page named "Command line":

In the terminal window type

../VLC.app/Contents/MacOS/VLC options

The reason I got confused is that many examples of running VLC shown in the VLC documentation look like this:

vlc -I rc

Therefore I assumed that I should be typing vlc in my terminal. I've now learned, thanks to the commenters on this page, that although the filesystem within OS X is case insensitive, the internal code within specific applications, in this case VLC, may indeed be case sensitive. The VLC documentation clearly states its requirement within OS X.

The correct way to call the remote interface of VLC from the OS X command line is:

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

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.