mpvプレーヤーをコンパイルする

mpvという名前の動画プレーヤーがある。かってVLCとしのぎを削ったmplayer/mplayer2の流れを汲むソフトだ。

筆者も長い間VLCを使ってきた。だが、ブルーレイディスクの再生時に音が途切れたりするのと、余計なファイルタイプまで開けると主張するのがうるさく、別のソフトを探していた。そこに現れたのがmpvである。

本稿では、そのmpvを利用するにあたってのコンパイル方法について述べる。

  1. ディスクイメージの作成
    始めにディスクユーティリティを用いてmpv_compileというボリューム名のディスクイメージを作る。容量は2GBもあれば十分である。

  2. ターミナル変数のセット

                export VOLNAME=mpv_compile
                export TARGET="/Volumes/${VOLNAME}"
                export SRC="${TARGET}/src"
                export CMPL="${TARGET}/compile"
                export PATH=${TARGET}/bin:$PATH
                mkdir -p ${CMPL}
                mkdir -p ${SRC}
                export PKG_CONFIG_PATH=${TARGET}/lib/pkgconfig
            
  3. pkg-configのコンパイル&インストール

                cd ${SRC}
                curl -LO https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
                cd ${CMPL}
                tar xf ${SRC}/pkg-config-0.29.2.tar.gz
                cd pkg-config-0.29.2
                ./configure --with-internal-glib
                make && sudo make install
            
  4. nasmのコンパイル&インストール(ffmpeg, libass等のコンパイルに用いる)

                cd ${SRC}
                curl -LO https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/nasm-2.14.02.tar.xz
                cd nasm-2.14.02
                ./configure --prefix=/usr/local
                make && sudo make install
            
  5. autoconfのコンパイル&インストール(fribidiのコンパイルに用いる)

                cd ${SRC}
                curl -LO http://ftp.jaist.ac.jp/pub/GNU/autoconf/autoconf-2.69.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/autoconf-2.69.tar.xz
                cd autoconf-2.69
                ./configure
                make && sudo make install
            
  6. automakeのコンパイル&インストール(fribidiのコンパイルに用いる)

                cd ${SRC}
                curl -LO http://ftp.gnu.org/gnu/automake/automake-1.16.1.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/automake-1.16.1.tar.xz
                cd automake-1.16.1
                ./configure
                make && sudo make install
            
  7. libtoolのコンパイル&インストール(fribidiのコンパイルに用いる)

                cd ${SRC}
                curl -LO http://ftp.jaist.ac.jp/pub/GNU/libtool/libtool-2.4.6.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/libtool-2.4.6.tar.xz
                cd libtool-2.4.6
                ./configure --program-prefix=g
                make && sudo make install
            
                export LIBTOOL=`which glibtool`
                export LIBTOOLIZE=`which glibtoolize`
            
  8. gitのインストール(fribidi、ffmpegの入手に用いる)

    こちらからダウンロードしてインストールする。

  9. libpngのコンパイル&インストール

                cd ${SRC}
                curl -LO http://prdownloads.sourceforge.net/libpng/libpng-1.6.37.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/libpng-1.6.37.tar.xz
                cd libpng-1.6.37
                ./configure --prefix=${TARGET} --disable-shared
                make && make install
            
  10. freetypeのコンパイル&インストール

                cd ${SRC}
                curl -LO https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/freetype-2.10.1.tar.xz
                cd freetype-2.10.1
                ./configure --prefix=${TARGET} --disable-shared
                make && make install
            
  11. expatのコンパイル&インストール

                cd ${SRC}
                curl -LO https://github.com/libexpat/libexpat/releases/download/R_2_2_9/expat-2.2.9.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/expat-2.2.9.tar.xz
                cd expat-2.2.9
                ./configure --prefix=${TARGET} --disable-shared --enable-static
                make && make install
            
  12. libuuidのコンパイル&インストール

    fontconfigのコンパイルに必要である。

                cd ${SRC}
                curl -LO http://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz
                cd ${CMPL}
                tar xf ${SRC}/libuuid-1.0.3.tar.gz
                cd libuuid-1.0.3
                ./configure --prefix=${TARGET} --disable-shared --enable-static
                make && make install
                mv ${TARGET}/include/uuid/uuid.h ${TARGET}/include/uuid/uuid.h.bak
            
  13. fontconfigのコンパイル&インストール

    freetypeとexpatはfontconfigの依存ライブラリである。

                cd ${SRC}
                curl -LO https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.92.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/fontconfig-2.13.92.tar.xz
                cd fontconfig-2.13.92
                ./configure --prefix=${TARGET} --disable-shared --disable-docs --enable-static --with-add-fonts=/Library/Fonts,~/Library/Fonts
                make && make install
            
  14. fribidiのコンパイル&インストール

    新規インストールの場合

                cd ${CMPL}
                git clone https://github.com/fribidi/fribidi.git
                cd fribidi
                ./autogen.sh
                ./configure --prefix=${TARGET} --disable-shared --enable-static
                make && make install
            

    更新インストールの場合

                cd ${CMPL}/fribidi
                git pull
                ./autogen.sh
                ./configure --prefix=${TARGET} --disable-shared --enable-static
                make clean
                make && make install
            
  15. libassのコンパイル&インストール

    fontconfigとFriBidiは、libassの依存ライブラリである。

                cd ${SRC}
                curl -LO https://github.com/libass/libass/releases/download/0.14.0/libass-0.14.0.tar.xz
                cd ${CMPL}
                tar xf ${SRC}/libass-0.14.0.tar.xz
                cd libass-0.14.0
                ./configure --prefix=${TARGET} --disable-shared
                make && make install
            
  16. libblurayのコンパイル&インストール

                cd ${SRC}
                curl -LO https://download.videolan.org/pub/videolan/libbluray/1.1.2/libbluray-1.1.2.tar.bz2
                cd ${CMPL}
                tar xf ${SRC}/libbluray-1.1.2.tar.bz2
                cd libbluray-1.1.2
                ./configure --prefix=${TARGET} --without-libxml2 --disable-shared --disable-bdjava-jar
                make && make install
            
  17. ffmpegのコンパイル&インストール

    新規インストールの場合

                cd ${CMPL}
                git clone git://source.ffmpeg.org/ffmpeg.git
                cd ffmpeg
            

    更新インストールの場合

                cd ${CMPL}/ffmpeg
                git pull
                make clean
            

    configureとmake(共通)

                ./configure \
                --prefix=${TARGET} \
                --pkg-config-flags=--static \
                --enable-libass \
                --enable-libbluray \
                --disable-programs \
                --disable-doc
                make && make install
            
  18. luaスクリプト言語のコンパイルとインストール
    (現行バージョンではなく、5.2.xを用いる)
    luaはmpvビルドに必須ではない。youtube-dlと連携して、youtubeストリーミング動画を再生するために導入する。

                cd ${SRC}
                curl -LO https://www.lua.org/ftp/lua-5.2.4.tar.gz
                cd ${CMPL}
                tar xf ${SRC}/lua-5.2.4.tar.gz
                cd lua-5.2.4
                make macosx install INSTALL_TOP=${TARGET}
            

    mpvがluaパッケージを見つけられるようにlua.pcファイルを作成する。

                cat >${TARGET}/lib/pkgconfig/lua.pc <<EOF
                prefix=/Volumes/mpv_compile
                exec_prefix=\${prefix}
                libdir=\${prefix}/lib/
                includedir=\${prefix}/include
                Name: lua
                Description: lua
                Requires:
                Version: 5.2.4
                Libs: -L\${libdir} -llua
                Cflags: -I\${includedir}
                EOF
            
  19. luaだけでなくluaJITも必要である。よってluaJITをコンパイル&インストールする。

                cd ${SRC}
                curl -LO http://luajit.org/download/LuaJIT-2.0.5.tar.gz
                cd ${CMPL}
                tar xf ${SRC}/LuaJIT-2.0.5.tar.gz
                cd LuaJIT-2.0.5
                make PREFIX=${TARGET}
                make install PREFIX=${TARGET}
            

    ダイナミックローダブルライブラリの削除

                rm -v ${TARGET}/lib/libluajit*dylib
            
  20. mpvのコンパイルとインストール

    新規インストールの場合

                cd ${CMPL}
                git clone https://github.com/mpv-player/mpv.git
                cd mpv
                ./bootstrap.py
            

    更新インストールの場合

                cd ${CMPL}/mpv
                git pull
            

    configureオプション(共通)

                export PKG_CONFIG=/usr/local/bin/pkg-config
                ./waf configure --prefix=${TARGET} --disable-debug-build --disable-manpage-build CC=/usr/bin/gcc AR=/usr/bin/ar
            

    ビルドとインストール(共通)

                ./waf build
                ./waf install
            

    macOSアプリケーションバンドルパッケージの作成

                TOOLS/osxbundle.py build/mpv
            

    注意:
    macOS 10.14 Mojaveでアプリケーションバンドルを起動しようとすると、次のようなダイアログが出る。これを拒否せずに、システム環境設定のアクセシビリティ項目で許可する必要がある。
        
    アクセス許可要求ダイアログ


    アクセシビリティ環境設定

以上

参考サイト

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL