3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xを立ち上げずにmpvを利用する

Last updated at Posted at 2018-08-05

非常にニッチな状況だと思いますが、Xを立ち上げずに動画を再生したい機会がありました。
スペックもそんなに高くないため、なるべくCPU使用率も減らしたい。

結論

以下のコマンドで再生可能です。(hwdecは各自環境に合わせる)

(GPUあり)
 $ mpv -vo gpu -gpu-context drm -hwdec=vaapi sample.mp4

(GPUなし)
 $ mpv -vo drm sample.mp4

初めに試した方法

mplayerの頃からFrameBufferを利用して再生する機能がありますが、FrameBufferであるためCPUを利用したMemory Copyが走ってCPU使用率が非常に高いです。

 $ mplayer -vo fbdev sample.mp4

mpvで同様のことをしようとすると、以下のコマンドで再生できます。

 $ mpv -vo drm sample.mp4

こちらもDirect Rendering Managerを利用してXなしにvideo出力が出来ますが、非常にCPU利用率が高いです。

HW支援機能を使う

GPUがある場合、OpenGL/OpenGL ESを使って描画を高速化することができます。-vo gpuオプションを使うと利用できますが、デフォルトではX用のgpu contextを選択しようとするため、コンソール上からは利用できません。GPU/DRMを組み合わせて使うオプションを指定すると再生が可能です。

 $ mpv -vo gpu -gpu-context drm sample.mp4

また、video codecのHW decodeをサポートしている場合、HW支援機能を使うことができます。vaapiを利用してHWデコードを行う場合、以下のコマンドで利用できます。

 $ mpv -vo drm -hwdec=vaapi sample.mp4

トラブルシューティング

  • Q. 再生できません!
    • mpvの最新版を使うと解決する可能性があります。私の環境だと0.28.2では再生できず、git cloneして最新版を利用しました。

参考資料

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?