Воспроизведение архива и трансмуксинг по запросу
RUSEON Core предоставляет высокопроизводительную подсистему воспроизведения архива (internal/archive/), позволяющую операторам мгновенно перематывать и просматривать записи без перекодирования.
1. HLS-трансмуксинг архива по запросу
- Клиент запрашивает список доступных интервалов:bash
GET /api/cameras/cam-01/archive - Плеер запрашивает динамический HLS-манифест:bash
GET /hls/cam-01/archive.m3u8?file=2026-08-23_14-00-00_to_15-00-00.mp4 - Сервер на лету генерирует M3U8 манифест со ссылками на сегменты (
/hls/cam-01/segment.ts?file=...&seq=0). - При запросе сегмента RUSEON считывает фрагмент fMP4 с диска и трансмуксит его в MPEG-TS прямо в оперативной памяти.
2. Индексация структуры в памяти (IndexLRUCache)
Для исключения повторного парсинга больших файлов RUSEON Core использует IndexLRUCache (емкость: 2 000 файлов) в internal/archive/hls.go:
- Считывает смещения боксов
moof+mdatпри первом обращении. - Кеширует структуру в памяти.
- Обеспечивает мгновенный seek по всему архиву.
3. Экспорт видео в MP4
Скачивание отрезка видео в виде стандартного файла MP4:
bash
curl -H "Authorization: Bearer <TOKEN>" \
"http://localhost:8080/api/cameras/cam-01/export?file=2026-08-23_14-00-00_to_15-00-00.mp4&start_seq=0&end_seq=10" \
-o incident_export.mp4