2023年12月10日

FFmpeg rev.112934 ダウンロード

FFmpeg最新版(2023/12/10現在)、rev.112934(b021bc4a47)のWindows用バイナリを置いておきます。

generic版とgeneric_orig版はWindows 7 64bit版以降で動作します。
legacy版とlegacy_orig版はWindows XP 32bit版および64bit版以降で動作します。


【64bit版】携帯動画変換君用パッチ適用版(time表示が秒単位、-flags2などの旧オプションも使用可、など)
ffmpeg_bin_generic-x64-112934.zip

【64bit版】オリジナル版
ffmpeg_bin_generic_orig-x64-112934.zip

【64bit版】
ffplay_bin-x64-112934.zip
ffprobe_bin-x64-112934.zip

【32bit版】携帯動画変換君用パッチ適用版(time表示が秒単位、-flags2などの旧オプションも使用可、など)
ffmpeg_bin_legacy-112934.zip

【32bit版】オリジナル版
ffmpeg_bin_legacy_orig-112934.zip

【32bit版】
ffplay_bin-112934.zip
ffprobe_bin-112934.zip

今回から、以下のライブラリを追加しました。
libxeve eXtra-fast Essential Video Encoder (XEVE)
libxevd eXtra-fast Essential Video Decoder (XEVD)

libxeveのエンコードオプションの例です。
ffmpeg -y -i input.mp4 -c:v libxeve -preset fast -profile 1 -crf 20 -s 1280x720 -aspect 16:9 -r 29.97 -c:a aac -ac 2 -ar 48000 -b:a 256k -f mp4 -threads 0 output.mp4

libxeveの詳細は以下のリンク先を参照してください。
FFmpeg Codecs Documentation - 9.18 libxeve


以下のライブラリをアップデートしました。
【64bit版のみ】
nv-codec-headers-n11.1.5.3
SVT-AV1 v1.7.0-31-ge6d81d1e
libvpl-2023.4.0
librist-v0.2.10

【32bit版のみ】
nv-codec-headers-n8.1.24.15

【64bit版、32bit版共通】
Little-CMS-lcms2.16
libzmq-4.3.5
libaom 3.8.0-96-g2780992a7c
dav1d 1.3.0-17-g0a8d664
abseil-cpp-20230802.1
Kvazaar v2.2.0-12-g91f04b4b 2023-10-18
OpenH264 v2.4.0.2310-20231204-git-fd66e67
libopenmpt-0.7.3
vmaf-3.0.0
srt-1.5.3
libvpx v1.13.1-595-g7e735cdf4
libwebp-1.3.2
x264 0.164.3172 c1c9931 (make fprofiled)
x265 3.5+110-8ee01d45b 8bit+10bit+12bit
harfbuzz-8.3.0
SDL-release-2.28.5
xz-5.4.5
libxml2-2.12.2
libmysofa-1.3.2
xevd-0.4.1-4e76654c (新規追加)
xeve-0.4.3-3890dae6 (新規追加)


zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。

携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。

FFmpegのビルドは、以下の記事を参考にしてください。
FFmpegのビルド (2014/02/17)

ビルド環境:MSYS2
gcc-13.2.0
binutils-2.41
mingw-w64-v11.0.1
cmake-3.28.0
rust-1.74.0
meson-1.1.1
ninja-1.11.1


各ライブラリのバージョンは、以下の通りです。
【64bit版のみ】
nv-codec-headers-n11.1.5.3
rav1e v0.6.6
SVT-AV1 v1.7.0-31-ge6d81d1e
libvpl-2023.4.0
librist-v0.2.10

【32bit版のみ】
nv-codec-headers-n8.1.24.15
mfx_dispatch-1.35.1
librist-v0.2.7

【64bit版、32bit版共通】
AviSynthPlus-3.7.3
chromaprint-v1.5.0
dlfcn-win32-1.4.1
ladspa_sdk_1.17
Little-CMS-lcms2.16
libssh-0.10.5
libzmq-4.3.5
rabbitmq-c-0.13.0
zvbi-0.2.35
nasm-2.16.01
zlib-1.3
bzip2-1.0.8
libaom 3.8.0-96-g2780992a7c
libpng-1.6.40
aribb24-1.0.3
dav1d 1.3.0-17-g0a8d664
libudfread-1.1.2
libbluray-1.3.4
libbs2b-3.1.0
libcaca-0.99.beta20 release
libcdio-2.1.0
libcdio-paranoia-10.2+2.0.1
game-music-emu-0.6.3
gsm-1.0-pl22
libilbc-3.0.4
abseil-cpp-20230802.1
Kvazaar v2.2.0-12-g91f04b4b 2023-10-18
libmodplug-0.8.9.0
lame-3.100
OpenH264 v2.4.0.2310-20231204-git-fd66e67
libopenmpt-0.7.3
openjpeg-2.5.0
opus-1.4
opencore-amr-0.1.6
vmaf-3.0.0
vid.stab-v1.20-20220603-git-05829db
vo-amrwbenc-0.1.3
libsamplerate-0.2.2
rubberband-3.3.0
mbedtls-3.4.1
obs-studio-29.1.3 (librtmpのみ使用)
rtmpdump-2.4-20210219-git-f1b83c1 Mbed TLS版 (削除)
srt-1.5.3
snappy-1.1.10
libogg-1.3.5
aoTuV Beta6.03 (2020)
libtheora-1.1.1
speex-1.2.1
twolame-0.4.0
libsoxr-0.1.3
libvpx v1.13.1-595-g7e735cdf4
libwebp-1.3.2
x264 0.164.3172 c1c9931 (make fprofiled)
x265 3.5+110-8ee01d45b 8bit+10bit+12bit
xvidcore-1.3.7
libiconv-1.17
freetype-2.13.2
expat-2.5.0
fontconfig-2.14.2
fribidi-1.0.13
harfbuzz-8.3.0
libass-0.17.1
SDL-release-2.28.5
xz-5.4.5
libxml2-2.12.2
zimg-3.0.5
mfx_dispatch-1.35.1
libmysofa-1.3.2
brotli-1.1.0
highway-1.0.7
libjxl-0.8.2
xevd-0.4.1-4e76654c
xeve-0.4.3-3890dae6


configureオプションは、以下のようにしています。

「--enable-librav1e」「--enable-libsvtav1」「--enable-libvpl」「--cpu=x86-64」は64bit版のみ。
「--enable-libmfx」「--disable-mediafoundation」「--extra-cflags="-mfpmath=sse -msse"」「--cpu=i686」は32bit版のみ。
その他のオプションは共通です。

【64bit版】
$ ./configure --enable-gpl --enable-version3 --enable-avisynth --enable-chromaprint --enable-fontconfig --enable-ladspa --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libdav1d --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libjxl --enable-libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librabbitmq --enable-librav1e --enable-librist --enable-librubberband --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvmaf --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxeve --enable-libxevd --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-mbedtls --enable-opengl --enable-libvpl --enable-pthreads --disable-w32threads --disable-debug --pkg-config-flags=--static --extra-ldflags=-static --cpu=x86-64 --optflags="-O2 -finline-functions"

【32bit版】
$ ./configure --enable-gpl --enable-version3 --enable-avisynth --enable-chromaprint --enable-fontconfig --enable-ladspa --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libdav1d --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libjxl --enable-libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librabbitmq --enable-librist --enable-librubberband --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvmaf --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxeve --enable-libxevd --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-mbedtls --disable-mediafoundation --enable-opengl --enable-libmfx --enable-pthreads --disable-w32threads --disable-debug --pkg-config-flags=--static --extra-ldflags=-static --extra-cflags="-mfpmath=sse -msse" --cpu=i686 --optflags="-O2 -finline-functions"

posted by あべちん at 11:32 | Comment(8) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
zipをダウンロードさせていただこうと思ったのですが、ダウンロードできないようです。
ご確認いただけると幸いです。
Posted by K at 2023年12月13日 00:21
Kさん、こんにちは。管理人です。
コメントありがとうございます。

おそらく、ブラウザの設定で、httpをhttpsに自動変換してしまうのが原因だと思います。

ファイル置き場の設定を変更しましたので、たぶんダウンロードできると思います。
もしダメでしたら、ブラウザのキャッシュを消去する、または、右クリック→名前を付けてリンク先を保存、などお試しください。

世間はhttpsが標準になってきているので、ファイル置き場だけでなく当サイト全部https化したいのですが、ブログのシステムが対応していないため、httpのままになっています。
Posted by あべちん at 2023年12月14日 07:49
このバージョンは複数のストリームでは動作しなくなった。
私のシステム、XP
Posted by qubek at 2023年12月25日 20:57
ffplay 32bitの最新バージョンです:
ffplay_bin-112934.zip
ffplay_bin-111888.zip

これらのバージョンは、多くのストリームの後ろで動作しなくなりました!
例えば、多くのストリームからテレビを見ることができません:
http://185.233.16.91:80/play/fe912383/VRsGjxSyVtx8/722911.ts

ffplay 32bit の古いバージョン:
ffplay_bin-111059.zip
ffplay_bin-110022.zip

彼らは非常によく動作し、何の問題もありません!!!
私のシステムはXPです。
Posted by qubek at 2023年12月25日 21:00
ffmpeg XP 32 ビット バージョンをご利用いただき、誠にありがとうございます。
私は本当に感謝しており、非常に長い間あなたのバージョンを使用しています。

本当にフルスピードを実現するために、非常に最適化されたバージョンを構築できないかどうかを尋ねます。

少なくともこれらのフラグを使用すると、次のようになります。
-O3
-fexpensive-optimizations
-fomit-frame-pointer
-ftree-vectorize
-flto

そして、私が望むいくつかの特殊なバージョンを構築します。
-march=core2
-march=nehalem
-march=westmere
...そしておそらく、他の人のために AVX を使用する人もいるかもしれません

可能な場合は SIMD ソース ファイルを使用します。

私も手動で試してみましたが、この巨大な ffmpeg プロジェクトを最初から始めるのは大変な作業です...
それほど手間をかけずに、最適化されたバージョンを構築できるはずです。

そして最後に重要なこと:
abechin.sakura.ne.jp からのリンクが機能しません。
Posted by rrbtye at 2024年02月24日 21:20
qubekさん、こんにちは。
管理人です。

コメントありがとうございます。
お返事がおそくなり、申し訳ありません。

動画へのリンクがなくなっているため現在は確認できませんが、qubekさんからコメントをいただいた時点では、私の環境では問題なく動画を再生できました。

動作しなくなったというのは、具体的にはどのような状態か、エラーメッセージが出ていなかったかなど、もっと情報があれば、解決策が分かるかもしれません。
Posted by あべちん at 2024年02月26日 23:30
rrbtyeさん、こんにちは。
管理人です。

コメントありがとうございます。
お役に立ててうれしいです。

以前、もっとスピードアップできないか試したことがことがあります。

-fomit-frame-pointerは、すでに有効です。
ffmpegやx264では-fno-tree-vectorizeになっていて、あえてそのようにしているということは、何か意味があるのだろうと思います。
-fltoは、link時に膨大な時間がかかるわりに、スピードに関してあまり効果がなかったので採用していません。
-fexpensive-optimizationsは、まだ試したことがないので分かりません。

-O3は-O2より速くなりますが、バイナリのサイズがでかくなるわりに、劇的に速くなるというほどではありませんでした。

演算のコアの部分がアセンブリで書かれているコードもあるので、gccの最適化オプションを変えても、あまり変わらないのだとい思います。

現在は-O2 -finline-functionsを採用しています。
-O3より若干遅いですが、スピードに大きな差がなく、-O2のみの場合よりは速くなります。
バイナリサイズは-O2のみの場合より少し大きくなる程度です。

CPUに関しても、pentium4、core2、athlonなど分けていたことが過去にありましたが、自分のCPUが無いんだけど、どれを使えばいいの?などのコメントが時々あり、返信するのが面倒なので、特定のCPU向けにビルドするのはやめました。

そのため、なるべくOSやCPUに依存せず、幅広いPC環境で動作するように、無難なオプションでビルドしています。

ffmpegでエンコードが終わるまで、食事をしたりトイレに行ったり、寝ることも許されず、PCの前でずっと監視してなきゃいけないんだ!
という状況なら、1秒でも速く終わらせたいと思うかもしれません。
エンコードに何時間もかかるような場合は、エンコードが終わるまで放っておいて、他の事に時間を使えばいいのではないかと、私は思います。

あと、左クリックでzipファイルがダウンロードできない場合、右クリック->名前を付けてリンク先を保存を試してみてください。
Posted by あべちん at 2024年02月27日 00:49
gcc-13.2.0のドキュメントを見てみたら、-O2で-finline-functionsも有効になってますね。
https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/Optimize-Options.html

さかのぼって見たら、gcc-9.5.0までは-finline-functionsは-O3で有効になりますが、gcc-10.5.0から-O2で有効になってました。
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/Optimize-Options.html
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Optimize-Options.html

ということで、次回のffmpeg配布から
--optflags="-O2 -finline-functions"
は無しにして、デフォルトの-O3のままビルドするようにします。
Posted by あべちん at 2024年03月10日 21:30
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/190688039
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック