FFmpeg-Builds README

The project's README from github.com/BtbN/FFmpeg-Builds. As one markdown file: README.md.

FFmpeg Static Auto-Builds

Static Windows (x86_64) and Linux (x86_64) Builds of ffmpeg master and latest release branch.

Windows builds are targetting Windows 7 and newer, provided UCRT is installed. The minimum supported version is Windows 10 22H2, no guarantees on anything older.

Linux builds are targetting RHEL/CentOS 8 (glibc-2.28 + linux-4.18) and anything more recent.

Auto-Builds

Builds run daily at 12:00 UTC (or GitHubs idea of that time) and are automatically released on success.

Auto-Builds run ONLY for win(arm)64 and linux(arm)64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.

Release Retention Policy

Package List

For a list of included dependencies check the scripts.d directory. Every file corresponds to its respective package.

How to make a build

Prerequisites

Build Image

Build FFmpeg

On success, the resulting zip file will be in the artifacts subdir.

Targets, Variants and Addins

Available targets:

The linuxarm64 target will not build some dependencies due to lack of arm64 (aarch64) architecture support or cross-compiling restrictions.

Available variants:

All of those can be optionally combined with any combination of addins:

FFmpeg-Builds (BtbN/FFmpeg-Builds)

Searching Database…

这是什么?这个项目为 Windows 和 Linux 提供 FFmpeg 的自动静态构建(包括 master 分支和最新发布分支),同时支持 x86-64 和 ARM64 两种架构,让你无需自己编译 FFmpeg。
这里只是提供现成的程序包吗?我能自己构建定制版本吗?两者都可以:你可以直接下载自动生成的 release 压缩包,也可以运行项目附带的基于 Docker 的脚本,选择构建变体并添加附加组件,生成你自己的定制版本。
我该如何从这个项目获取 FFmpeg 构建版本?为你的目标平台从 Releases 页面下载预构建的压缩包;或者自己构建:先运行 './makeimage.sh target variant' 创建 Docker 镜像,再运行 './build.sh target variant' 进行编译,生成的压缩包会保存在 artifacts 子目录中。
所有目标/变体组合都会为我自动构建吗?不会。每日自动构建只涵盖 win64、winarm64、linux64 和 linuxarm64;win32/x86 构建需要通过脚本手动生成。另外,arm64 的 Linux 目标由于缺少 arm64 支持,会跳过 davs2、xavs2、libmfx 和 libva 等部分依赖。
它支持哪些平台和架构?Windows(x86-64 和 ARM64,面向 Windows 7+ 和 Windows 10 22H2,使用 UCRT)以及 Linux(x86-64 和 ARM64,面向 RHEL/CentOS 8 及 glibc 2.28+)。
gpl、lgpl 和 nonfree 构建变体有什么区别?gpl 包含所有依赖项,包括仅限 GPL 的依赖;lgpl 会去掉需要完整 GPL 授权的库,例如 libx264 和 libx265;nonfree 则在 gpl 的基础上额外加入 fdk-aac。每个变体还都有一个 '-shared' 对应版本,它链接共享的 libav 库,而不是生成纯静态的可执行文件。
构建产物保留多久,'latest' 构建又是什么?每月的最后一次构建会保留两年,最近 14 次每日构建也会被保留;特殊的 'latest' 发布版本提供一个稳定的 URL,始终指向最新的构建。
我能构建旧版本的 FFmpeg 而不是 master 吗?可以。你可以在构建命令中添加发布分支附加项,例如 4.4、5.1、6.1 或 7.1,这样就会从该分支而不是 master 进行编译。
我应该使用 'debug' 还是 'lto' 附加项?'debug' 会保留调试符号(会使输出体积增加约 250MB);'lto' 会以链接时优化(LTO)构建所有内容。但 LTO 被标记为高度实验性功能,在 Windows 上无法正常工作,在 Linux 上也只是偶尔可用。
Creator
BtbN
Size
1.7 MB
Stars
11.8K
Age
6y
Commits · 90 Days