Deterministic HLS fixtures
Generated by node scripts/generate-hls-fixture.mjs, using FFmpeg recorded in manifest.json.
No downloaded film or audio: testsrc2 supplies moving patterns, sine supplies 440/880 Hz audio.
The 12-second master offers 160x90 and 320x180 AVC video, English/French AAC audio, and a
separate video-only master for topology changes. Each media playlist is VOD with 2-second segments.
Segments use .mpegts so source tools cannot mistake MPEG transport streams for TypeScript.
The HLS browser fixture serves them as video/mp2t. File contents and byte counts are checked
against manifest.json before browser use. Tests need neither FFmpeg nor a remote media service.
To change the media, generate into a new directory, for example
node scripts/generate-hls-fixture.mjs refactor/.cache/hls-media-next; inspect the output and
update the media, manifest and browser evidence together. The script refuses existing directories.
Set ARTPLAYER_FFMPEG to a particular FFmpeg executable if it is not on PATH. Re-encoding with
another FFmpeg version is not expected to preserve bytes; do not overwrite hashes to silence drift.