mpvをビルドする

公開:2021/02/16
更新:2021/02/16
2 min読了の目安(約2000字TECH技術記事

この記事は https://github.com/mpv-player/mpv-build/blob/master/README.rst の内容をもとに、筆者の環境での確認結果や説明を追記したものです。

mpvは、MPlayerからforkされたmplayer2をもとに作られた、マルチプラットフォームのメディアプレイヤーです。デコードライブラリとしてFFmpegを標準で利用し、現在もアクティブに開発が行われています。

今回デバッグ用途でmpvのビルドを行ったので、備忘録として残しておきます。

mpvを利用するだけであれば、各プラットフォームで提供されています。

利用環境

  • Ubuntu 20.10
  • gcc 10.2.0

ビルド

ビルドに必要なパッケージをインストール。Desktop環境であればだいたい入っているかもしれません。

$ sudo apt install git build-essential yasm autoconf autotools-dev libtool libharfbuzz-dev xorg-dev libopengl-dev libegl-dev libasound2-dev libpulse-dev libfontconfig1-dev libfreetype-dev libfribidi-dev libmp3lame-dev libx264-dev libjpeg-dev

mpvをビルドする際、ffmpegやlibassの環境が必要となるため、これらをこうまいようにビルドしてくれる、ビルドスクリプトが入ったmpv-buildレポジトリをcloneします。

$ git clone https://github.com/mpv-player/mpv-build.git
$ cd mpv-build

rebuildコマンドでffmpeg、libass、mpvのソースを取得してビルドします。並列度(-j4)は環境によって調整してください。

$ ./rebuild -j4

エラーが出なければ、インストールすることが可能になります。installスクリプトは/usr/local配下にインストールしていきますが、このスクリプトを実施せず./mpv/build/mpvで実行することも可能です。

$ sudo ./install

動作確認やデバッグ用途であれば、ここまでで十分でしょう。

debパッケージのビルド

debパッケージとしてビルドを行う場合、パッケージツールをインストールします。

$ sudo apt install devscripts equivs

以下のmk-build-depsコマンドをmpv-buildディレクトリ内で実行し、依存するパッケージをインストールしてくれるダミーパッケージを作成してインストールします。作成されるパッケージはmpv-build-deps_2021.02.16.c766e47b70_amd64.debのようになっているでしょう。

$ mk-build-deps -s sudo -i

上記のコマンド実行した後にdpkg -lで確認してみると、ダミーパッケージがインストールされていることがわかるでしょう。また、次に行うmpvのdebパッケージ作成時に依存するパッケージも併せて入れてくれます。

$ dpkg -l|grep mpv
ii  mpv-build-deps                   2:2021.02.16.c766e47b70           amd64        build-dependencies for mpv

では、mpvのdebバッケージを作成します。並列度は先程同様、環境によって調整してください。

$ dpkg-buildpackage -uc -us -b -j4

debパッケージのビルドが終わると、一つ上のディレクトリにmpv_2021.02.16.c766e47b70_amd64.debのように、mpvのdebパッケージができていると思います。これを必要に応じてdpkgコマンドなどでインストールします。

sudo dpkg -i ../mpv_2021.02.16.c766e47b70_amd64.deb

(もしかしたら)追加されるかもしれない内容

  • FFmpeg、mpvのビルドオプション
  • libmpvの作成