Как создать точные циклы таймеров C++ для захвата RTSPC++

Программы на C++. Форум разработчиков
Anonymous
 Как создать точные циклы таймеров C++ для захвата RTSP

Сообщение Anonymous »

Итак, я пытаюсь захватить поток и записать его на куски по 30 секунд. Я не знаю, какой будет частота кадров в секунду у камеры, поэтому нужно учитывать, что я хочу снимать только 15 кадров в секунду.
Моя проблема в том, что следующие результаты дают фрагменты по 28 секунд вместо 30. . как мне правильно выбрать время?
Не совсем новичок в C++, но довольно заржавевший и никогда раньше не делал ничего подобного (обычно простой ввод-вывод или в контексте разработки игр начального уровня). )
вероятно, либо математические вычисления отключены, либо я делаю что-то, что вызывает задержку обработки, либо я просто слишком долго смотрел на это и упустил что-то очевидное (вероятно)
что я уже пробовал:
int frame_count = 0;
double frame_duration = 1.0 / currentCameraConfig.fps;
auto start_time = std::chrono::steady_clock::now();

while (true) {
cv::Mat frame;

if (!cap.read(frame)) {
break;
}

frame_count++;

auto now = std::chrono::steady_clock::now();
auto elapsed_time = std::chrono::duration_cast(now - start_time).count();

if (elapsed_time < 30) {
video_output.write(frame);
std::cout

Подробнее здесь: https://stackoverflow.com/questions/790 ... p-captures

Вернуться в «C++»