Subtitle extraction is I/O-bound: subtitle packets are interleaved across the whole container, so ffmpeg must read the entire file to demux a complete track (measured ~57 MB/s reading a 60GB remux over ~75 MB/s NFS → ~14 min for the full read). Doing that once per track meant N full reads of a huge file. ExtractSubtitlesVTTMulti demuxes the container ONCE and routes every text track to its own WebVTT output, so an N-text-track file costs one read instead of N. The prewarm now enqueues one job per file (all its text indices) and raises the per-file deadline to 45 min so even ~200GB remuxes finish the single read in the background (idempotent; the on-demand /sub keeps its 60s fallback). Thumbnails are unaffected — a keyframe seek reads a tiny slice (~0.7s even on 60GB). |
||
|---|---|---|
| .. | ||
| ffmpeg.go | ||
| ffmpeg_download.go | ||
| ffmpeg_test.go | ||
| ffprobe.go | ||
| ffprobe_download.go | ||
| ffprobe_download_test.go | ||
| ffprobe_test.go | ||
| lang.go | ||
| lang_test.go | ||
| sidecar.go | ||
| types.go | ||