Я хочу записать видеопоток в OpenCV без графического интерфейса (поэтому нет cv::waitKey
) и хочу выйти из приложения / записи (например, control + c) без потери записанного потока или повреждения файла.
Какой лучший способ сделать это?
До сих пор я инстанцировал cv::VideoWriter
глобально и написал sigIntHandler
для перехвата сигнала SIGINT
(ctrl + c) и вызова метода release писателя. Как это:
#include <iostream>
#include <csignal>
#include <opencv2/opencv.hpp>
cv::VideoWriter writer;
void sigIntHandler(int s) {
std::cout << "Caught signal " << s << std::endl;
writer.release();
exit(1);
}
int main() {
std::signal(SIGINT, sigIntHandler);
// video processing and write frames to file
...
}
Мне также было бы интересно, как решить эту проблему в python.