Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

Вырезать кадры из видео

#cpp #c #video #opencv #ffmpeg


На вход подается видео с большим содержанием белых кадров. Их надо вырезать.

Кадров белых может быть 5-90% всего видео. Поэтому ручками их вырезать не вариант.
У меня opencv составляет txt-документ с номерами кадров, можно указывать время кадра,
или хранить данные в массиве.

Думал, с помощью ffmpeg их вырезать, но столкнулся с проблемой, что вырезать с помощью
txt он не может. Или я не нашел такой вариант.

Как решить данную проблему?

Может быть, другой проигрыватель использовать, или сам opencv умеет так делать?
    


Ответы

Ответ 1



OpenCV умеет работать с FFmpeg: использует его муксер и кодеки. Либо, использовать самому libavformat, libavcodec и иже с ними (либы FFmpeg), декодировать кадр, отдавать OpenCV, детектировать, что он "белый" пропускать его в итоговом кодеке/муксере. Естественно, нужно корректировать PTS/DTS. Как использовать FFmpeg для декодирования/кодирования, муксинга/демуксинга можно в его документации, примерах. Для приведения к нужному формуту пикселя использовать swscale()

Комментариев нет:

Отправить комментарий