# 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.