FFmpeg обрезает необработанное видео c ' - PullRequest
0 голосов
/ 18 марта 2020

Справочная информация. У бытовой камеры коллеги Panasoni c были проблемы с SD-картой большой емкости, и были получены два разных типа усеченных файлов (mp4 и mdt) с поврежденными заголовком и индексом. Оба были «исправимы» с помощью следующих шагов:

  1. Найдите в шестнадцатеричном редакторе последовательность ascii «mdat» и в усеченном, и в соответствующем известном исправном файле. В mp4 «mdat» находится довольно глубоко в файле, поскольку содержит некоторые (но плохие) заголовки, тип mdt почти начинается с него.
  2. Замените все до последовательности «mdat» на известный хороший заголовок. НО это также означает, что метаданные по длине копируются.
  3. Запустите https://github.com/ponchio/untrunc для файла с исправленным заголовком (он отказался работать с исходными файлами).
  4. Прибыль! VL C проигрывает файл нормально, ffprobe показывает правильную длину. НО Кодирование ffmpeg останавливается в конце временного кода файла, из которого я извлек заведомо хороший заголовок на шаге 2.
  5. Несколько уродливое решение - перекодировать файл в VL C (видео, похоже, снова разбивает файл).

Интересно, я что-то упустил; долгое время. Я полагаю, что да, но простые операции с временным кодом над входным файлом, похоже, не имеют никакого эффекта.

Есть ли способ убедить ffmpeg кодировать весь файл, который видят ffprobe и VL C? 1030 *

Файлы могут быть предоставлены для анализа только в личных целях, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...