お気に入りの動画を携帯で見ようスマートフォン専用ページを表示お気に入りの動画を携帯で見よう携帯動画変換君用に最新のFFmpegをビルドしてみる。最新版のFFmpegは、カテゴリの【FFmpegダウンロード】からどうぞ。プロフィール名前:あべちん職業:サラリーマン一言:B'zと櫻坂46のファンです。似顔絵は【似顔絵イラストメーカー】で作成しました。w32threadsそれでは、FFmpegのコンパイルです。MSYS環境のアップデートMSYS-1.0.11以上をインストールした場合、bashとmakeは新しい物になっています。以上であれば問題ありません。alternatives.というメッセージが出ることがありますので、MSYSのshを更新しておきましょう。makeも古い場合は更新します。MinGW環境のアップデート現時点での最新版、gcc-4.5.0をインストールします。現時点での最新版、gcc-4.5.2をインストールします。以下のファイルを、すべてC:\MinGW\に、解凍します。以下の旧バージョンのライブラリがC:\MinGW\lib\のディレクトリに残っている場合は削除してください。libstdc++.alibstdc++.lalibsupc++.alibsupc++.la・gcc-4.5.2http://sourceforge.net/downloads/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.5.2-1/gcc-core-4.5.2-1-mingw32-bin.tar.lzmagcc-c++-4.5.2-1-mingw32-bin.tar.lzmalibgomp-4.5.2-1-mingw32-dll-1.tar.lzmalibgcc-4.5.2-1-mingw32-dll-1.tar.lzmalibssp-4.5.2-1-mingw32-dll-0.tar.lzmalibstdc++-4.5.2-1-mingw32-dll-6.tar.lzma・gmphttp://sourceforge.net/downloads/mingw/MinGW/gmp/gmp-5.0.1-1/libgmpxx-5.0.1-1-mingw32-dll-4.tar.lzmalibgmp-5.0.1-1-mingw32-dll-10.tar.lzma・mpfrhttp://sourceforge.net/downloads/mingw/MinGW/mpfr/mpfr-2.4.1-1/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma・mpchttp://sourceforge.net/downloads/mingw/MinGW/mpc/mpc-0.8.1-1/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma上記のもの以外に、最新版のGCCは以下の所からもダウンロードできます。どれかお好みでインストールしてください。stuffhttp://komisar.gin.by/mingw/その他、以下の3つのパッケージも最新のものにしておきましょう。MinGWをインストールした時点で最新版になっていれば、更新は不要です。下に解凍すればOKです。rev.23823以降のコンパイルの時、strcasecmp関数とtempnam関数がエラーになってしまいます。こちらの記事を参考にパッチを適用してください。追記2011/03/25の更新で、strcasecmp関数とtempnam関数のパッチは不要になりました。DTKをインストールします。Toolshttp://sourceforge.net/downloads/mingw/MSYS/Supplementary%20Tools/msysDTK-1.0.1/より、msysDTK-1.0.1.exeを、ダウンロードして実行します。perl、automake、autoconfなどがインストールされます。個別のライブラリについて以下のライブラリは、あらかじめインストールしておいてください。この記事を書いた時点より新しくなっているものもありますので、それぞれの記事で確認してください。FFmpegのコンパイルFFmpegは、以下の場所にあります。http://ffmpeg.org/svnがインストールされていれば、以下のようにして、ソースファイルを拾ってこれます。ffmpegsvnがインストールされていない場合でも、とりあえず、snapshotのソースファイルを拾ってくればコンパイルできます。checkoutの、ffmpeg-checkout-snapshot.tar.bz2を、適当なディレクトリに保存します。ffmpeg-checkout-2010-12-25ソースファイルを展開して作成されるディレクトリは、snapshotの日付になっていますので、その時点のディレクトリ名に読み替えて下さい。追記ソースコードはGitで管理されるようになり、SVNはrev.26402で更新が止まっています。今後は、Gitをインストールして、以下のコマンドでソースコードを入手してください。FFmpeghttp://www.ffmpeg.org/download.htmlここの、Snapshotのリンクからソースコードをダウンロードできます。いう形式になっていますので、そのファイル名に読み替えてください。ffmpeg-HEAD-1c0a472次に、libvpx関連、その他諸々の一括パッチを適用します。パッチファイルffmpeg-w32threads-20101225.diffをダウンロードして、以下のコマンドを実行します。追記パッチファイルを更新しました。ffmpeg-w32threads-20110401.diffパッチを適用したら、configureを実行します。rev.23653から、libfaadが削除されています。v2デコーダーが本体に実装されたので、libfaadは不要になったらしいです。--disable-decoder=aacは削除してください。-fno-strict-aliasing"最適化オプションは、PCの環境により以下のようにしています。※あくまでも一例ですので、もっと凝ってみたい方は、gccのマニュアルなどを見て研究されると良いかもしれません。-fno-strict-aliasing"※最適化無し版については、個別のライブラリのコンパイルにも-march=i686を、CFLAGSに追加して他と分けています。-fno-strict-aliasing"問題なければ、以下のようなメッセージが出ます。pathはコンパイル環境により異なります。思ったよりも時間がかかりますので、気長に待ちましょう。場合は、再配布を考えなくても良いので、libfaac入りのFFmpegをビルドすることもできます。追加で、libfaacをコンパイル&インストールします。コンパイル&インストールconfigureオプションの適当な所に、--enable-nonfree--enable-libfaacを追加します。yesと表示されていれば、makeして完了です。libfaacが使えるようになります。当サイトで配布しているFFmpegは配布用のため、libfaacは無効にしています。追記pthreadsを使用しないコンパイル手順に書き直しました。以前の、pthreadsを使用する手順は以下の記事を参照してください。追記binutilsの最新版は、binutils-2.21です。追記ソースコードはGitで管理されるようになり、SVNはrev.26400で更新が止まっています。今後は、Gitをインストールして、以下のコマンドでソースコードを入手してください。online.というリンクより、以下のページへ行きます。http://git.ffmpeg.org/?p=ffmpeg.gitここの、shortlogのいずれかの右端にあるsnapshotから、ソースコードをダウンロードできます。いう形式になっていますので、そのファイルのリビジョンに読み替えてください。追記gccの最新版は、gcc-4.5.2です。追記パッチファイルを更新しました。(rev.27450(a8f0814)〜)SVNはrev.26400で更新がストップしたため、今回よりGitのリビジョン(ハッシュ値)を表記しています。SVNのrev.26400は、Gitのrev.27249(ffe9fd2)に相当します。追記パッチファイルを更新しました。(rev.27450(a8f0814)〜)不要になった修正箇所を削除しました。追記パッチファイルを更新しました。Project公式サイトのFFmpeg用パッチhttp://code.google.com/p/webm/downloads/listffmpeg-0.6.1_libvpx-v0.9.5-135-gc28b10a.diff.gzを、マージしました。追記パッチファイルを更新しました。?)というエラーになる場合があるのを修正しました。追記w32apiを、w32api-3.15からw32api-3.17に更新しました。追記パッチファイルを更新しました。追記ソースコードはGitで管理されるようになり、SVNはrev.26402で更新が止まっています。今後は、Gitをインストールして、以下のコマンドでソースコードを入手してください。FFmpeghttp://www.ffmpeg.org/download.htmlここの、Snapshotのリンクからソースコードをダウンロードできます。いう形式になっていますので、そのファイル名に読み替えてください。追記w32apiを、w32api-3.17-1からw32api-3.17-2に更新しました。追記2011/03/25の更新で、strcasecmp関数とtempnam関数のパッチは不要になりました。追記パッチファイルを更新しました。FFmpegビルドこの記事へのコメントhttp://abechin.sakura.ne.jp/sblo_files/k-tai-douga/ffmpeg/ffmpeg-w32threads-20101225.diffパッチファイルがNotFoundになっているようです。23:54hermitさん、こんにちは。