SVP:Linux
Contents
Compatible video players
- mpv itself can act as a standalone video player
- SMPlayer
- Plex Media Player
- VLC
Prerequisites
Despite of the Linux distro in use you'll need to pre-install:
- Qt 5.9.0 or later
- Vapoursynth R31 or later
- MediaInfo
- lsof command line tool (install it via your package manager)
- Required for SVPtube: Python 3.8
- Properly installed video drivers including OpenCL ICD
- (recommended) mpv 0.29 or later built with Vapoursynth support
- (optional) Recommended UI for mpv: SMPLayer
- (optional) VLC 3.0 or later (NOT a Snap version!)
Ubuntu packages
Common packages
# mediainfo sudo apt-get install mediainfo
Ubuntu >= 16.04 specific
# Ubuntu 16.04+ and others (e.g. ElementaryOS) - Qt5Concurrent, Qt5Svg, Qt5Qml packages are probably not installed by default sudo apt-get install libqt5concurrent5 libqt5svg5 libqt5qml5
SVPtube needs Python 3.8
# Python 3.8 - needed for SVPtube # Ubuntu 18.04 have it in the "updates" repo sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install libpython3.8
mpv and Vapoursynth: build them on your own!
djcj's PPA is missing since 18-Apr-2019, see building instructions below!
# SMPlayer: sudo add-apt-repository ppa:rvm/smplayer sudo apt-get update sudo apt-get install smplayer smplayer-themes smplayer-skins
# VLC sudo apt-get install vlc
Arch packages
# common packages pacman -S qt5-base qt5-declarative qt5-svg libmediainfo lsof vapoursynth
# mpv with Vapoursynth support # AUR packages to install: rsound spirv-cross mpv-full
# svpcode pacman -S mkvtoolnix-cli
# if you want svpcast to be able to discover AppleTVs pacman -S avahi systemctl enable avahi-daemon.service
Building 3rd-party apps from sources
The following was tested on Ubuntu 24.04, 22.04, 20.04 and 19.04 right after the clean installation.
Vapoursynth
# common build tools sudo apt-get install g++ make autoconf automake libtool pkg-config nasm git meson # zimg library git clone --branch release-3.0.5 https://github.com/sekrit-twc/zimg.git cd zimg ./autogen.sh ./configure make -j4 sudo make install cd .. # Cython for Python3. !!! Vapoursynth requires Cython >= 0.28 !!! sudo apt-get install cython3 # OR pip3 install Cython # build Vapoursynth git clone --branch R66 https://github.com/vapoursynth/vapoursynth.git cd vapoursynth ./autogen.sh ./configure make -j4 sudo make install cd .. sudo ldconfig # make Python find the Vapoursynth module # replace "python3.10" with the actual version you have - for example, "python3.12" sudo ln -s /usr/local/lib/python3.10/site-packages/vapoursynth.so /usr/lib/python3.10/lib-dynload/vapoursynth.so # ensure everything is fine so far - run vspipe vspipe
mpv with Vapoursynth support
# install dependencies: add more if you want additional ffmpeg/mpv codecs and features sudo apt-get install libssl-dev libfribidi-dev libharfbuzz-dev libluajit-5.1-dev libx264-dev xorg-dev libxpresent-dev libegl1-mesa-dev libfreetype-dev libfontconfig-dev libffmpeg-nvenc-dev libva-dev libdrm-dev libplacebo-dev # you need at least one of these to enable audio output sudo apt-get install libasound2-dev libpulse-dev # Ubuntu 20.04 or later sudo apt-get install python-is-python3 # Ubuntu <= 19.04 sudo apt-get install python-minimal git clone https://github.com/mpv-player/mpv-build.git cd mpv-build ./use-ffmpeg-release # minimal install, feel free to add more options to ffmpeg_options and mpv_options # see https://www.svp-team.com/forum/viewtopic.php?pid=80787#p80787 echo --enable-libx264 >> ffmpeg_options echo --enable-nvdec >> ffmpeg_options echo --enable-vaapi >> ffmpeg_options echo -Dvapoursynth=enabled >> mpv_options echo -Dlibmpv=true >> mpv_options ./rebuild -j4 sudo ./install cd ..
mpv configuration
Just add --input-ipc-server=/tmp/mpvsocket to mpv args (or config file) and SVP should find it. Alternatively you can "open" video file via SVPManager - it'll execute mpv with the correct argument.
As Vapoursynth processing requires a "copy-back" video decoder, you have to also include
--hwdec=auto-copy
VLC configuration
As of now SVP assumes that VLC installed into /usr/bin, /usr/lib etc.
SVP's plugin for VLC replaces the "deinterlace" filter. To be able to quickly switch them from SVP's main menu you may need to change VLC's plugins folder access rights:
sudo chmod 777 /usr/lib/vlc/plugins/video_filter # OR (e.g. Ubuntu 17.04) sudo chmod 777 /usr/lib/x86_64-linux-gnu/vlc/plugins/video_filter
Then "install" or "uninstall" SVP's plugin via SVP main menu -> Utilities -> SVP in VLC.
If it doesn't work then manually put the plugins path (e.g. "/usr/lib/vlc/plugins") into main.setup.vlc.plugins property in SVP's All settings.
You must turn on deinterlace in VLC via Video -> Deinterlace -> On to start using SVP's plugin.. Alternatively you can turn it on permanently: Tools -> Preferences -> Video -> Deinterlacing = On
Note 1: Hardware decoding is not be compatible with the Vapoursynth filter!
Issues
Installation
Installer may hang while attempting to request admin privileges during installation.
Error message Execution failed (Unexpected exit code: 8) ... means you haven't install either Qt 5 libs or MediaInfo before, especially "libqt5concurrent5 libqt5svg5" on Ubuntu.
DO NOT install mpv via package manager - it won't work! Build it on your own instead.
If SVP Manager doesn't run after installation you may want to check if all the dependencies are met with a simple command:
ldd SVPManager
Here's an example of missing libQt5Concurrent.so library, which may not be installed by default:
user@host:~/SVP4$ ldd SVPManager linux-vdso.so.1 => (0x00007ffc099dc000) libmediainfo.so.0 => /usr/lib/x86_64-linux-gnu/libmediainfo.so.0 (0x00007fed10ca1000) libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fed1031f000) libQt5Concurrent.so.5 => not found libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fed0f413000)
Another possible error:
./SVPManager: symbol lookup error: ./SVPManager: undefined symbol: _ZN7QString13toUtf8_helperERKS_
means "installed Qt version is too old". Check that actual libQt5*.so in use are from Qt 5.5.0 or later. If Qt 5.5 is installed into /opt, you can try something like this:
LD_LIBRARY_PATH=/opt/qt55/lib ./SVPManager
Common issues
One major issue is incompatibility between the way system tray icon/menu implemented in Qt and some display managers. For example in Xubuntu 15.10/Xfce tray icon is completely unusable. Because of this SVP runs w/o tray icon by default, BUT it's possible to switch Windows behavior with -tray command line arg.
For GPU acceleration support use proprietary video drivers with (probably) some additional modules - search for "OpenCL ICD". For example in case of NV cards "nvidia-modprobe" package is needed for OpenCL to work. Check the installation with utils/clinfo.
AMD cards may need additional driver component for the SVP's GPU acceleration (see more details there):
Image support is supplied by a closed-source component of the ROCr runtime (libhsa-ext-image64.so) that is part of the hsa-ext-rocr-dev package.
"Auto" settings expect hardware video decoding which may be unavailable for mpv with Vapoursynth video filter enabled. So you may need to lower SVP settings manually.
Unlike the Windows version, SVP 4 Linux doesn't measure actual screen refresh rate, but uses OS provided value instead. For 59.xxx Hz screens this value is often rounded to "59.0", so you'll get sub-optimal FRC rate like 25/11 instead of 5/2. To avoid this use fixed "Movie x2.5" target rate.
The number of computation threads are set for the Windows' Avisynth and may not be optimal for Vapoursynth. In case of any unexpected video stuttering try to adjust this value at the first place.
Fix for the following error:
/usr/bin/mpv: symbol lookup error: /usr/bin/mpv: undefined symbol: ass_set_check_readorder
is
apt-get install libass5
Error message - Unable to find mpv's pid:
SVP 4.1 and later uses lsof utility to find which mpv instance is on the other end of the local socket, so ensure that lsof is installed. In Gentoo-based distros you may also need to update lsof to ver.4.89 or later.