9f63302e

By: Michael Lynch <git@mtlynch.io>

Transcode uploaded videos from disk without re-spilling

An uploaded video is already streamed to a temp file before processing, but
writeFullSizeVideo passed it through the stream-based Converter, which spills
the reader to another temp file before ffmpeg runs. For a multi-gigabyte upload
that doubled the source on disk (plus a redundant copy of the WebM output).

Add convert.VideoFileToWebM, a path-to-path transcode, and have the video
upload path transcode directly to a temp WebM file and write that, skipping
mediastore.WriteConverted. The importer keeps the reader-based VideoToWebM
because its sources come from an fs.FS rather than a local path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 1s 7s 7s 9s
Eval 7s 2m49s 2m49s 2m57s
Build 35s 8m56s - -
Suite 1s 11m53s - -

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s3m3m20s3m40s