Как сбросить поврежденные кадры в FFMPEG - PullRequest
0 голосов
/ 18 февраля 2020

Я запускаю команду в FFMPEG, которая использует в качестве входного потока потоковое видео (IP-поток Boroscope) и преобразует его в вывод AVI.

Для этого я выполнил следующую команду:

ffmpeg -i tcp://192.168.10.123:7060 -c:v copy out.mov 

Когда я запустил эту команду, в консоли появилось несколько ошибок:

https://prnt.sc/r3ranr

Даже с ошибками видео было закодировано.

В некоторых кадрах возникает странная проблема с качеством, возможно, из-за следующих ошибок:

https://prnt.sc/r3rb1h

Я не собираюсь решать эту проблему, все, что я хочу сделать, это отбросить эти поврежденные кадры через некоторый параметр в FFMPEG, потому что кадры с хорошим качеством уже достаточны для того, что мне нужно сделать.

Я пытался вместо преобразования вывод в файл .avi, получая только I-кадры с командой:

ffmpeg -i tcp://192.168.10.123:7060 "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr teste%04d.png

С помощью этой команды я смог засвидетельствовать, что ошибки были напрямую связаны с кадром с проблемами качества.

Я также выполнил команду, которая отбросить поврежденные кадры из ввода (или, по крайней мере, я думал, что эта команда будет делать):

ffmpeg -err_detect bitstream -err_detect buffer -err_detect explode -err_detect aggressive -fflags discardcorrupt -i tcp://192.168.10.123:7060 -r 1 -an -f image2  snapshot-%03d.jpg

Но это не сработало.

Впервые я использовать FFMPEG, и я не знаю эту платформу, и ее команды очень хорошо.

Итак, наконец, есть ЛЮБОЙ параметр в FFMPEG, который может заставить меня ОТКЛЮЧИТЬ все кадры, в которых произошли ошибки (любой тип ошибки) ?

Спасибо.

...