2
0

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.

libmp3lame を有効にした Windows 用の FFmpeg を LGPL ライセンスでビルドする

Last updated at Posted at 2018-12-12

msys2-i686-20180531 と Visual Studio 2013 update 5 で確認。
異常に手間がかかったので、健忘録として記載。

※ MinGW の gcc でもビルドできるけど、一部の依存ライブラリが GPL になるので MSVC でビルドする。なお基本的な方法は ffmpeg の wiki に記載があるです。
https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC
スタティックリンクしなければ libgcc は LGPL 扱いになるので MinGW でもビルド可能な模様。

libmp3lame のビルド

  1. lame のソースコードを sourceforge からダウンロードして解凍する
    https://sourceforge.net/projects/lame/files/lame/
  2. 解凍先の vc_solution/vp9_lame.sln を Visual Studio で開いて Release 版をビルドする
    ※ ビルド時に gtk が不足しているメッセージが表示されるけど、無視して OK
  3. 解凍先の include ディレクトリ内のヘッダファイルを、MSVC のインクルードパスへ #include <lame/lame.h> でインクルードできるようにコピーする
  4. ビルド時に生成された output/Release/libmp3lame.* を MSVC のライブラリパスへコピーする

FFmpeg のビルド環境の準備

  1. configure を実行するために、msys2 をダウンロードしてインストールする
    https://www.msys2.org/
  2. インストール後、パッケージの更新と必要ソフトウェアのインストールを行う
# msys2 をはじめて使う場合はパッケージの更新が必要
$ pacman -Syuu
# パッケージ更新時 msys2 の再起動を求められた場合は、再起動後 y を抜いて更新を再開
$ pacman -Suu
# 更新が完了したら必要なソフトウェアをインストール
$ pacman -S diffutils make pkg-config yasm

FFplay も必要な場合

  1. ビルドに必要となる SDL2 の最新版を github のミラーなどから取得する
    https://github.com/SDL-mirror/SDL
  2. 取得した最新版の VisualC/SDL.sln を Visual Studio で開いて Release 版をビルドする。
  3. ビルド後 sdl2-config ファイルを msys2 の PATH(/usr/bin など)へ作成し、sdl2 の include ディレクトリとビルドしたライブラリへのパスを設定する。
sdl2-config
#! /bin/sh

SDL_MAJOR_VERSION=2
SDL_MINOR_VERSION=0
SDL_MICRO_VERSION=5

includedir='C:\\\\SDL2\\\\include' # include ファイルへのパス
SDL_CFLAGS=
libdir='C:\\\\SDL2\\\\lib' # ビルドしたライブラリへのパス
SDL_RLD_FLAGS=
SDL_LIBS="-lSDL2"
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION

while test $# -gt 0; do
  case $1 in
    --cflags)
      echo -I${includedir} ${SDL_CFLAGS}
      ;;
    --libs)
      echo /LIBPATH:${libdir} ${SDL_RLD_FLAGS} ${SDL_LIBS}
      ;;
    --version)
      echo ${SDL_VERSION}
      ;;
  esac
  shift
done

FFmpeg のビルド

  1. VS2013 x** Nativa Tools Command Prompt を実行する
  2. msys2 を実行する
    C:\hoge\fuga>c:\msys32\msys2_shell.cmd
  3. FFmpeg のソースコードを github のミラーなどから取得する
    https://github.com/FFmpeg/FFmpeg
  4. Visual Studio のパスを export する
    export PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin":$PATH
  5. FFmpeg のディレクトリへ移動し configure 〜 make を実行する
$ cd path/to/ffmpeg
$ ./configure --enable-libmp3lame --enable-shared --toolchain=msvc
$ make

生成された ffmpeg.exelib*/lib*.dlllibmp3lame.dllSDL2.dll を同じディレクトリにコピーして完了。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?