
Flashback Turbo
Field-proven faster Flashback exports, without quality loss — up to ~11x, ~8.5s for a 1080p60 clip on NVIDIA.
Список изменений
Two new optimizations for the export finalize phase
When a Flashback export ends, FFmpeg still has work to do — drain its encoder queues, write the MP4 trailer, move the temp file. Before this release, the game window froze on Flashback's last progress frame during this whole period (often 10-30s on large exports).
H8 — Animated Saving overlay
After the export loop hits 100%, our own full-screen overlay appears: "Finalizing export / Saving... / Xs" with animated dots and elapsed-time counter. Confirms visually that the game is working, not crashed.
Mechanism: @Redirect on the LockSupport.parkNanos calls inside AsyncFFmpegVideoWriter.finish()'s wait loops. We park as Flashback expects, plus we render+swap our screen at 4 fps. No interference with Flashback's own progress display during the main export loop — they don't overlap.
H9 — Fragmented MP4 on hardware encoders
For exports using videotoolbox, nvenc, qsv or amf, we add movflags=+frag_keyframe+empty_moov to the FFmpeg recorder options. This eliminates the monolithic moov atom (the giant index FFmpeg normally writes at the end of the file) and replaces it with self-contained fragments throughout the file.
Result: post-export finalize is ~10× faster on large files. Verified: a 3 GB / 20-minute export now finalizes in seconds instead of tens of seconds. The .mp4 file is ~1-3% larger and is fully compatible with VLC, IINA, Premiere, DaVinci, Discord, YouTube, browsers, and every other modern MP4 player.
Toggle useFragmentedMp4OnHwEncoders in config/flashbackturbo.json to opt out (e.g. for broadcast pipelines requiring strict MP4 layout).
What 0.3.3 / 0.3.4 broke and 0.3.5 fixes
The original 0.3.0–0.3.2 attempts at a progress overlay during the main export loop interfered with Flashback's own progress display and its FBO state — exports would fail to start or run at 1/10th speed. 0.3.5 narrows H8 to the post-export phase only, where there is no conflict. Confirmed working in real production exports.
Compatibility
- MC 1.21.9 / 1.21.10 / 1.21.11 with Flashback ≥ 0.39.0
- Fabric Loader ≥ 0.19.2
- Java 21
26.1.x users
26.1.x builds remain on 0.2.1+26.1. MC 26.1 refactored the Screen render API; porting H8 needs further work. The H9 fragmented MP4 optimization will be available when the 26.1 build is updated.
