Skip to content

Воспроизведение архива и трансмуксинг по запросу ​

RUSEON Core предоставляет высокопроизводительную подсистему воспроизведения архива (internal/archive/), позволяющую операторам мгновенно перематывать и просматривать записи без перекодирования.


1. HLS-трансмуксинг архива по запросу ​

  1. Клиент запрашивает список доступных интервалов:
    bash
    GET /api/cameras/cam-01/archive
  2. Плеер запрашивает динамический HLS-манифест:
    bash
    GET /hls/cam-01/archive.m3u8?file=2026-08-23_14-00-00_to_15-00-00.mp4
  3. Сервер на лету генерирует M3U8 манифест со ссылками на сегменты (/hls/cam-01/segment.ts?file=...&seq=0).
  4. При запросе сегмента 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

Связанная документация ​

Released under the MIT License.