#はじめに
FFmpeg は様々な動画形式を扱うことのできる動画ライブラリです
https://www.ffmpeg.org/
Windows に対応したバイナリは以下の URL からダウンロードできるようになっています
http://ffmpeg.zeranoe.com/builds/
しかし、上記バイナリを Visual Studio から使う場合は注意が必要です
lib をリンクした際に
LNK2026: モジュールは SAFESEH イメージには安全ではありません。
といったエラーが出るためです
SAFESEH を指定しないでビルドをして回避する手段もありますが、今回は SAFESEH イメージに安全なバイナリを作成する手段で回避をすることにします。
今回の基本的な流れは公式サイトのここを参考にしています
https://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows
#準備
下記 URL から Git クライアントをインストールします(これ以外の Git クライアントでも可)
https://desktop.github.com/
下記 URL から Chocolatey をインストールします
https://chocolatey.org/
Chocolatey をインストールしたら、下記コマンドで mingw-get と yasm をインストールします
cinst mingw-get
cinst yasm
コマンドプロンプトを立ち上げ、 mingw-get が見える場所に移動します(パス設定でも可)
cd C:\tools\MinGW\bin
mingw-get で mingw32-base と msys-base の両パッケージをインストールします
mingw-get install mingw32-base
mingw-get install msys-base
pkg-config を下記 URL からダウンロードし、msysから見える場所(今回はC:\tools\MinGW\bin) に入れインストールします
http://www.gtk.org/download/win32.php
また、GLib も必要になるため、同上のサイトから同上の手順でインストールを行います
Git クライアントを立ち上げ、下記コマンドで改行コードが勝手に書き換わるのを防止してからクローンします
git config --global core.autoCRLF false
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
%VS120COMNTOOLS%VsDevCmd.bat からコマンドプロンプトを起動し、
C:\tools\MinGW\msys\1.0\msys.bat
と入力し、シェルを立ち上げます
クローンした FFmpeg のフォルダへ行き、下記コマンドを入力(今回は dll が欲しかったため --enable-shared を指定)
./configure --toolchain=msvc --enable-shared
make
とすることでバイナリができます。