Jump to content
  • Восстановление "битого" файла MP4


    White Miku
     Share

    Вступление

    После крушения дрона я извлёк из него карточку microSD, на которую писалось видео вплоть до самого падения дрона на землю. Сама карточка и файловая система оказались целы, а вот файл DJI0002.MP4 открываться отказался. Съёмка видео велась в 2160p30 и за 6 минут съёмки дрон успел записать более 2.5 Гб видео, которое теперь не воспроизводилось ни в одном плеере и не бралось ни одной программой для конвертации. Стереть файл? Ещё успею! Сначала попробую таки восстановить видео.

    Суть проблемы

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

    Дело в том, что файл формата MP4 - это контейнер, т.е. что-то вроде архива. В нём может быть помещено несколько аудио-дорожек, несколько файлов субтитров и т.д. А на выходе получается один файл. Так вот, когда запись видеоряда завершается, в файл ещё дописывается некая "служебная" информация, без которой видеоплееры и конверторы воспринимать файл отказались.

    Поиск решения проблемы

    Конечно же я начал первым делом искать информацию в Google. Но от русскоязычной выдачи я почти сразу отказался, ибо вся первая страница была забита ссылками на сайты программ "восстановлю любой файл за умеренную сумму". Мой опыт общения с указанными программами подсказывал мне, что даже если что-то и будет восстановлено, то (специально) только частично, а для восстановления полного файла придётся вложить денежку, что меня не очень устраивало.

    Таким образом я переключился на англоязычный запрос и быстро наткнулся на вот эту статью. В ней (на английском языке) очень подробно описано как устроен файл MP4 и как его можно восстановить, но это было мне не особо интересно. Интереснее было другое - в статье была ссылка на GitHub автора, где был исходный код его программы для восстановления файлов MP4.

    Программу предлагалось скомпилировать самостоятельно. Кхм... Мой ПК работает под управлением Windows 10, я веб-разработчик и компиляторов на компьютере у меня особо не водится. Но (!), зато на моём сервере (на котором держится этот сайт) есть и gcc, и g++ и build-essentials, в общем - всё необходимое для сборки приложений из исходного кода (я периодически собираю MTProxy и pagespeed для nginx прямо на сервере).

    В общем, исходный код приложения был быстро клонирован на сервер, был запущен g++ и... Ошибка компиляции. Не хватало файла config.h. Убедившись, что его действительно нет в репозитории, я перешёл в раздел Issues, обнаружил там ошибку как у себя и нашёл ссылку на форк этого приложения, изменённого другим разработчиком.

    Во-первых форк приложения мог работать и под Windows, во-вторых он имел GUI, а в-третьих - в разделе Releases лежала уже собранная версия. Т.е. всё, что оставалось - скачать, распаковать и запустить.

    Восстановление видео

    В инструкции к приложению написано, что требуются 2 (два) файла: один - тот, что повреждён и необходимо восстановить, а второй - целый. Скорее всего, в качестве "целого" файла стоит взять файл от такой же камеры и с такими же параметрами съёмки. В моём случае проблем с "целыми" файлами не было. На дрон я снимал часто и всегда в режиме 2160p30, т.е. все файлы должны были иметь одинаковую структуру и схожие "служебные" данные.

    А дальше - всё просто. Запускаем untrunc-gui.exe, выбираем reference file - "целый" файл MP4 и truncated file - повреждённый файл, который нужно восстановить, нажимаем Repair и ждём. В случае успеха, восстановленный файл появится в папке рядом с повреждённым.

    Автор не даёт стопроцентной гарантии того, что файл будет восстановлен. Как мне кажется, это приложение вообще не сможет восстановить "битый" файл (извлечённый с повреждённого жёсткого диска), у которого отсутствуют куски данных по всему "телу" файла. Скорее всего оно может восстановить только те файлы, которые не были корректно дописаны (из-за отключения камеры, извлечения накопителя, сбоя при копировании). Но, как говорится... Попытка - не пытка. В моём случае сработало и возможно, что сработает и в вашем.

    Надеюсь, что статья окажется кому-то полезной. Спасибо за внимание.

    Ссылки на скачивание

    На случай, если автор удалит файлы из своего репозитория на GitHub, я загрузил актуальную (на момент написания статьи) версию приложения на этот сайт.

    untrunc_x32.zip - для 32-разрядных ПК (такими ещё кто-то пользуется?)

    untrunc_x64.zip - для 64-разрядных ПК

     Share


    User Feedback

    Recommended Comments

    There are no comments to display.



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.
    Note: Your post will require moderator approval before it will be visible.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...