Восстановление фрагментированных видеофайлов с фотокамер

Как возникает проблема

Говорить в этой статье я буду о носителях, используемых в фотоаппаратах.

Основные данные там — это фотографии JPEG и/или RAW и видео в формате MOV (точнее формат называется ISO base media, а расширения бывают разные: mov, mp4, 3gp, ..). Используемая файловая система — FAT32. Из-за особенностей ПО фотоаппаратов, все создаваемые видеофайлы оказываются фрагментированными.

К сожалению, часто случается так, что метаданные этой файловой системы оказываются критически повреждены. А именно, затираются или переписываются таблицы FAT, а без них не построить размещение фрагментированных файлов.

В итоге получается безрадостная ситуация: важные для клиента видеофайлы нельзя восстановить ни с помощью анализа ФС, ни с помощью чернового восстановления (режим ищет непрерывные файлы).

Однако, причина этой фрагментации связана не с естественной работой файловой системы, а с алгоритмами, используемыми в ПО фотоаппаратов. Поэтому мы можем ее преодолеть.

Особенности хранения

Если говорить очень упрощенно, то файл MOV состоит из 2 частей:

  • небольшая секция с мета-информацией о видеопотоке. Назовем ее заголовком (header или hdr), т.к. большинство фотоаппаратов размещает ее в начале файла.
  • секция со сжатым видео- и аудио-потоками, которая занимает почти весь объем файла. Назовем ее телом (body).

Для корректного воспроизведения необходимы обе части и более того, заголовки не повторяются. Однако, в заголовке хранится информация, которую можно узнать только после окончания записи. Поэтому перед ПО фотоаппарата возникает проблема: после завершения съемки надо сформировать заголовок и поставить его в начало файла.

Поэтому ПО фотоаппарата совершает следующий трюк:

  1. в файловой системе создается временный файл, куда пишется тело файла;
  2. после окончания записи формируется заголовок и записывается в новый файл;
  3. с помощью модификации метаданных к заголовку добавляется тело, при это сами данные никуда не перемещаются (это долго);
  4. информация о временном файле уничтожается.

В результате файлы оказывается фрагментированными, но очень особенным способом: фрагментов всего два и это всегда тело и заголовок.

Я бы хотел выделить 2 варианта того, как в итоге фрагменты сохраняются на накопитель:

  1. Очень часто, оказывается так, что заголовок идет сразу после тела, а точнее со следующего кластера. Это характерно для очень многих фотоаппаратов.
    Также в этом случае часто оказывается так, что тело следующего видео-файла хранится сразу после заголовка от предыдущего. Поэтому черновое восстановление может ошибочно их объединить. Но воспроизвести такой файл не получится — нужен оригинальный заголовок.
  2. Заголовок и тело разнесены друг от друга. В этом случае черновое восстановление находит фрагменты файлов корректно.

Методы восстановления

В Data Extractor реализованы 2 метода восстановления фрагментированных видеофайлов с фотоаппаратов:

  1. Первый метод «заточен» на первый случай размещения файлов, когда заголовок идет сразу после тела. Он ищет цепочки «тело+заголовок» и собирает части файлов в нужном порядке.
  2. Второй метод более универсальный. На основе некоторых характеристик он пытается к каждому телу подобрать наиболее подходящий для него заголовок, даже если они размещены далеко друг от друга.

Как пользоваться

Использование обоих методов одинаково:

  1. необходимо выполнить черновое восстановление на всем накопителе (можно выполнить и частично, но результат может быть хуже). В результатах должны найтись типы файлов: mov и mov body.
  2. запустить метод из контекстного меню для типов mov, mp4 и mov body в списке найденных файлов:
    1. Alg 1 — это первый метод (когда заголовок идет сразу после тела)
    2. Alg 2 — это второй метод (когда тело и заголовок размещены произвольно)
  3. после завершения работы в логе будет информация о количестве успешно обработанных файлов. А в проводнике Data Extractor появится виртуальная файловая система, в которой заголовки и тела файлов объеденные в соответствии с логикой работы алгоритма.
  4. восстановленные файлы можно сохранить из этой виртуальной ФС.

Ограничения и особенности

Описанный сценарий фрагментации файлов встречается на накопителях из фотоаппаратов и связан с логикой работы встроенного ПО. Поэтому не следует ждать хорошей работы в других условиях.

Также нет гарантии, что все полученные файлы будут воспроизводиться, т.к. помимо фрагментации могут быть и другие проблемы. Например, если есть заголовок, но нет тела, то второй алгоритм выберет из существующих наиболее подходящее по критериям тело. Но такая сборка обычно не открывается.

После работы 2го алгоритма у файлов могут быть длинные и короткие имена. Вот в чем разница:

  • короткое имя используется для 1го типа фрагментации (тело+заголовок)
  • длинное имя — для 2го типа.

Т.е. если вы хотите узнать, а нашел ли 2й метод, что-то что не нашел 1й, то ищете файлы с длинными именами.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 голосов, средний: 5,00)
Загрузка...

Об авторе Александр Леоненко

Разработчик Data Extractor и Data Extractor RAID Edition
Запись опубликована в рубрике Data Extractor с метками , , , , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *