Всем, кто не смог воспроизвести файл видео с приложения «Камера» Windows 10, посвящена эта статья. UPD1. С фото-, видеокамерами, регистраторами, рядом вебкамер данная статья тоже работает. UPD2. Сведения об устранении указанного в статье бага (незакрытие файла приложением) у автора статьи отсутствуют уже в течение 2 лет.
У автора статьи при работе приложения «Камера» Windows 10 на протяжении нескольких лет «случайно» выходила из строя батарейка ноутбука, и репортажный материал просто улетал в корзину…
Всех, кому необходима помощь с видеоданными, — прошу под кат.
Общим местом этой статьи является использование утилиты ffmpeg. Настоятельно советую ознакомиться с возможностями этой утилиты.
Работа будет проходить под Ubuntu 16.04. Эта утилита в ней есть. Но надо не забывать проверять ее новые версии. Плюс к этому, при работе с картами и винчестерами есть дополнительные проблемы при восстановлении поврежденных файловых систем и файлов. Об этом тоже лучше прочитать специализированные статьи. Считаем, что файл вы смогли достать.
1. Сначала ставим в Ubuntu 16.04 библиотеку libui. В принципе, если вы привыкли работать
с командной строки, действия можно пропустить.
2. Ставим утилиту untrunc по ее инструкции.
Если надо, подключаем интерфейс.
Дальше — два файла — битый и не битый. Привожу скриншоты действий:
Если ставили без gui, то
Практические наблюдения и предупреждения.
Технология работает для многих других устройств и приложений, которые не смогли закрыть видеофайл.
Всем успехов в восстановлении ценной информации!
Небольшой справочник по командам:
У автора статьи при работе приложения «Камера» Windows 10 на протяжении нескольких лет «случайно» выходила из строя батарейка ноутбука, и репортажный материал просто улетал в корзину…
Всех, кому необходима помощь с видеоданными, — прошу под кат.
Общим местом этой статьи является использование утилиты ffmpeg. Настоятельно советую ознакомиться с возможностями этой утилиты.
Работа будет проходить под Ubuntu 16.04. Эта утилита в ней есть. Но надо не забывать проверять ее новые версии. Плюс к этому, при работе с картами и винчестерами есть дополнительные проблемы при восстановлении поврежденных файловых систем и файлов. Об этом тоже лучше прочитать специализированные статьи. Считаем, что файл вы смогли достать.
$ ffmpeg WIN_20200204_17_08_00_Pro.mp4
ffmpeg version N-95993-ge1d836d Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
Output #0, mp4, to 'WIN_20200204_17_08_00_Pro.mp4':
Output file #0 does not contain any stream
$ ffprobe WIN_20200204_17_08_00_Pro.mp4
ffprobe version N-95993-ge1d836d Copyright (c) 2007-2019 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
libavutil 56. 36.101 / 56. 36.101
libavcodec 58. 64.101 / 58. 64.101
libavformat 58. 35.101 / 58. 35.101
libavdevice 58. 9.101 / 58. 9.101
libavfilter 7. 68.100 / 7. 68.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x4215140] <b>moov atom not found</b>
WIN_20200204_17_08_00_Pro.mp4: Invalid data found when processing input
1. Сначала ставим в Ubuntu 16.04 библиотеку libui. В принципе, если вы привыкли работать
с командной строки, действия можно пропустить.
$ # need pip3 to install meson
$ sudo apt install python3-pip libgtk-3-dev ninja-build
$ # need meson 0.48 or higher to build libui
$ sudo -H pip3 install meson
$ git clone https://github.com/andlabs/libui.git
$ cd libui
$ meson setup build # [options]
$ ninja -C build
$ ./build/meson-out/controlgallery
$ sudo ninja -C build install
2. Ставим утилиту untrunc по ее инструкции.
sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev
# get the source code
make
sudo cp untrunc /usr/local/bin
sudo apt-get install libva-dev liblzma-dev libx11-dev libbz2-dev zlib1g-dev yasm pkg-config wget
make FF_VER=3.3.9
sudo cp untrunc /usr/local/bin
Если надо, подключаем интерфейс.
make untrunc-gui
Дальше — два файла — битый и не битый. Привожу скриншоты действий:
Если ставили без gui, то
./untrunc /path/to/working-video.m4v /path/to/broken-video.m4v
Практические наблюдения и предупреждения.
- Не делайте это под Windows (хотя такое возможно), зоопарк кодеков иногда не может физически работать с разновидностью заданного типа файла.
- Ubuntu 16.04 имеет утилиту ffmpeg в репозитории. Если необходимо, то можно взять более свежую версию.
- «Хорошее видео», которое тут используется, должно быть снято ЭТИМ ЖЕ устройством, с ЭТИМИ же форматными кодеками, и должно быть больше по длине минут на десять.
- Восстановленный файл имеет наименование WIN_20200204_17_08_00_Pro.mp4_fixed-s2.mp4, где есть слово fixed и набор ключей, под которыми проходил запуск. Сильно меньше или больше исходного плохого файла он быть не может.
- Если хорошего видео нет, берем хотя бы минуту, но, к сожалению, чаще всего получим только речевой поток. Увы… Утилита не всесильна.
Технология работает для многих других устройств и приложений, которые не смогли закрыть видеофайл.
Всем успехов в восстановлении ценной информации!
Небольшой справочник по командам:
$ ./untrunc
Usage: untrunc [options] <ok.mp4> [corrupt.mp4]
general options:
-V — version
-n — no interactive
repair options:
-s — step through unknown sequences
-st <step_size> — used with '-s'
-sv — stretches video to match audio duration (beta)
-dw — don't write _fixed.mp4
-dr — dump repaired tracks, implies '-dw'
-k — keep unknown sequences
--dyn — use dynamic stats
analyze options:
-a — analyze
-i[t|a|s] — info [tracks|atoms|stats]
-d — dump samples
-f — find all atoms and check their lenghts
-m — match/analyze file offset
untrunc <ok.mp4> <ok.mp4> — report wrong values
other options:
-ms — make streamable
logging options:
-q — quiet, only errors
-w — show hidden warnings
-v — verbose
-vv — more verbose
general options:
-V — version
-n — no interactive
repair options:
-s — step through unknown sequences
-st <step_size> — used with '-s'
-sv — stretches video to match audio duration (beta)
-dw — don't write _fixed.mp4
-dr — dump repaired tracks, implies '-dw'
-k — keep unknown sequences
--dyn — use dynamic stats
analyze options:
-a — analyze
-i[t|a|s] — info [tracks|atoms|stats]
-d — dump samples
-f — find all atoms and check their lenghts
-m — match/analyze file offset
untrunc <ok.mp4> <ok.mp4> — report wrong values
other options:
-ms — make streamable
logging options:
-q — quiet, only errors
-w — show hidden warnings
-v — verbose
-vv — more verbose