デフォルト状態ではLinux Mint18環境においてA10-7850Kの動画再生支援は全く機能していない。FHDぐらいの解像度ならせいぜいCPU使用率10〜30%程度となんら問題ないレベルではある。しかし、それっぽいドライバやコーデックがインストールされてるのに再生支援が効かないのはどういう事だ。

2022/12追記

権利の関係でmesaドライバーにおけるh.264やh.265のハードウェア支援が無効化されたようです。
今時はどのディストリビューションでもmesaはプリインストールされているかと思いますが、以下の記事中に書いてある再生支援有効化は意味がなくなりました。

VDPAUとVA-APIドライバ

検索してヒットした再生支援の有効化方法はVDPAUかVA-APIというドライバをインストールすればよいらしい。
もしかしたら競合するかもしらんが、まあいいやって事でソフトウェアの管理から「Mesa-vdpau-drivers」「Mesa-va-drivers」両方共インストール。後はプレイヤー側で再生支援を有効化するだけ。

プリインストールされてたVLCで試したところ、見事にCPU使用率が下がった。もうひとつプリインストールされているビデオ(XPlayer)は再生支援の設定もないし効かないようだ。(※追記:GUIの設定がないだけで設定ファイルに記述すれば効くらしい)

RADEONで再生支援を有効化した場合の注意だが、wmv形式のファイルはVDPAUだと映像が乱れる。その場合はVA-APIを指定すれば大丈夫な事もある。ただし、VA-APIで再生できていたのが設定を変えたら映像が乱れて、設定を元に戻してもそのままとか安定しないので何とも言い難い。

MPV

VLCがどうも好きになれないのでMPVを導入した。気絶しそうなほどシンプルな動画プレイヤーで好印象だ。
configファイルを書くのがちょっと厄介だが公式サイトのマニュアルを見れば何とかなるとは思う。

自分がやったのは起動時に最大化しない・デインタレースと再生支援をONにして、wmvだけ再生支援を使わないようにするぐらいの簡素なもの。

1
2
3
4
5
6
7
8
fullscreen=no # これ設定しないと小さい動画も画面いっぱいに表示しやがるので
hwdec=vdpau
vo=gpu
deinterlace=yes

[extension.wmv]
profile-desc="profile for .wmv files"
hwdec=no

最後のhwdec=noは最初のうちはhwdec=vaapiでも動作していたのだが、何かの拍子に映像が乱れるようになったためnoに変更した。どうもよくわからん。

2019年12月追記

現行バージョンだとwmvの設定はなしでも大丈夫。
9月頃はvdpauのほうが良かったはずなのだが、ここ最近になってManjaro LinuxだとKaveri環境においてvdpauよりvaapiのほうがCPU使用率が低くなった。
hwdec=vaapi

※2020/12追記 コロコロ挙動が変わるので自動に設定したほうが安定してハードウェアデコードが作動するみたい。
hwdec=auto

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
fullscreen=no

# kaveriでvulkanドライバを使用しているので
gpu-api=vulkan

hwdec=auto
vo=gpu

video-sync=display-resample
interpolation
tscale=oversample

# 音声をpulseaudioに 好みでalsaでも
ao=pulse

# ボリュームMAXを100以上可能に
volume-max=200

# youtube-dlの設定 動画の縦を最大720pに制限
ytdl-format=bestvideo[height<=?720][vcodec=vac1]+bestaudio/best

MPVモノラル化

音声を強制的にモノラル化したい時に

~/.config/mpv/にinput.confを作り

1
Ctrl+m	af toggle "lavfi=[pan=1c|c0=1*c0+1*c1]" ; show-text "Audio mix set to Mono"

これでCtrl+mによるステレオ⇔モノラル切り替え可能(キーバインドは好きなように変えてOK)

ティアリング対策

再生支援が無事に効くようになると気になってくるのがティアリング。VLCやMPVの設定を調べてあれこれいじっても改善する気配が全くない。

解決の糸口はいつものArchWiki。
まあ、結論から言うとしょうもない話だが動画プレイヤーは関係なくてデスクトップ環境(Xfce)の設定が原因だった。

Xfwm - ティアリングが発生する

Xfwm でティアリングが発生する場合、xfwm4-tweaks-settings を開いて、コンポジタタブから 'Synchronize drawing to the vertical blank' オプションにチェックを入れて下さい。
この設定でティアリングが解消しない場合、Xfwm のコンポジットマネージャを無効化して他のコンポジットマネージャを使ってください。

https://wiki.archlinux.jp/index.php/Xfwm

xfwm4-tweaks-settingsってのは「ウィンドウマネージャー(詳細)」のようだ。これの垂直同期ON(描画を垂直帰線時間と同期する)を試したらあっさりとティアリングは解消。動画プレイヤーの設定で試行錯誤していた時間は何だったんだ…。こんな所にこんな設定あるのかよ…。

しかし、Linux Mintのいただけない点は日本語化だなぁ。なにもアプリケーションの名前まで訳さんでもいいのに。かえってわからなくなる事が多くて困る。
洋ゲーの日本語化MODも名詞を訳さないほうが好みなんだよね。

追記

その後、気がついたらまたも動画の垂直同期が効かなくなってしまった。Xfwm4+Comptonで使っていたのだが何をやってもダメっぽいので「デスクトップの設定」からCompizをウインドウマネージャに指定。ArchWikiを参考に関係しそうな設定をONでティアリングは解消した。

とにかくティアリングが起きるようになったら別のコンポジットマネージャに切り替えてみるというのが解決法か。

追記2

Mint19.2環境なので18系だとどうかはわからないが、透過処理やドロップシャドウが要らないのであればXfwmの内蔵コンポジターを切る。そして「デスクトップの設定」からウィンドウマネージャをXfwmのみに設定。つまりコンポジターは一切使わない。これでもティアリングがほとんど起きない事を確認したが、とても動きが速い場面ではやはり出てしまう。

完璧を期するのであれば/usr/share/X11/xorg.conf.d/内に20-amdgpu.confファイルを作ってOption "TearFree" "on"を記述するのがいいかもしれない。

1
2
3
4
5
Section "Device"
Identifier "AMDgpu"
Driver "amdgpu"
Option "TearFree" "on"
EndSection

コンポジタを介さないせいかCPU使用率がわずかに低くなるので普段使いにはいい感じ。ただゲームでVsyncを切りたくなった時に面倒なのでcomptonの有効化と無効化で使い分けが一番無難かも。

※ Xfwm+Comptonを選択するとcomptonの起動オプションに-vsync opengl-swcがつく。他の効果を足したいのでなければ設定ファイルを書く必要なし。陰などをつけたいのであればXfwmのみを選択し、compton.confを作成して別途起動。

X.orgによるとTearFree onはEnable PageFlipでフルスクリーンのOpenGLでしか動作しないみたい。

2020/12追記

amdgpu.confを以前試した時はドライバがradeonになっていたらしく、Manjaro環境下ではあるがamdgpuにちゃんと設定したところフルスクリーンでなくても効いているようだ。
ついでに"TearFree" "on"でなく"TearFree" "true"に記述を変更。

1
2
3
4
5
Section "Device"
	Identifier "AMD Graphics"
	Driver "amdgpu"
	Option "TearFree" "true"
EndSection