feat(pipeline): all-intra ffmpeg builders for seekable morph re-bake

Per plan Task 7. Extracts transition_cmd/reverse_cmd argv builders and adds the
ALL_INTRA flag set (-g 1 -keyint_min 1 -sc_threshold 0) so every baked frame is a
keyframe — smooth arbitrary-frame seeking for the scrub interaction. Unit-tested.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BenStullsBets
2026-06-27 15:50:31 -07:00
parent 31a3fd733f
commit f2f242a411
2 changed files with 38 additions and 10 deletions
+14
View File
@@ -54,3 +54,17 @@ def test_generate_media_bakes_every_member_pair(monkeypatch, tmp_path):
for h in b.POOLS[H] for l in b.POOLS[L]}
assert fwd <= outs and rev <= outs
assert len(fwd) + len(rev) == 154
def test_transition_cmd_is_all_intra():
cmd = b.transition_cmd("ffmpeg", "/a/base.mp4", "/b/base.mp4", "/out/x__y.mp4")
assert "-g" in cmd and cmd[cmd.index("-g") + 1] == "1"
assert "-keyint_min" in cmd and cmd[cmd.index("-keyint_min") + 1] == "1"
assert "-sc_threshold" in cmd and cmd[cmd.index("-sc_threshold") + 1] == "0"
assert "libx264" in cmd
def test_reverse_cmd_is_all_intra():
cmd = b.reverse_cmd("ffmpeg", "/out/x__y.mp4", "/out/x__y.rev.mp4")
assert "-g" in cmd and cmd[cmd.index("-g") + 1] == "1"
assert "reverse" in " ".join(cmd)