Files
ArtPlayer/test/browser/media/hls
..

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.