VLC media player

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

From the project home page:

VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various streaming protocols.

Installation

Install the vlc package.

Notable variants are:

Language

VLC does not offer an option to change language in its Preferences menu. But you can use the LANGUAGE= prefix. For instance, modify the /usr/share/applications/vlc.desktop line:

Exec=/usr/bin/vlc %U

to:

Exec=LANGUAGE=fr /usr/bin/vlc %U

to switch VLC interface to French.

Skins

VLC can be "skinned" for a different look and feel. You can get skins at the skins website.

To install a skin download it and move it to ~/.local/share/vlc/skins2/.

Open up VLC, click Tools > Preferences. When the preferences window opens up you should be in the "Interface" tab

Choose the "Use custom skin" radio button, and select the downloaded skin.

Restart VLC for the change to take effect.

Web interface

Run VLC with the parameter --extraintf=http to use both the desktop and web interface. The --http-host parameter specifies the address to bind to, which is localhost by default. To set a password, use --http-password, otherwise VLC will not allow you to log in.

$ vlc --extraintf=http --http-host 0.0.0.0 --http-port 8080 --http-password yourpasswordhere

To enable the web interface from the graphical interface, navigate to View > Add Interface > Web Interface. Set the password via Tools > Preferences > Show settings: All > Interface > Main interfaces > Lua > Lua HTTP > Password.

VLC defaults to port 8080: http://localhost:8080

Edit /usr/share/vlc/lua/http/.hosts to allow remote connections. You will need to restart VLC in order for changes to take effect.

Tips and tricks

Twitch.tv streaming over VLC

See Streamlink#Twitch.

Playing streamed content from a local DLNA server

If you find that trying to play uPNP/DLNA content (by going to View > Playlist > Local Network > Universal Plug'n'Play), that vlc fails to see the DLNA server on the local network, then make sure that the firewall is not blocking port 1900 UDP. It is essential that this port is open in order to play local uPNP/DLNA content.

Control using hotkeys or cli

Install openbsd-netcat.

Get script at: https://crunchbang.org/forums/viewtopic.php?pid=112035%23p112035#p112035

Follow instructions in script to setup a socket for VLC.

Either run the script from the command line or register the script with keyboard shortcuts through your desktop.

Alternatively, you can use MPRIS to interact with VLC.

It is also possible to start vlc with an ncurses dialog

$ vlc -I ncurses

see the documentaion for more information

Preventing multiple instances

The default settings for VLC is to open a new instance of the program for each file that is opened. This can be annoying if you are using VLC for something like playing your music collection. You can disable this in Tools > Preferences > Interface > Instances > Allow only one instance. Optionally, tick Enqueue files when in one instance mode which keeps current file playing and adds any newly opened files to the current playlist.

Hardware video acceleration

See Hardware video acceleration.

VLC automatically tries to use an available API, but you can override it by going to Tools > Preferences > Input & Codecs and choosing the suitable option under Hardware-accelerated decoding, e.g. Video Acceleration (VA) API for VA-API or Video Decode and Presentation API for Unix (VDPAU) for VDPAU.

systemd service

VLC's web interface can be started from systemd. First, you need to create a default user:

# useradd -c "VLC daemon" -d / -G audio -M -p \! -r -s /usr/bin/nologin -U vlcd

Now create the systemd service file:

/etc/systemd/system/vlc.service
[Unit]
Description=VideoOnLAN Service
After=network.target

[Service]
Type=forking
User=vlcd
ExecStart=/usr/bin/vlc --daemon --syslog -I http --http-port 8090 --http-password password 
Restart=on-abort

[Install]
WantedBy=multi-user.target

Start and enable vlc.service. Log in to http://yourmachine:8090/ with no username and with the password you put in the service file.

Chromecast support

Starting with 3.0 release (Vetinari branch), VLC can stream to chromecast devices on the same wireless network.

Install packages:

  • libmicrodns - VLC can find the chromecast device and it shows up in Playback > Renderer menu
  • protobuf - enables streaming to the selected device in Playback > Renderer menu

Then, edit the file /etc/nsswitch.conf and change the hosts line to include mdns_minimal [NOTFOUND=return] before resolve and dns:

hosts: ... mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...
Note: If you experience slowdowns in resolving .local hosts try to use mdns4_minimal instead of mdns_minimal.
Note: Look towards avahi for more information.

Troubleshooting

Video broken or other issue after upgrade

Now and then VLC will have some issues with configuration even in minor releases. Before making bug reports, remove or rename your configuration located at ~/.config/vlc and confirm whether the issue is still there.

If using a ffmpeg variant from the AUR, be sure that you have upgraded it as well. Pacman will not upgrade it when necessary and a mismatch will break VLC.

Segmentation fault

Fault when initiating VLC

When starting VLC you can get a segfault, and ruling out general factors such as Microcode, a possible workaround to this is running the following:

# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins

Then reinstall VLC.

If that does not work, VLC has a segfault issue with plugins.dat (see FS#57777), simply remove the file:

# rm /usr/lib/vlc/plugins/plugins.dat

Fault when playing a video

Sometimes you can open VLC and use it to play audio files, but it closes when you play a video. You will also get a segfault. It occurs especially when you are using different graphic cards on one computer. Then Hardware video acceleration was wrongly configured, causing VLC unable referring to graphic devices. You can install the following dependencies to solve the problem.

For Nvidia graphic card users: install libva-vdpau-driver.

For Intel graphic card users: install libva-intel-driver.

Missing icons in dropdown menus

This can happen under XFCE, there will be no more icons in dropdown menus, like the PCI card icon.

Execute these commands to reactivate these icons:

$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true

Failed to open VDPAU backend

See Hardware video acceleration#Failed to open VDPAU backend.

Since your system probably does not support VDPAU you should tell VLC to use VA-API instead, see #Hardware video acceleration.

VLC fails to open a second time after closing

Manually set VLC to use the VA-API acceleration backend in Settings -> Input/Codecs. VLC seems to select VDPAU by default, which is broken for many people.

No playback via SFTP of media files names containing spaces

If VLC does not play any videos or audio files over SFTP make sure you have sshfs installed.

If it refuses to play any media files containing spaces via SFTP and always asks for authentication change the Exec line in the vlc.desktop file to:

Exec=/usr/bin/vlc --started-from-file %F

See [1].

Cannot navigate DVD menus

To navigate DVD menus an play episode by episode, optional VLC dependency libdvdnav needs to be installed.

RTSP stream does not load

If some RTSP stream look like they are endlessly connecting, without giving an error message in the logs (like the ipTV from French FAI Free) installing aribb24 may fix the issue.

See also