FFmpeg(libのみ)のビルド

概要

FFmpegに含まれる

  • libavcodec
  • libavdevice
  • libavfilter
  • libavformat
  • libavresample
  • libavutil
  • libpostproc
  • libswresample
  • libswscale

をビルドします。
32bit版、64bit版の両方をビルドします。
※ffmpeg.exeはビルドしません。

作業手順は以下のとおりです。

  1. MSYS\msys.bat を実行。(プロンプト画面(黒い画面)が起動します。)
  2. 下記の黒い部分のコマンドを一行ずつ入力し、Enterキーを押す。
    (一部 static と shared がありますが、よく分からない場合は static を選択してください。)
  3. 処理が完了するまで待つ。
  4. 2~3を繰り返す。

なお、ビルド作業を自動化したスクリプトもあります。
詳しくは、ビルド用スクリプトをご覧ください。

※ご注意※
  • このページの内容は、こちらで構築した環境をベースに記述されています。
    その他の環境では正常に動作しない可能性があります。
  • このページの内容は、2016/04/14 時点のものです。
    備忘録的なページのため、内容に誤りがある可能性があります。

ソースコードの入手

ダウンロード&パッチをあてます。

  • 最新版(Latest)の場合
    1. cd /tmp1
    2. git -c core.autocrlf=false clone --depth 1 git://source.ffmpeg.org/ffmpeg.git ffmpeg
    3. cd ffmpeg
    4. curl -O# http://mylabo.webcrow.jp/data/diff/ffmpeg-20161225.diff
    5. patch -p1 < ffmpeg-20161225.diff
  • 最新安定版(Stable)の場合
    1. cd /tmp1
    2. git -c core.autocrlf=false clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
    3. cd ffmpeg
    4. git checkout refs/tags/`git tag -l 'n*' | sed -e /dev/d | tail -n 1`
    5. curl -O# http://mylabo.webcrow.jp/data/diff/ffmpeg-20161225.diff
    6. patch -p1 < ffmpeg-20161225.diff

パッチの適用

必要のない場合はパスできます。

  1. 適用したいパッチ(hoge.diff)を MSYS\tmp\ffmpeg に入れます。
  2. 以下のように入力し、Enterキーを押します。
    1. patch -p1 < hoge.diff
    ※パッチを当てる前に戻したい場合は、以下のように入力します。
    1. patch -p1 -R < hoge.diff

ビルドの開始

  1. 32bit版をインストールします。
    • static
    • shared
    1. PKG_CONFIG_PATH=/x86/lib/pkgconfig ./configure --prefix=/x86 --cross-prefix=i686-w64-mingw32- --cpu=i686 --target-os=mingw32 --arch=x86 --enable-gpl --enable-version3 --enable-avresample --enable-cross-compile --enable-static --enable-w32threads --disable-avisynth --disable-debug --disable-doc --disable-dxva2 --disable-hwaccels --disable-indevs --disable-muxers --disable-network --disable-outdevs --disable-programs --disable-pthreads --disable-shared --optflags="-s -O3 -finline-functions -fno-tree-vectorize -fno-strict-aliasing" --extra-cflags="-I/x86/include" --extra-cxxflags="-pipe" --extra-ldflags="-L/x86/lib -static" --pkg-config-flags="--static"
    2. make -j3
    3. make install
    4. make distclean
    1. PKG_CONFIG_PATH=/x86/lib/pkgconfig ./configure --prefix=/x86 --cross-prefix=i686-w64-mingw32- --cpu=i686 --target-os=mingw32 --arch=x86 --enable-gpl --enable-version3 --enable-avresample --enable-cross-compile --disable-static --enable-w32threads --disable-avisynth --disable-debug --disable-doc --disable-dxva2 --disable-hwaccels --disable-indevs --disable-muxers --disable-network --disable-outdevs --disable-programs --disable-pthreads --enable-shared --optflags="-s -O3 -finline-functions -fno-tree-vectorize -fno-strict-aliasing" --extra-cflags="-I/x86/include" --extra-cxxflags="-pipe" --extra-ldflags="-L/x86/lib"
    2. make -j3
    3. make install
    4. make distclean
  2. 64bit版をインストールします。
    • static
    • shared
    1. PKG_CONFIG_PATH=/x64/lib/pkgconfig ./configure --prefix=/x64 --cross-prefix=x86_64-w64-mingw32- --cpu=x86_64 --target-os=mingw32 --arch=x86_64 --enable-gpl --enable-version3 --enable-avresample --enable-cross-compile --enable-static --enable-w32threads --disable-avisynth --disable-debug --disable-doc --disable-dxva2 --disable-hwaccels --disable-indevs --disable-muxers --disable-network --disable-outdevs --disable-programs --disable-pthreads --disable-shared --optflags="-s -O3 -finline-functions -fno-tree-vectorize -fno-strict-aliasing" --extra-cflags="-I/x64/include" --extra-cxxflags="-pipe" --extra-ldflags="-L/x64/lib -static" --pkg-config-flags="--static"
    2. make -j3
    3. make install
    4. make distclean
    1. PKG_CONFIG_PATH=/x64/lib/pkgconfig ./configure --prefix=/x64 --cross-prefix=x86_64-w64-mingw32- --cpu=x86_64 --target-os=mingw32 --arch=x86_64 --enable-gpl --enable-version3 --enable-avresample --enable-cross-compile --disable-static --enable-w32threads --disable-avisynth --disable-debug --disable-doc --disable-dxva2 --disable-hwaccels --disable-indevs --disable-muxers --disable-network --disable-outdevs --disable-programs --disable-pthreads --enable-shared --optflags="-s -O3 -finline-functions -fno-tree-vectorize -fno-strict-aliasing" --extra-cflags="-I/x64/include" --extra-cxxflags="-pipe" --extra-ldflags="-L/x64/lib"
    2. make -j3
    3. make install
    4. make distclean

以上で完了です。
ビルドに成功すると、以下のディレクトリにインストールされます。

  • 32bit版: MSYS\local\x86\lib など
  • 64bit版: MSYS\local\x86_64\lib など

ソースファイルの削除

MSYS\tmp にはFFmpegのソースファイルが残っています。
必要ない場合は、削除しても構いません。

削除手順は以下のとおりです。

  1. cd /tmp1
  2. rm -rf ffmpeg

参考サイト

Comment Form is loading comments...