svp のインストール(Ubuntu 上)

SVP(SmoothVideo Project)は,動画のフレーム間を補間してフレームレートを変換し,画面のリフレッシュレートに合わせて再生するソフトウェアである.SVP 4 Linux は無償で配布されている.

対応するプレイヤーは次の通りである.

Snap 版・Flatpak 版のプレイヤーでは SVP は動作しない.VLC などは,Ubuntu のパッケージ管理システム(apt)でインストールしたものを使用する.

手順は https://www.svp-team.com/wiki/SVP:Linux に記載の公式手順による.

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.これは,パッケージ情報を最新の状態に保ち,インストール済みのパッケージをセキュリティ更新やバグ修正を含めて更新するためである.

Ubuntu のインストールはこちらの別ページで説明する.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行
# sudo shutdown -r now

前提パッケージのインストール

SVP の動作には,プロセスの特定に使用する lsof,Qt が使用する libxcb-cursor0,ハードウェア支援デコードに使用する VA-API 関連のライブラリが必要である. 端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install lsof libxcb-cursor0 libva-x11-2 vainfo mediainfo

GPU による処理の高速化には,OpenCL と Vulkan に対応したプロプライエタリのビデオドライバが必要である.NVIDIA のビデオカードの場合は,OpenCL の実行に nvidia-opencl-icd 相当のパッケージが必要である.

# NVIDIA ビデオカードの場合の例
sudo apt update
sudo apt -y install nvidia-opencl-icd-<ドライバのバージョン> vulkan-tools clinfo

# OpenCL が認識されているかの確認
clinfo | head

Qt 6.8 以上,VapourSynth R60 以上,Python 3.12,VapourSynth 対応の mpv,ffmpeg,MKVToolNix の mkvmerge も必要であるが, これらは SVP のメンテナンスツール(Maintenance tool)が SVP のインストール先に自動でダウンロード・導入する. 自分でインストールする必要はなく,導入後もメンテナンスツールで追加・削除できる.

Python は 3.12 に限定されている(3.12 以上ではなく 3.12). システムの Python が別のバージョンである場合は,SVP が用意する内蔵の Python を使用する(メンテナンスツールの既定の動作).

SVP 4 Linux のインストール

SVP の公式ダウンロードページから,SVP 4 Linux のアーカイブをダウンロードする. 端末で,次のコマンドを実行する(ファイル名はダウンロードしたものに読み替える).

cd ~/Downloads
tar xf SVP_4_Linux_<バージョン>.tar.bz2
chmod +x SVP_4_Linux_<バージョン>.run
./SVP_4_Linux_<バージョン>.run

インストールウィザードが起動するので,画面の指示に従って操作する.インストール先ディレクトリを指定し,必要に応じて SVPlightSVPtube を選び,ライセンス条項を確認して同意する. インストール中は,構成要素をダウンロードするためにインターネット接続が必要である.

SVP Manager が起動しないときは,端末から SVP Manager を実行し,表示されるエラーメッセージから不足している依存パッケージを確認する.

mpv のインストール

Ubuntu のパッケージ管理システム(apt)でインストールした mpv は,SVP からは利用できない(VapourSynth スクリプトエンジンが有効化されていないため). SVP のメンテナンスツールが導入するビルド済みの mpv を使用するか,次の手順でソースコードからビルドする.

mpv をソースコードからビルドする場合

端末で,次のコマンドを実行する.終了までしばらく待つ.

# ビルドに必要なパッケージ(コーデックや機能を追加する場合は適宜追加する)
sudo apt update
sudo apt -y install libssl-dev libfribidi-dev libharfbuzz-dev libluajit-5.1-dev libx264-dev \
  xorg-dev libxpresent-dev libegl1-mesa-dev libfreetype-dev libfontconfig-dev \
  libva-dev libdrm-dev libplacebo-dev
# 音声出力のために少なくともいずれか一方が必要
sudo apt -y install libasound2-dev libpulse-dev

cd /tmp
rm -rf mpv-build
git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build
./use-ffmpeg-release

# 最小構成の例.必要な機能は ffmpeg_options, mpv_options に追加する
echo --enable-libx264 >> ffmpeg_options
echo --enable-libx265 >> 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

SMPlayer のインストール

SMPlayer は mpv の操作画面として利用できる. 端末で,次のコマンドを実行する.

sudo add-apt-repository -y ppa:rvm/smplayer
sudo apt update
sudo apt -y install smplayer smplayer-themes smplayer-skins

VLC のインストール

端末で,次のコマンドを実行する. Snap 版・Flatpak 版では SVP は動作しないため,apt でインストールする.

sudo apt update
sudo apt -y install vlc

mpv の設定と起動

SVP は,mpv が作成するローカルソケットを通じて mpv を制御する. また,VapourSynth による処理には,デコード結果をシステムメモリに書き戻す copy-back 方式のハードウェアデコードが必要である. 端末で,次のコマンドを実行する.

mpv --input-ipc-server=/tmp/mpvsocket --hwdec=auto-copy <動画ファイル名>

SVP Manager のメニューから動画ファイルを開いた場合は,これらのオプションが自動的に付与された状態で mpv が実行される.

SVP が mpv を検出できず「Unable to find mpv's pid」と表示される場合は,lsof がインストールされているかを確認する.

VLC の設定

SVP の VLC 用プラグインは,VLC の「デインターレース」フィルタを置き換える形で動作する. SVP のメニューから切り替えられるようにするため, 端末で,次のコマンドを実行し,VLC のプラグインディレクトリの書き込み権限を変更する.

sudo chmod 777 /usr/lib/x86_64-linux-gnu/vlc/plugins/video_filter
# ディレクトリが存在しない場合はこちら
# sudo chmod 777 /usr/lib/vlc/plugins/video_filter

SVP のメインメニューで,ユーティリティ,SVP in VLC と操作して,プラグインをインストールする. その後,VLC でビデオ,デインターレース(またはツール,設定,ビデオ,デインターレース = ON)と操作して有効化する.

プラグインが認識されないときは,SVP の All settings の main.setup.vlc.plugins にプラグインのパス(例:/usr/lib/vlc/plugins)を直接指定する. VLC のハードウェアデコードは VapourSynth のフィルタと併用できない場合がある.