#cpp #c #video #opencv #ffmpeg
На вход подается видео с большим содержанием белых кадров. Их надо вырезать. Кадров белых может быть 5-90% всего видео. Поэтому ручками их вырезать не вариант. У меня opencv составляет txt-документ с номерами кадров, можно указывать время кадра, или хранить данные в массиве. Думал, с помощью ffmpeg их вырезать, но столкнулся с проблемой, что вырезать с помощью txt он не может. Или я не нашел такой вариант. Как решить данную проблему? Может быть, другой проигрыватель использовать, или сам opencv умеет так делать?
Ответы
Ответ 1
OpenCV умеет работать с FFmpeg: использует его муксер и кодеки. Либо, использовать самому libavformat, libavcodec и иже с ними (либы FFmpeg), декодировать кадр, отдавать OpenCV, детектировать, что он "белый" пропускать его в итоговом кодеке/муксере. Естественно, нужно корректировать PTS/DTS. Как использовать FFmpeg для декодирования/кодирования, муксинга/демуксинга можно в его документации, примерах. Для приведения к нужному формуту пикселя использовать swscale()
Комментариев нет:
Отправить комментарий