Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit a80c0a0ac3009b28dcd72405a47dc42bfdca06af
parent 965aff572f818f22c7dbb155b1d74fce8ed70f04
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Wed, 30 Sep 2026 22:33:16 -0400

report-to-video: the hard-cut concat list names segments by absolute path

The concat demuxer resolves a relative entry against the list's own
directory, so a build run with a relative --out failed to open its first
segment on every transition-0 concat. Absolute paths are unchanged, so every
build that already worked is byte-identical.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mumtool/report-to-video/build-video.mjs | 6+++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/umtool/report-to-video/build-video.mjs b/umtool/report-to-video/build-video.mjs @@ -2441,7 +2441,11 @@ async function muxChapters(finalPath, entries, segments, D, outDir, provenance, async function concatHardCut(segments, outDir, outPath) { const listPath = path.join(outDir, "concat.txt"); - await writeFile(listPath, segments.map((s) => `file '${s}'`).join("\n") + "\n", "utf8"); + // Absolute: the concat demuxer resolves a relative entry against the LIST's + // directory, so a relative `--out` named every segment twice over and the + // hard-cut concat failed to open its first input. An absolute path is + // unchanged by this, and so is every build that already worked. + await writeFile(listPath, segments.map((s) => `file '${path.resolve(s)}'`).join("\n") + "\n", "utf8"); await execFileP( FFMPEG, ["-nostdin", "-v", "error", "-y", "-f", "concat", "-safe", "0",