#Что означает ошибка
Invalid data found when processing input
Сообщение FFmpeg «Invalid data found when processing input» означает, что утилита не смогла разобрать входной файл: он повреждён, не дописан, зашифрован, имеет нестандартный контейнер или это вообще не медиафайл (например, HTML-страница, скачанная вместо видео).
Сначала определите, что за файл реально находится по пути. Затем выберите способ чтения.
Нередко проблема не в самом файле, а в параметрах: неверно указан формат входа или не хватает заголовка потока.
Ошибка означает, что FFmpeg не смог разобрать входной файл: он повреждён, неполон или имеет нестандартную структуру. Для MP4 частая причина — отсутствие блока moov.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Неполная загрузка файла | Размер мал. | Скачайте заново. |
| Повреждённый контейнер | Ошибки. | Попробуйте восстановить. |
| Неверный формат | Расширение не совпадает. | Проверьте. |
| Запись не завершена | Прервали. | Используйте инструменты восстановления. |
#Пошаговое решение
- Убедитесь, что это медиафайлСоздайте копию входного файла. В терминале Linux/macOS откройте папку с копией и запустите
file input.mp4; в Windows можно посмотреть размер через «Свойства» и использоватьffprobe -hide_banner input.mp4после установки FFmpeg. Замените имя реальным. ЕслиffprobeпишетInvalid data found, проверьте, что вы скачали именно видео, а не HTML-страницу ошибки с расширением.mp4. - Задайте форматПараметр
-fзадают только когда точный контейнер или поток известен, например необработанный H.264. Не добавляйте-f mp4к случайному файлу: это не восстанавливает заголовки. Сначала посмотрите расширение, технические характеристики у отправителя и выводffprobe. Параметры анализа-analyzedurationи-probesizeпомогают не всем форматам, поэтому проверяйте изменения на отдельной копии. - Игнорируйте ошибки потокаЕсли часть кадров повреждена, в отдельную папку положите копию
input.mp4и попробуйте командуffmpeg -err_detect ignore_err -fflags +discardcorrupt -i input.mp4 -c copy salvaged.mkv. Откройте полученный MKV и проверьте начало, середину и конец. Пропуск повреждённых пакетов может приводить к разрывам звука и изображения, а при отсутствующем заголовке контейнера команда не сработает. Оригинал сохраните. - Попробуйте восстановить контейнерЕсли MP4 оборван во время записи и отсутствует важный служебный блок, FFmpeg может оказаться бессилен. При наличии второго исправного ролика с той же камеры и настройками изучите специализированное средство untrunc и работайте только с копиями; инструмент не гарантирует восстановления. Для MKV можно попробовать открыть файл в MKVToolNix и пересобрать контейнер, если потоки читаются.
- Скачайте файл зановоЕсли файл получен из сети, ещё раз скачайте его по исходной ссылке, дождитесь полного завершения и сравните размер и контрольную сумму, когда она доступна. Если проблема только у вашего экземпляра, используйте новую копию. Если сам источник выдаёт неполное видео, запросите исходную запись у автора: неподходящие параметры FFmpeg не восстановят отсутствующие данные.
#Проверка файла
Выполните ffprobe -hide_banner файл и file файл (Linux/macOS/Git Bash). Если file показывает HTML document или ASCII text, значит, вы скачали страницу ошибки. Проверьте размер: нулевой или подозрительно маленький файл — незавершённая загрузка. Сравните хэш sha256sum, если он известен.
#Параметры чтения
Увеличьте анализ входа: ffmpeg -analyzeduration 100M -probesize 100M -i in.ts -c copy out.mp4. Явно задайте формат: -f mpegts или -f h264. Для потоков с ошибками добавьте -err_detect ignore_err -fflags +discardcorrupt+genpts. Для M3U8 при ошибках сертификата добавьте -protocol_whitelist file,http,https,tcp,tls,crypto.
#Восстановление
Если у MP4 нет атома moov, файл не завершился записью. Используйте с рабочим файлом той же камеры. Для MKV можно попробовать mkvmerge -o fixed.mkv broken.mkv. Записанное с экрана видео часто не дописано при сбое питания.
ffprobe -hide_banner input.mp4ffmpeg -err_detect ignore_err -fflags +discardcorrupt+genpts -i input.mp4 -c copy fixed.mp4