Проверка ошибок FFmpeg

У меня есть три примера видео, good.avi, damaged1.avi, а также damaged2.avi, Первый будет воспроизводиться в VLC, но вторые два будут оба с одним и тем же сообщением "Сломан или отсутствует индекс AVI".

У меня есть тысячи этих видео, которые мне нужно обработать в MATLAB, поэтому я пытаюсь проверить ошибки с помощью FFmpeg, например: ffmpeg -v error -i vidname.avi -f null - 2>&1

Теперь вот часть, которую я не понимаю:
На good.avi завершается без вывода -OK
На damaged1.avi это выводит [mjpeg @ 0x7fc1dd813800] overread 1 -ХОРОШО
На damaged2.avi завершено без вывода, как в good.avi -?????

Может, кто-нибудь с опытом работы с видеокодеком /FFmpeg поможет мне понять, что здесь происходит, чтобы я мог разработать более надежную проверку ошибок?

Они также имеют идентичные детали кодека в VLC: введите описание изображения здесь

1 ответ

Это длинный кадр, но я подозреваю, что одно из изображений JPEG повреждено (из-за overread 1 сообщение об ошибке).

Попробуйте извлечь изображения из damaged1.avi

ffmpeg -i damage1.avi -vcodec copy image%d.jpg

затем беги mogrify на извлеченных изображениях:

for i in image*.jpg; do mogrify "$i"; done

Наконец, воссоздайте видео:

cat image*.jpg | ffmpeg -f image2pipe -c:v mjpeg -i - output.avi

Если это работает, то вы можете извлечь аудио из mage1.avi и мультиплексировать его в output.avi.

Другие вопросы по тегам