MinGW+ffmpeg(7)ビルドMinGW+ffmpeg(7)ビルドMinGW+ffmpeg(7)ffmpegのビルドようやくffmpegのビルドまでたどり着いた。付加的な改造は後々行うとして、まずはビルドできることを確認しよう。事前に、マルチスレッド(pthread-w32)に関する修正が2点ほど、configureに必要だ。これらの修正はMinGW+ffmpeg(1)準備で説明したどちらのリビジョンにも必要で、両リビジョンのconfigureは多少表記が違うが、追加する内容は全く同じ。リビジョンの違いで迷うことはないだろう。ffmpeg自体のpthread-w32対応x264と同様にpthread-w32を有効にするが、ffmpegのconfigureはpthread-w32を考慮していない。pthread-w32のライブラリはlibpthreadGC2.aであり、libwsock32.aに依存している。これらの依存関係をconfigureに追加する。-lwsock32という2行を追加し、以下のようにする。fifiこれでffmpeg自体がpthread-w32を使用してビルド可能になる。pthread-w32を使うx264とリンクするこれまでの記事通りに進めていれば、libx264.aはマルチスレッド(pthread-w32)対応版になっているはずだ。ffmpegのconfigureはlibx264.aが使用可能であるかを事前チェックする。このチェック時にやはりpthread-w32が必要となるため、configureを修正する。上記ffmpeg自体のpthread-w32対応で変更した箇所の少し下に、以下の記述がある。-lwsock32を追加する。-lwsock32ビルドビルドコマンドは./configureとmakeだけだが、./configureが長い。あまりに長いので下記では\で改行しているが、もちろん全て続けて書いても良い。./configureに指定するオプションは最近のリビジョンと少し前までのリビジョンで僅かに異なる。make両者の違いは、以下の2点だ。--enable-swscaler指定する名前が変わっただけで、本質的には同じだ。これで晴れてffmpeg.exeが作成される。ffmpeg自体はシングルスレッドにする場合x264のみpthread-w32を使用させ、ffmpeg自体はシングルスレッドで良い場合にはどうするか。上記のうち「ffmpeg自体のpthread-w32」のconfigureの修正は不要。「pthread-w32を使うx264とリンクする」の修正のみ行えばよい。ビルド時の./configureには--enable-pthreadsが不要になる。これはpthread-w32のDLL版を使用する場合に限られる。static版をリンクした場合、恐らくビルドは通っても実行時に不正終了するffmpeg.exeになる。筆者はこの「ffmpeg自体はシングルスレッド版」の確認を行っていない。理論上は上記の通りのはずだ。Perl5.010001。