Repository navigation
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.
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 |
| 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.
| 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 |
| 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).
- 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.
-
Separate processes.
ffmpeg.exeandffprobe.exerun 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.
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.
- In your install, FFmpeg's license and its build record are under
tools\ffmpeg, and the static library licenses are underlicenses\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
Flashback for Windows 11 · flashbk.gg · Discord · Support · Docs describe Flashback 0.8.0. Live version, checksum and policies are on flashbk.gg.
Start here
- System requirements
- Getting started
- Installing and updating
- Verifying downloads
- Shortcuts
- Settings reference
Features
- Instant replay
- Recording quality and presets
- Screenshots
- Audio
- Voice commands
- Editor and montage
- Overlays (input overlay)
- Library
- Storage limit
- Naming and organization
- Per-game profiles
- Ghost Mode
- Discord integration
Cloud and social
- Flashback Cloud
- Plans and billing
- Sharing and visibility
- Automatic and voice uploads
- Profiles and friends
- Web and phone
- Account and data
Privacy and security
Under the hood
- Why Flashback is light
- Architecture overview
- Capture pipeline
- Hardware encoding
- Isolated capture worker
- Replay buffer and segments
- Resource guards and recovery
- Audio and video sync
- FFmpeg build
- Built on .NET 10
- Update security chain
- Performance and benchmarks
- Release qualification
Help
Community and support
Links