Skip to content

FFmpeg Build

Riqqqque edited this page Oct 3, 2026 · 1 revision

FFmpeg Build

Flashback 0.8.0 ships its own build of FFmpeg 8.1.2, compiled from unmodified FFmpeg source with only the external libraries and platform features Flashback uses. This page covers what's in it, what was left out and why, how Flashback runs it, and where to get the source.

What FFmpeg does in Flashback

FFmpeg never touches the live replay buffer; that's the capture worker and the Media Foundation encoder. FFmpeg handles everything that happens to a file afterwards:

Job Tool Re-encodes?
Saving a replay from buffer segments ffmpeg, stream copy No
Exact trims from the editor ffmpeg Yes, hardware H.264 preferred
Discord-sized copies ffmpeg Yes; hardware H.264, HEVC or AV1, with a software H.264 fallback
Browser-ready Cloud copies, only when needed ffmpeg Only if the clip isn't already browser-ready
Montages ffmpeg Yes
Editor storyboard and in-memory previews ffmpeg Frames returned through memory
Durations, stream checks, Capture health ffprobe No
Input overlay at export ffmpeg with the ass filter Only in the export that includes it

Version and license

FFmpeg 8.1.2, from the release/8.1 branch (n8.1.2-34-g9b6c8969e0)
Flashback build n8.1.2-34-g9b6c8969e0-flashback.1
Source Unmodified FFmpeg
License LGPL 2.1 or later, shared libraries
Not enabled --enable-gpl, --enable-nonfree, --enable-version3

The build uses shared libraries and no GPL-only or non-free components, so FFmpeg's LGPL terms apply to it as a whole.

What's in it

Area Enabled
Windows media Media Foundation, D3D11VA, D3D12VA, DXVA2
NVIDIA NVENC, NVDEC, CUVID, CUDA
AMD AMF
Intel Intel VPL (Quick Sync)
Software codecs dav1d (AV1 decoding), OpenH264 (software H.264 fallback encoder)
Text rendering libass with FreeType, HarfBuzz, FriBidi and Fontconfig, for the input overlay
Compression zlib, liblzma, iconv

What was left out

Disabled Why
Networking (--disable-network) Flashback's FFmpeg only reads and writes local files and pipes. It has no reason to open a connection, so it can't.
ffplay and documentation Not used
Vulkan, VAAPI, VDPAU, libdrm Linux or unused GPU paths
SDL2, X11 (xcb, xlib) Display and window libraries Flashback doesn't use
schannel Windows TLS for network protocols; not used
bzip2 Not needed
Debug symbols, static libraries Smaller, shared release build

Every library that FFmpeg's configure script would otherwise detect on its own is explicitly enabled or disabled. A change in the build environment can't quietly add or drop a feature: a library that's enabled but missing stops the build.

"Trimmed" here means trimmed to the external libraries and platform features Flashback uses. FFmpeg's built-in decoders for common formats are kept, so the editor can still open video made by other tools (WebM, MKV, MOV and similar).

Reproducible and checked

  • The build runs in a pinned build image (identified by its content digest) from a pinned commit of the FFmpeg-Builds scripts, with a fixed GCC, binutils and mingw-w64 toolchain.
  • Every FFmpeg component Flashback relies on (encoders, decoders, filters, muxers, demuxers, bitstream filters, protocols and hardware contexts) is listed, and automated tests check the bundled build against that list.
  • Smoke runs confirm, among other things, that the overlay's text rendering actually draws text.
  • Re-encoders the bundled FFmpeg doesn't list are skipped rather than tried.

How Flashback runs it

  • Separate processes. ffmpeg.exe and ffprobe.exe run as their own processes. A problem with a media file stays in that process instead of taking down the app.
  • Below-normal priority. Exports, trims and Discord copies run at below-normal CPU priority so your game wins.
  • Deadlines and cancellation. Every export, trim, probe and preview can be cancelled and has a safety deadline. Partial output files are removed.
  • Atomic output. Trims and montages write to a temporary file and move it into place only when complete.
  • Nothing beside your clips. Storyboards and previews come back through memory. No preview images are written into your clip folders.

Statically linked libraries

These are built into the FFmpeg libraries Flashback ships. Their license texts are included in the install.

Library Version License
dav1d 1.5.4 BSD-2-Clause
OpenH264 2.6.0 BSD-2-Clause
libass 0.17.5 ISC
FreeType 2.14.3 FreeType License
HarfBuzz 14.5.0 MIT ("Old MIT")
FriBidi 1.0.17 LGPL 2.1 or later
Fontconfig 2.18.3 MIT-style
libxml2 2.16.0 MIT
libunibreak 8.0 zlib
GNU libiconv 1.19 LGPL 2.1 or later
Intel VPL dispatcher 2.17 MIT
AMD AMF headers 1.5.2.0 MIT
NVIDIA codec headers 13.0.19.2 MIT
zlib 1.3.2.1 zlib
liblzma (XZ Utils) 5.8.4 0BSD
mingw-w64 winpthreads 15.0.0 MIT
GCC runtime (libgcc, libstdc++) 16.2.0 GPL 3 with the GCC Runtime Library Exception 3.1

The NVIDIA, AMD and Intel encoder runtimes load from your installed graphics driver. They aren't distributed with Flashback.

Where to find the files and the source

  • In your install, FFmpeg's license and its build record are under tools\ffmpeg, and the static library licenses are under licenses\ffmpeg.
  • The complete corresponding source is published in this repository's Releases under the tag ffmpeg-n8.1.2-flashback.1, alongside the 0.8.0 release. It contains the FFmpeg source at the exact commit, the source of the two LGPL libraries linked statically (FriBidi and libiconv) at the commits the build used, the FFmpeg-Builds scripts that built the toolchain and every static library, Flashback's build recipe, and the build record.

Related pages: Hardware encoding · Editor and montage · Third-party software

Clone this wiki locally