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.

  • If the calling command is referenced from inside the application as anything other than a filename, it wouldn't be automatically case insensitive. – Wildcard May 25 '16 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. – thrig May 25 '16 at 16:38
  • What happens when you run type instead of which? Same results? – DisplayName May 25 '16 at 17:41
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.

  • 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! – webappzero May 25 '16 at 20:07
  • Ah, I think I see what they wanted to do. Thanks for the update. – Ryder May 25 '16 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.