QSV (Quick Sync Video) に対応した Windows 64bit 用 FFmpeg のビルド

スポンサーリンク

MSYS2 で QSV (Quick Sync Video) に対応した Windows 64bit 用 FFmpeg をビルドしてみます。

環境は下記の通りです。

  1. Core i5-7200U (第7世代 Kaby Lake)
  2. Windows 10 Home

MSYS2

まず、MSYS2 のインストーラーをダウンロードしてインストールします。

http://www.msys2.org/
msys2-x86_64-20161025.exe

インストール後、MSYS2 MinGW 64-bit を起動します。

まず、情報をアップデートしておきます。

pacman -Syuu

警告が出た場合はいったん MYSY2 を閉じて再度起動させます。

警告: terminate MSYS2 without returning to shell and check for updates again
警告: for example close your terminal window instead of calling exit

そして再度情報をアップデート。

pacman -Syuu

続いて必要と思われるパッケージをインストールします。

pacman -S wget tar gcc make git autoconf automake libtool pkg-config yasm mingw-w64-x86_64-gcc

mfx_dispatch

GitHub から mfx_dispatch をクローンしてビルドしてインストールします。

cd
git clone https://github.com/lu-zero/mfx_dispatch
cd mfx_dispatch
autoreconf -i
./configure --prefix=/mingw64
make -j$(nproc)
make install

FFmpeg

これを書いている時点で最新の 3.2.4 をダウンロードしてビルドしてインストールします。

cd
wget http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2
tar jxvf ffmpeg-3.2.4.tar.bz2
cd ffmpeg-3.2.4
./configure --enable-libmfx --disable-shared --enable-static --extra-ldflags=-static --extra-libs="-lsupc++ -lstdc++" 
make -j$(nproc)
make install

exe ファイルは下記に生成されます。

C:\msys64\usr\local\bin\ffmpeg.exe

スタンドアローンの exe ファイルとして生成されるため、任意の場所に exe を移して使用できます。

動作確認

何か適当なビデオファイルをダウンロードして変換してみます。

cd
wget https://download.blender.org/durian/trailer/sintel_trailer-1080p.mp4
ffmpeg -i sintel_trailer-1080p.mp4 -vcodec h264_qsv out_qsv.mp4

ログに h264_qsv と表示されていれば良いと思います。スピードは 4.79x でした。

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
...
speed=4.79x