eingusteのblog

Windows向けFFmpegバイナリを個人的にビルド(コンパイル)してます。その更新情報など。

タグ:FFmpeg

昨日、少しだけですがFFmpegに必要なライブラリの再構築を行いました。
お知らせしたとおり、コンパイラ(ビルド環境)を変更しましたので、32bit版、64bit版ともに一通りビルドしなおし中です。
zlib-1.2.8	OK
bzip2-1.0.6	OK
GMP-6.1.0	OK
nettle-3.2	OK
libtasn1-4.8	OK
GnuTLS 3.4.13	OK
x264		OK
x265		OK
libiconv-1.14	OK
以上、です。

皆さま、こんばんは。お久しぶりでございます。
おかげさまで gcc-6.1.0 with mingw-w64-v4.0.6 がビルドできました。
ビルドの際、活用させていただいたのが、MSYS2Alexpux/MINGW-packagesの存在です。
MSYS2のi686、x86_64向けのパッケージを作成するためのスクリプトやパッチがたくさんあり、非常に参考になりました。ここがなかったら自力ではビルドできなかったかも知れません。大感謝です。
ここのスクリプトや設定ファイルを調整しながら、我流ではありますが、makepkgコマンドと沢山のパッチの恩恵を受けて、無事ビルドすることができました。そしてここを参考にしてbinutilsは2.26にせず、2.25.1を利用することにしました。MSYS2に合わせた感じです。
また全体のビルドの流れについては、mingw-buildsのビルド情報(build-info.txt)が、ビルド手順の想定ができて大変参考になりました。本当にありがとうございます。

なんとかGCC-6.1をビルドできたところで、FFmpegや必要なライブラリをビルドしてみたところ、いくつかの問題に遭遇しました。pthreadを無効にするため、ヘッダをリネームしたはずなのにヘッダが検出されてたり、ちょっと謎でした。ソースを修正すれば無効にできるのでそれで対応しましたが、そのまますんなりとはいかない感じでした。GCCシリーズとしては新しいものですし、変更点も多く、デフォルトオプションの変更もあるだろうし、当然といえば当然です。
チャレンジ精神を燃やしつつ、コンパイルオプションをいろいろ試しては、make checkなどで各ライブラリの動作を確認したりと、そんな感じでやっておりました。ただ自力では解決できない問題があったので、結局 gcc-6-branch を追っかけて、そちらも試していました。
そんな日々を送っていたところ、GCC 5.4がリリースされたではありませんか!!!。しかもGCC 5.3関連のバグフィックスリリースの様子です。
続きを読む

皆さん、しばし放置気味の当サイトにアクセスしてくださいまして、ありがとうございます。
先日お知らせしたとおり、ビルド環境はMSYS2に移行しています。(Mingw-buildsのgcc-5.3.0でビルドできる環境になっています。)

ただ前からBinutilsGMPMPFR、そしてMingw-w64などのバージョンを更新したいなと考えていました。
そして近頃、gcc-6.1.0がリリースされたことですので、gcc-6.1.0 with mingw-w64-v4.0.6をビルドすることにしました。(スレッドタイプはwin32にするつもりです。)

gcc-6-branchにするか、gcc-6.1.0にするかは悩みどころなのですが、いったんgcc-6.1.0を構築中です。とはいっても、ほとんどスクリプト任せなので微調整が済めば、あとは古めのPC君が、CPUをフル回転させて、頑張ってくれることでしょう。(^^;;;
PC君が壊れませんように(^^;;;
GCC Bugzilla – Bug Listをチェックしつつ、必要そうだったら gcc-6-branch のビルドに切り替えるかもしれません。

また mingw-w64 も v4.0.6 ではなく、 v4.x または master ブランチをビルドするほうが良いのかも知れません。各ブランチのコミットを見ると、Windows10への対応などもあるようですから。
ただとりあえずは、リリース版を使って環境を構築していく予定です。

なおFFmpegは、最近、あまり利用していないので、のんびりやっております。
FFmpegのビルドは少し先になるかと思いますが、Zeranoe FFmpeg という大きな存在がありますので問題ないですよね。

お知らせ、近況報告は以上です。では、またお会いしましょう。(^^)/~~

Fmpeg:git版(2016-04-16) にて下記のようにお知らせした件の続報です。
2016-04-24追記
32bit版でlibxvidを利用するとffmpeg、ffplayがSEGVすることが判明しました。
なぜかMSYSの起動の仕方で、SEGVしないでエンコードできていたため、発見が遅れました。
コマンドプロンプトや、通常のBashシェルでログインして、試したところ、判明した次第です。
このSEGVは、4月5日のあるコミットの影響なのですが、最適化を行わない(-O0)とSEGVしないこともわかりました。そこでコンパイルオプションを調整して、動作確認をすることといたしました。
これ以降については、確認環境を変更しますので、大丈夫かと思います。


ようやく時間がとれて、FFmpeg側の最適化オプションを調整しています。
64bit版でも、クラッシュはしないものの、最適化オプションによっては、エンコード中にエラーを吐いていました。
調整が終わり次第、新しいバージョンのビルドを行いたいと思います。

続きを読む

2016-04-16時点のgit版バイナリです。ffmpegとffplay、ffprobeを同梱しています。
外部ライブラリx264はgit版の0.148.2692 64f4e24、x265はversion 1.9+140-34a3d35c5f97、libvpxはv1.5.0-727-gc59c5cb、fontconfigは2.11.95、Snappyは20160311-2b9152dです。
外部ライブラリgnutlsは3.4.11です。

ダウンロードは↓
32bit版
FFmpeg version N-79465-gf079232(x86)(7z) 13.2M

64bit版
FFmpeg version N-79465-gf079232(x64)(7z) 13.4M
  libavutil      55. 22.100 / 55. 22.100
libavcodec 57. 34.101 / 57. 34.101
libavformat 57. 34.100 / 57. 34.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 42.100 / 6. 42.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
続きを読む

↑このページのトップヘ