ОБНОВЛЕНИЕ: Судя по отзывам этого сайта и других, OpenCV не является отличной платформой для тонкостей видеозаписи (таких как проблемы с частотой кадров).
У меня есть два потока, работающие в приложении C ++ OpenCV3.4.Один поток читает кадры в цикле с VideoCapture
и записывает их в boost::circular_buffer
.Другой поток извлекает кадры из буфера и записывает их в VideoWriter
.
Вот проблема: у камеры 29,97 к / с, но цикл не читает так быстро, потому что это медленный процессор.Это в среднем 10-15 кадров в секунду.Эта частота кадров колеблется, поэтому я не могу просто установить VideoWriter
на 10 кадров в секунду и продолжить, потому что я сталкиваюсь с переполнением буфера в зависимости от других событий, происходящих в системе.
Нужно ли вручную отслеживать обе частоты кадров, исбросить / повторно отправить кадры в VideoWriter
для поддержания ожидаемой скорости FPS, или уже есть способ управлять этим в OpenCV, который мне не хватает?
Спасибо, PT