Проверка ошибок 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 поможет мне понять, что здесь происходит, чтобы я мог разработать более надежную проверку ошибок?
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.