Видео файлы будут повреждены при восстановлении с помощью PhotoRec (то же самое с testdisk), поэтому они не будут воспроизводиться даже при наличии видеопотока. У меня была такая же проблема со случайно удаленными видео с камеры Canon EOS. Потратил некоторое время, пытаясь объединить файлы, затем потратил целую вечность на компиляцию untrunc, но не получил ничего пригодного для воспроизведения ни одним из методов.
Затем я нашел Perl-скрипт mp4fixer, который исправляет поврежденные видеофайлы.
И это сработало!
Вот как:
Как и untrunc, mp4fixer работает, сравнивая файлы, поэтому вам понадобится рабочий видеофайл с той же камеры, со всеми теми же настройками и всем остальным, как можно ближе к поврежденному видеофайлу.
Поместите оба видеофайла в папку, откройте эту папку в терминале и введите следующие команды:
wget https://github.com/bookkojot/mp4fixer/archive/master.zip
unzip master.zip
mp4fixer-master/fixer.pl good-video.mov bad-video.mov fixed
В последней строке замените good-video
и bad-video
именами ваших файлов, а последним аргументом (здесь fixed
) может быть любое слово по вашему выбору, которое будет использоваться в качестве префикса для сгенерированных файлов.
После того, как скрипт выполнит свою работу, ваша папка будет завалена префиксными файлами. Ищите тот, заканчивающийся *-out-video.h264
.
Вы уже можете воспроизвести этот файл с помощью VLC, но в моем случае частота кадров была повсюду, поэтому я конвертировал его в MP4 с помощью HandBrake и все, мои видео теперь воспроизводятся просто отлично!
примечание: только осознав, что в моем случае аудио не требовалось, я упустил из виду тот факт, что mp4fixer восстанавливает звук в виде отдельного файла .raw. Там больше информации о звуке на странице readme. Также необработанный звук воспроизводился в Audacity (File > Import > Raw Data
), но с неверной скоростью.