Справочная информация. У бытовой камеры коллеги Panasoni c были проблемы с SD-картой большой емкости, и были получены два разных типа усеченных файлов (mp4
и mdt
) с поврежденными заголовком и индексом. Оба были «исправимы» с помощью следующих шагов:
- Найдите в шестнадцатеричном редакторе последовательность ascii «mdat» и в усеченном, и в соответствующем известном исправном файле. В
mp4
«mdat» находится довольно глубоко в файле, поскольку содержит некоторые (но плохие) заголовки, тип mdt
почти начинается с него. - Замените все до последовательности «mdat» на известный хороший заголовок. НО это также означает, что метаданные по длине копируются.
- Запустите https://github.com/ponchio/untrunc для файла с исправленным заголовком (он отказался работать с исходными файлами).
- Прибыль! VL C проигрывает файл нормально, ffprobe показывает правильную длину. НО Кодирование ffmpeg останавливается в конце временного кода файла, из которого я извлек заведомо хороший заголовок на шаге 2.
- Несколько уродливое решение - перекодировать файл в VL C (видео, похоже, снова разбивает файл).
Интересно, я что-то упустил; долгое время. Я полагаю, что да, но простые операции с временным кодом над входным файлом, похоже, не имеют никакого эффекта.
Есть ли способ убедить ffmpeg кодировать весь файл, который видят ffprobe и VL C? 1030 *
Файлы могут быть предоставлены для анализа только в личных целях, извините.