Skip to content

Предотвращение повреждения MP4 при сбоях питания ​

Критическая уязвимость классических систем видеонаблюдения — повреждение незавершённых файлов MP4. При внезапном отключении питания, сбое ядра или аварийном перезапуске контейнера часы записанного видео могут оказаться безвозвратно испорченными.


1. Причина повреждения стандартных файлов MP4 ​

В классическом формате контейнера ISO Base Media File Format (MP4):

  • Видео- и аудиоданные записываются в бокс mdat.
  • Индекс, таймкоды и смещения кадров записываются в бокс moov (movie atom).

В обычных регистраторах:

  1. Видеопоток непрерывно пишется в mdat.
  2. Бокс moov рассчитывается в оперативной памяти и записывается в файл только при штатной остановке записи.
  3. Аварийный сценарий: При сбое питания бокс moov не успевает записаться на диск. Плееры (VLC, Chrome) выдают ошибку файл повреждён.

2. Решение: Архитектура Fragmented MP4 (fMP4) ​

RUSEON Core выполняет запись исключительно в формате Fragmented MP4 (fMP4):

text
[ ftyp ] [ moov (Инициализация) ]
[ moof #1 ] [ mdat #1 ] -> 2-секундный фрагмент
[ moof #2 ] [ mdat #2 ] -> 2-секундный фрагмент
[ moof #3 ] [ mdat #3 ] -> 2-секундный фрагмент (Отключение питания!)

Преимущества fMP4: ​

  1. Самоописываемые фрагменты: Файл разбит на независимые блоки. Каждый блок содержит заголовок moof, описывающий только свои видеоданные mdat.
  2. Мгновенная читаемость: При внезапном отключении питания все завершённые фрагменты уже полностью проиндексированы на накопителе.
  3. Нулевые потери данных: Файл открывается в любом плеере вплоть до последней секунды перед аварией без сторонних утилит восстановления.

3. Таймшифт без дублирования файлов на диске ​

В RUSEON Core файлы fMP4 используются напрямую для мгновенного таймшифта в веб-интерфейсе:

  • При перемотке видео по таймлайну RUSEON читает атомы fMP4 и на лету генерирует сегменты HLS в оперативной памяти.
  • Это устраняет необходимость хранения дублирующих файлов HLS на диске, экономя до 50% дискового бюджета.

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

Released under the MIT License.