もっと詳しく

みなさんこんにちは、FascodeNetworkのブログスケジュール担当を行っているなおこです。

今回は動く壁紙をLinuxで行う方法を解説します。

WindowsなどではWallpaper Engineと言ったソフトがありますが、2021/11/04現在 Linuxでは、Wallpaper Engineは使えません。

そのためLinuxで動く壁紙が使えないか調べていたら複数のディストリビューションで安定して動くVLCを使用する方法を見つけたのでそちらをご紹介したいと思います。

Wallpaper Engineはこれ↓

Steam:Wallpaper Engine
驚きのライブ壁紙をデスクトップに使用できます。自分で作ったイメージをアニメーションにして、新しい壁紙を作ることも、ビデオ/ webサイトからインポートすることもできます。また、Steam Workshopで共有できます。

今回はVLC media playerを使う↓

Official download of VLC media player, the best Open Source player – VideoLAN
Official download of VLC media player, the best Open Source player

VLCとは

VLCと言っても何って人がいるかもしれませんので軽く解説します。

VLCはVLC media playerの略称でVideoLAN projectというフランスの非営利団体が2001年から開発している、オープンソースでクロスプラットホームの動画再生ソフトです。

ネットストリーミングサービスやDVD/BD、動画ファイル、音声ファイルなど、様々なファイルやストリーミングに対応しており、メディアを再生するならぜひおすすめしたいソフトです。

VLCについて詳しく知りたい方はWikipediaをご覧することをおすすめします。

VLCメディアプレーヤー – Wikipedia

VideoLAN – Wikipedia

今回使うPCスペックや実行環境

  • OS : Alter Linux(実質Arch Linux)
  • MB : B450M Steel Legend
  • CPU : AMD Ryzen 5 5600x
  • GPU : NVIDIA GTX 960
  • RAM : 32GB
  • HDD : 4TB

VLCのインストール方法

vlcをインストールする場合は下記の方法でインストールすることができます。

Arch Linux/Alter Linux

pacman -Syyu
pacman -S vlc

fedora

wget https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm 
sudo dnf install rpmfusion-free-release-*.norch.rpm 
sudo dnf update
sudo dnf install vlc

Ubuntu/Debian

sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install vlc

# リポジトリにない場合は
sudo add-apt-repository ppa:videolan/stable-daily
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install vlc

CentOS

#centos7
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
sudo yum install -y vlc
#centos8
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
sudo yum install -y vlc

Mac OS

brew install --cask vlc



動く壁紙の設定方法

vlcではコマンドラインツールが存在しvlcコマンドの最初にcを追記したcvlcコマンドがコマンドラインで使用する際のコマンドになります。

cvlc –helpと実行すると各オプションの機能一覧が表示されます。

cvlc --help

cvlc –helpの実行結果は長いため省略します。表示する場合は下記ボタンをタップまたはクリックで表示してください。

VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)
利用方法: vlc [オプション] [ストリーム] ...
コマンドライン上で複数のストリームを指定することが可能です。
指定されたストリームはプレイリストにキューイングされます。
最初に指定されたものから順に再生されます。

オプションの指定形式:
  --option  プログラムの長さを指定するグローバルオプション
   -option  グローバルオプション --option の一文字バージョン
   :option  ストリームに直接適用するオプション、前の設定は上書きされます。

ストリームのMRL指定形式:
  [[access][/demux]://]URL[#[title][:chapter][-[title][:chapter]]]
  [:option=value ...]
  複数のグローバルオプション --option は、MRL固有のオプション :option の
  組みとして扱われます
  複数の :option=value の組みが指定可能です。

URLの指定形式:
  file:///path/file              プレーンなメディアファイル
  http://host[:port]/file        HTTP URL
  ftp://host[:port]/file         FTP URL
  mms://host[:port]/file         MMS URL
  screen://                      画面キャプチャー
  [dvd://][device]               DVDデバイス
  [vcd://][device]               VCDデバイス
  [cdda://][device]              オーディオCDデバイス
  udp://[[<source address>]@[<bind address>][:<bind port>]]
                                 ストリーミングサーバーによって送信される
                                 UDPストリーム
  vlc://pause:<seconds>          再生を指定された時間で一時停止する特別な指定
  vlc://quit                     VLCを終了させる特別な指定

 コアプログラム (core)

 オーディオ
      --audio, --no-audio        オーディオの有効化
                                 (デフォルトで有効)
      --force-dolby-surround {0 (自動), 1 (オン), 2 (オフ)} 
                                 ドルビーサラウンドの検出を強制
      --audio-replay-gain-mode {none,track,album} 
                                 再生ゲインモード
      --audio-replay-gain-preamp <浮動小数点> 
                                 再生プリアンプ
      --audio-replay-gain-default <浮動小数点> 
                                 デフォルト再生ゲイン
      --audio-time-stretch, --no-audio-time-stretch 
                                 オーディオのタイムストレッチの有効化
                                 (デフォルトで有効)
      --audio-filter <文字列>    オーディオフィルター
      --audio-visual {any,glspectrum,visual,none} 
                                 オーディオの視覚化

 ビデオ
  -f, --fullscreen, --no-fullscreen 
                                 全画面ビデオ出力
                                 (デフォルトで無効)
      --video-on-top, --no-video-on-top 
                                 常に手前に表示
                                 (デフォルトで無効)
      --video-wallpaper, --no-video-wallpaper 
                                 壁紙モードの有効化
                                 (デフォルトで無効)
      --video-title-show, --no-video-title-show 
                                 ビデオにメディアタイトルを表示
                                 (デフォルトで有効)
      --video-title-timeout <整数> 
                                 ビデオタイトルを表示する時間(ミリ秒)
      --video-title-position {0 (中央), 1 (左), 2 (右), 4 (上), 8 (下), 5 (左上), 6 (右上), 9 (左下), 10 (右下)} 
                                 ビデオタイトルの位置
      --mouse-hide-timeout <整数> 
                                 カーソルと全画面表示コントローラーを隠すまでの
                                 時間(ミリ秒)
   スナップショット:
      --snapshot-path <文字列>   ビデオスナップショットのディレクトリ(またはフ
                                 ァイル名)
      --snapshot-prefix <文字列> ビデオスナップショットファイル名のプレフィック
                                 ス
      --snapshot-format {png,jpg,tiff} 
                                 ビデオスナップショットの形式
      --snapshot-preview, --no-snapshot-preview 
                                 ビデオスナップショットを表示
                                 (デフォルトで有効)
      --snapshot-sequential, --no-snapshot-sequential 
                                 ファイル名にタイムスタンプの代わりに連番を使用
                                 (デフォルトで無効)
   ウィンドウプロパティ:
      --crop <文字列>            ビデオクロッピング
      --custom-crop-ratios <文字列> 
                                 カスタムのクロッピング比率リスト
      --aspect-ratio <文字列>    ソースのアスペクト比
      --autoscale, --no-autoscale 
                                 ビデオ自動スケーリング
                                 (デフォルトで有効)
      --custom-aspect-ratios <文字列> 
                                 カスタムのアスペクト比リスト
      --deinterlace {0 (オフ), -1 (自動), 1 (オン)} 
                                 デインターレース
      --deinterlace-mode {auto,discard,blend,mean,bob,linear,x,yadif,yadif2x,phosphor,ivtc} 
                                 デインターレースモード
      --video-filter <文字列>    ビデオフィルターモジュール
      --video-splitter <文字列>  ビデオ分割モジュール

 サブピクチャー
   オンスクリーンディスプレイ(OSD):
      --spu, --no-spu            サブピクチャーの有効化
                                 (デフォルトで有効)
      --osd, --no-osd            オンスクリーンディスプレイ(OSD)
                                 (デフォルトで有効)
   字幕:
      --sub-file <文字列>        字幕ファイルを使用
      --sub-autodetect-file, --no-sub-autodetect-file 
                                 字幕ファイルの自動検出
                                 (デフォルトで有効)
      --sub-text-scale <整数 [10 .. 500]> 
                                 字幕スケーリング係数
   オーバーレイ:
      --sub-source <文字列>      サブピクチャーソースモジュール
      --sub-filter <文字列>      サブピクチャーフィルターモジュール
   トラック設定:
      --audio-language <文字列>  オーディオ言語
      --sub-language <文字列>    字幕の言語
      --menu-language <文字列>   メニュー言語:
      --preferred-resolution {-1 (利用可能な最高値), 1080 (フルHD (1080p)), 720 (HD (720p)), 576 (標準の解像度(576、または480ライン)), 360 (低い解像度(360ライン)), 240 (かなり低い解像度(240ライン))} 
                                 優先するビデオの解像度
   再生制御:
      --input-repeat <整数 [0 .. 65535]> 
                                 入力ストリームの繰り返し
      --input-fast-seek, --no-input-fast-seek 
                                 高速シーク
                                 (デフォルトで無効)
      --rate <浮動小数点>        再生速度
   デフォルトデバイス:
      --dvd <文字列>             DVDデバイス
      --vcd <文字列>             VCDデバイス
   詳細設定:
      --input-title-format <文字列> 
                                 再生中メディアのタイトル変更

 入力
      --stream-filter <文字列>   ストリームフィルターモジュール

 プレイリスト
   パフォーマンスオプション:
  -Z, --random, --no-random      ファイルをランダムに再生
                                 (デフォルトで無効)
  -L, --loop, --no-loop          すべてをリピート
                                 (デフォルトで無効)
  -R, --repeat, --no-repeat      再生中タイトルをリピート
                                 (デフォルトで無効)
      --play-and-exit, --no-play-and-exit 
                                 再生と終了
                                 (デフォルトで無効)
      --play-and-stop, --no-play-and-stop 
                                 再生と停止
                                 (デフォルトで無効)
      --start-paused, --no-start-paused 
                                 最初のフレームで一時停止
                                 (デフォルトで無効)
      --playlist-autostart, --no-playlist-autostart 
                                 自動的に開始
                                 (デフォルトで有効)
      --playlist-cork, --no-playlist-cork 
                                 オーディオ通信の一時停止
                                 (デフォルトで有効)
      --media-library, --no-media-library 
                                 メディアライブラリを使用
                                 (デフォルトで無効)
      --playlist-tree, --no-playlist-tree 
                                 プレイリストのツリー表示
                                 (デフォルトで無効)
      --open <文字列>            デフォルトのストリーム
      --auto-preparse, --no-auto-preparse 
                                 項目の自動的な事前解析
                                 (デフォルトで有効)
      --preparse-timeout <整数>  予備解析のタイムアウト
      --metadata-network-access, --no-metadata-network-access 
                                 メタデータのネットワークアクセスを許可
                                 (デフォルトで無効)
      --recursive {none,collapse,expand} 
                                 サブディレクトリの振る舞い
      --ignore-filetypes <文字列> 
                                 除外する拡張子
      --show-hiddenfiles, --no-show-hiddenfiles 
                                 隠しファイルを表示
                                 (デフォルトで無効)
  -v, --verbose <整数>           メッセージの出力レベル(0,1,2)
      --pidfile <文字列>         ファイルにプロセスIDを書き込む
      --advanced, --no-advanced  詳細設定オプションを表示
                                 (デフォルトで無効)
      --interact, --no-interact  対話的なインターフェース
                                 (デフォルトで有効)
  -I, --intf <文字列>            インターフェースモジュール
      --extraintf <文字列>       拡張インターフェースモジュール
      --control <文字列>         制御インターフェース

 ホットキー
      --hotkeys-y-wheel-mode {-1 (無視), 0 (音量の制御), 2 (再生位置の制御), 3 (再生位置制御を反転)} 
                                 マウスホイールの垂直軸制御
      --hotkeys-x-wheel-mode {-1 (無視), 0 (音量の制御), 2 (再生位置の制御), 3 (再生位置制御を反転)} 
                                 マウスホイールの水平軸制御
      --global-key-toggle-fullscreen <文字列> 
                                 全画面表示
      --key-toggle-fullscreen <文字列> 
                                 全画面表示
      --global-key-leave-fullscreen <文字列> 
                                 全画面表示の解除
      --key-leave-fullscreen <文字列> 
                                 全画面表示の解除
      --global-key-play-pause <文字列> 
                                 再生/一時停止
      --key-play-pause <文字列>  再生/一時停止
      --global-key-faster <文字列> 
                                 速く
      --key-faster <文字列>      速く
      --global-key-slower <文字列> 
                                 ゆっくり
      --key-slower <文字列>      ゆっくり
      --global-key-rate-normal <文字列> 
                                 通常レート
      --key-rate-normal <文字列> 通常レート
      --global-key-rate-faster-fine <文字列> 
                                 少しだけ速く
      --key-rate-faster-fine <文字列> 
                                 少しだけ速く
      --global-key-rate-slower-fine <文字列> 
                                 少しだけゆっくり
      --key-rate-slower-fine <文字列> 
                                 少しだけゆっくり
      --global-key-next <文字列> 次へ
      --key-next <文字列>        次へ
      --global-key-prev <文字列> 前へ
      --key-prev <文字列>        前へ
      --global-key-stop <文字列> 停止
      --key-stop <文字列>        停止
      --global-key-jump-extrashort <文字列> 
                                 ほんの少し前に戻る
      --key-jump-extrashort <文字列> 
                                 ほんの少し前に戻る
      --global-key-jump+extrashort <文字列> 
                                 ほんの少し先に進む
      --key-jump+extrashort <文字列> 
                                 ほんの少し先に進む
      --global-key-jump-short <文字列> 
                                 少し前に戻る
      --key-jump-short <文字列>  少し前に戻る
      --global-key-jump+short <文字列> 
                                 少し先に進む
      --key-jump+short <文字列>  少し先に進む
      --global-key-jump-medium <文字列> 
                                 前に戻る
      --key-jump-medium <文字列> 前に戻る
      --global-key-jump+medium <文字列> 
                                 先に進む
      --key-jump+medium <文字列> 先に進む
      --global-key-jump-long <文字列> 
                                 かなり前に戻る
      --key-jump-long <文字列>   かなり前に戻る
      --global-key-jump+long <文字列> 
                                 かなり先に進む
      --key-jump+long <文字列>   かなり先に進む
      --global-key-frame-next <文字列> 
                                 次のフレーム
      --key-frame-next <文字列>  次のフレーム
      --global-key-quit <文字列> 終了
      --key-quit <文字列>        終了
      --global-key-vol-up <文字列> 
                                 音量を上げる
      --key-vol-up <文字列>      音量を上げる
      --global-key-vol-down <文字列> 
                                 音量を下げる
      --key-vol-down <文字列>    音量を下げる
      --global-key-vol-mute <文字列> 
                                 ミュート
      --key-vol-mute <文字列>    ミュート
      --global-key-audio-track <文字列> 
                                 オーディオトラックの切り替え
      --key-audio-track <文字列> オーディオトラックの切り替え
      --global-key-audiodevice-cycle <文字列> 
                                 オーディオデバイスの切り替え
      --key-audiodevice-cycle <文字列> 
                                 オーディオデバイスの切り替え
      --global-key-subtitle-revtrack <文字列> 
                                 字幕トラックの切り替え順を反転
      --key-subtitle-revtrack <文字列> 
                                 字幕トラックの切り替え順を反転
      --global-key-subtitle-track <文字列> 
                                 字幕トラックの切り替え
      --key-subtitle-track <文字列> 
                                 字幕トラックの切り替え
      --global-key-subtitle-toggle <文字列> 
                                 字幕切り替え
      --key-subtitle-toggle <文字列> 
                                 字幕切り替え
      --global-key-program-sid-next <文字列> 
                                 次のプログラムサービスIDを切り替え
      --key-program-sid-next <文字列> 
                                 次のプログラムサービスIDを切り替え
      --global-key-program-sid-prev <文字列> 
                                 前のプログラムサービスIDを切り替え
      --key-program-sid-prev <文字列> 
                                 前のプログラムサービスIDを切り替え
      --global-key-aspect-ratio <文字列> 
                                 ソースのアスペクト比の切り替え
      --key-aspect-ratio <文字列> 
                                 ソースのアスペクト比の切り替え
      --global-key-crop <文字列> ビデオのクロッピングの切り替え
      --key-crop <文字列>        ビデオのクロッピングの切り替え
      --global-key-toggle-autoscale <文字列> 
                                 自動スケーリングの切り替え
      --key-toggle-autoscale <文字列> 
                                 自動スケーリングの切り替え
      --global-key-incr-scalefactor <文字列> 
                                 スケーリング係数の増加
      --key-incr-scalefactor <文字列> 
                                 スケーリング係数の増加
      --global-key-decr-scalefactor <文字列> 
                                 スケーリング係数の減少
      --key-decr-scalefactor <文字列> 
                                 スケーリング係数の減少
      --global-key-deinterlace <文字列> 
                                 デインタレースの切り替え
      --key-deinterlace <文字列> デインタレースの切り替え
      --global-key-deinterlace-mode <文字列> 
                                 デインターレースモードの切り替え
      --key-deinterlace-mode <文字列> 
                                 デインターレースモードの切り替え
      --global-key-intf-show <文字列> 
                                 全画面表示モードでコントローラーを表示
      --key-intf-show <文字列>   全画面表示モードでコントローラーを表示
      --global-key-wallpaper <文字列> 
                                 ビデオ出力の壁紙モードの切り替え
      --key-wallpaper <文字列>   ビデオ出力の壁紙モードの切り替え
      --global-key-random <文字列> 
                                 ランダム再生
      --key-random <文字列>      ランダム再生
      --global-key-loop <文字列> 通常再生/ループ/リピート
      --key-loop <文字列>        通常再生/ループ/リピート
      --global-key-zoom-quarter <文字列> 
                                 1:4 1/4
      --key-zoom-quarter <文字列> 
                                 1:4 1/4
      --global-key-zoom-half <文字列> 
                                 1:2 1/2
      --key-zoom-half <文字列>   1:2 1/2
      --global-key-zoom-original <文字列> 
                                 1:1 オリジナル
      --key-zoom-original <文字列> 
                                 1:1 オリジナル
      --global-key-zoom-double <文字列> 
                                 2:1 2倍
      --key-zoom-double <文字列> 2:1 2倍
   ジャンプする長さ:
      --extrashort-jump-size <整数> 
                                 ほんの少し戻ったり、進んだりする長さ
      --short-jump-size <整数>   少し戻ったり、進んだりする長さ
      --medium-jump-size <整数>  戻ったり、進んだりする長さ
      --long-jump-size <整数>    かなり戻ったり、進んだりする長さ
      --bookmark1 <文字列>       プレイリストのブックマーク1
      --bookmark2 <文字列>       プレイリストのブックマーク2
      --bookmark3 <文字列>       プレイリストのブックマーク3
      --bookmark4 <文字列>       プレイリストのブックマーク4
      --bookmark5 <文字列>       プレイリストのブックマーク5
      --bookmark6 <文字列>       プレイリストのブックマーク6
      --bookmark7 <文字列>       プレイリストのブックマーク7
      --bookmark8 <文字列>       プレイリストのブックマーク8
      --bookmark9 <文字列>       プレイリストのブックマーク9
      --bookmark10 <文字列>      プレイリストのブックマーク10
  -h, --help, --no-help          VLCのヘルプの表示(--advancedと--help-verboseを
                                 組み合わせ可能)
                                 (デフォルトで無効)
  -H, --full-help, --no-full-help 
                                 VLCとそのモジュールの網羅的なヘルプ
                                 (デフォルトで無効)
      --longhelp, --no-longhelp  VLCとすべてのモジュールのヘルプの表示(--advanc
                                 edと--help-verboseを組み合わせ可能)
                                 (デフォルトで無効)
      --help-verbose, --no-help-verbose 
                                 ヘルプ表示の際の冗長表示
                                 (デフォルトで無効)
  -l, --list, --no-list          有効なモジュールの一覧を表示
                                 (デフォルトで無効)
      --list-verbose, --no-list-verbose 
                                 詳細情報を伴って有効なモジュールの一覧を表示
                                 (デフォルトで無効)
  -p, --module <文字列>          特定モジュールのヘルプを表示
                                 (--advancedと--help-verboseオプションを組み合
                                 わせ可能)モジュール名のプレフィックスに一致す
                                 るものを表示
      --ignore-config, --no-ignore-config 
                                 すべての設定オプションを読み込まない、また、設
                                 定を保存しない
                                 (デフォルトで有効)
      --reset-config, --no-reset-config 
                                 現在の設定を既定値にリセットする
                                 (デフォルトで無効)
      --reset-plugins-cache, --no-reset-plugins-cache 
                                 現在のプラグインキャッシュをリセット
                                 (デフォルトで無効)
      --version, --no-version    バージョン情報の表示
                                 (デフォルトで無効)
      --config <文字列>          別の設定ファイルを使用

注釈: --advancedをコマンドラインに付加すると詳細設定オプションが表示されます。

包括的なヘルプを表示するためには、'-H'オプションを指定してください。

ヘルプの中から動く壁紙に使うオプションをピックアップしました。

  • –loop
  • –video-wallpaper
  • –no-audio
  • –no-video-title-show

上記4個のオプション、ループ やビデオを壁紙として表示、音の無効化やタイトルの非表示を組み合わせて使用します。

組み合わせると下記のようになり、最後の部分に再生したい動画ファイルやストリーミングのURLなどを記述する形になります。

cvlc --loop --video-wallpaper --no-audio --no-video-title-show 再生したいファイルやURL

The Jazz Hop Caféさんの動画などを壁紙するとかなりおしゃれですね。

cvlc --loop --video-wallpaper --no-audio --no-video-title-show https://www.youtube.com/watch?v=5wRWniH7rt8

ただ、実際に動画を再生させている様子はThe Jazz Hop Caféさんの利用規約的にみせれないので、コマンドの紹介だけでとどめておきます。

FascodeNetworkのNaxii制作したかっこよくAlter Linuxを紹介するPVを再生させている様子をご覧いただきましょう。

cvlc --loop --video-wallpaper --no-audio --no-video-title-show https://youtu.be/Wof2hS-Ana4

ちなみにAMVなどを設定してもなかなかおしゃれでしたよ〜

VLCでYoutubeが再生できないときの対処方法

vlcでYoutubeのURLが再生できない場合はVLCのバージョンが古いかyoutube.luaの書き換えが必要な場合が多いです。

archlinux系は/usr/share/doc/vlc/lua/playlist/というpathに下記のファイルを配置しなおしてツール→設定→設定をリセットを行うと解決するケースが多いです。

vlc/youtube.lua at master · videolan/vlc
VLC media player – All pull requests are ignored, please follow – vlc/youtube.lua at master · videolan/vlc

archlinux系以外のLinux版pathは/usr/lib/vlc/lua/playlist/ もしくは /usr/share/vlc/lua/playlist/

mac系は /Applications/VLC.app/Contents/MacOS/share/lua/playlist/

最後に

Linuxで動く壁紙を使えるのは良いですね。実はLinuxで動く壁紙を設定するツールなどは存在しますが複数のディストリビューションでの動作が安定してなかったりとうまく動作しないことが多くいろいろ試しているとvlcでやるのが一番汎用性が高いため紹介させていただきました。

それではそれでは次のブログでお会いしましょう。

The post Linuxで動く壁紙をやる方法Youtubeや動画ファイルも可能 【VLC】 first appeared on FascodeNetwork Blog.