Как восстановить поврежденный файл MP4?

Вопрос или проблема

Я снял видео на своем Android телефоне (Sony Xperia P, если это важно), и прежде чем я смог остановить запись, память телефона заполнилась, и он завис. Я перезагрузил телефон, видео осталось, но я не смог его воспроизвести на любом медиаплеере Android. Оно в формате mp4.

Я попробовал открыть его на ПК и Mac с помощью различных видеоплееров, таких как VLC, Quick Time, Windows Media Player и т.д., но ни один из них не смог его воспроизвести. Я понимаю, что видео повреждено, но верю, что его можно восстановить, поскольку его размер составляет более гигабайта. Есть ли что-то, что я могу попробовать сделать для восстановления видеофайла? Это видео действительно важно.

Это старый вопрос, но я только что столкнулся с такой же ситуацией и решил опубликовать решение, которое сработало для меня.

Когда вы видите сообщение “moov atom not found”, это обычно означает, что устройство, создававшее видео, не смогло записать завершающие метаданные, содержащие информацию о таких вещах, как кодеки, используемые в видео, и так далее. Без этого “moov atom” большинство плееров отклонят видео.

Если у вас есть другое видео, созданное тем же устройством, вы можете использовать программу untrunc, чтобы сгенерировать новый moov atom, который в большинстве случаев сделает файл воспроизводимым.

Вам нужно будет скомпилировать программу untrunc самостоятельно. Я собрал ее в контейнере Ubuntu 12.04 и для сборки мне потребовалось установить следующие предварительные компоненты:

sudo apt-get install libavformat-dev libavcodec-dev \
  libavutil-dev libqt4-dev make g++ libz-dev

Если у вас установлен FFmpeg, с командной строки вы можете попробовать:

ffmpeg -i input.mp4 -c copy output.mp4

Если проблема только в контейнере, это исправит ее.

Если это не сработает, пожалуйста, опубликуйте полное сообщение терминала, так как это может дать подсказку, как исправить файл.

Мне удалось использовать программу mp4fixer, чтобы восстановить усеченный видеофайл с дрона, у которого возникала ошибка “moov atom not found”.

Эта программа требует Perl, а также рабочего видеофайла с того же устройства, с которого можно скопировать недостающие данные.

Она дала мне сырые данные H264, которые я смог конвертировать обратно в MP4 с помощью:

ffmpeg -i mp4fixer-out-video.h264 -c copy fixed.mp4

.

Ответ или решение

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

Теория

Файлы в формате MP4 используют структуру контейнера, который включает в себя различные "атомы" или метаданные, необходимые для правильного воспроизведения видео. Один из критически важных атомов — это "moov atom", который содержит информацию о кодеках, временных метках и других параметрах, необходимых для декодирования и воспроизведения видео. Когда запись прерывается неожиданно, как в вашем случае, этот атом может быть не записан корректно или вовсе отсутствовать, из-за чего стандартные медиаплееры отказываются воспроизводить файл.

Пример

Рассмотрим основные шаги и инструменты, которые могут быть использованы для восстановления поврежденного файла:

  1. Использование FFmpeg: FFmpeg — это мощный командный инструмент для обработки видео и аудиофайлов. Он может попытаться исправить поврежденный контейнер MP4 следующим образом:

    ffmpeg -i input.mp4 -c copy output.mp4

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

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

    • Компиляция требуется на самих системах, например, на Ubuntu 12.04 Docker с предварительно установленными библиотеками: libavformat и другими.
  3. Использование mp4fixer: Это еще один инструмент, который может восстановить поврежденные видео, особенно если присутствует ошибка "moov atom not found". Он требует установленной среды Perl и наличия другого исправного видеофайла для копирования необходимых данных.

    • После работы mp4fixer, можно использовать FFmpeg для преобразования извлеченных данных назад в MP4:

      ffmpeg -i mp4fixer-out-video.h264 -c copy fixed.mp4

Применение

Принимая во внимание теоретические и практические аспекты восстановления видеофайлов, ниже приведен пошаговый алгоритм действий, который может помочь восстановить ваш поврежденный MP4-файл:

  1. Первичная диагностика:

    • Скопируйте файл на компьютер, если это еще не сделано.
    • Используйте FFmpeg для попытки восстановления контейнера.
    ffmpeg -i your_corrupted_file.mp4 -c copy restored_file.mp4
  2. Использование Untrunc:

    • Скачайте и скомпилируйте Untrunc. Не забудьте установить предварительные зависимости, если работаете на Ubuntu.
    • Выполните восстановление, указав программу на поврежденный и исправный файлы:
    untrunc good.mp4 your_corrupted_file.mp4
  3. Работа с mp4fixer:

    • Убедитесь, что Perl установлен, и загрузите mp4fixer.
    • Следуйте инструкциям программы для восстановления информации, затем выполните преобразование с помощью FFmpeg.
  4. Проверка восстановленного файла:

    • Попробуйте открыть восстановленный файл в нескольких медиаплеерах, чтобы удостовериться в успешности восстановления.
  5. Антикризисные действия (на будущее):

    • Регулярный резервный копий особо важных видеофайлов.
    • Убедитесь, что на устройстве достаточно свободного места при записи важных видео.
    • Используйте приложения с функцией авто-сохранения для предотвращения подобных инцидентов.

Следуя этим рекомендациям, у вас есть хороший шанс восстановить важные видеоматериалы и избежать подобной ситуации в будущем. Если файл по-прежнему не восстанавливается, возможно, стоит обратиться к профессиональному сервису восстановления данных, особенно если запись особо важна.

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

Капча загружается...