VideoRecorderOpenCv C++ lib. Simple video recorder with memory control
VideoRecorderOpenCv C++ library version 1.1.1 provides methods for recording video to file's with controlling file's and folder size's.
LICENSE: We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: DOWNLOAD LICENSE. You can buy technical support service for this product.
Purchase options
You can by this software online by card or you can buy the software by bank transfer. Bank transfer available only for companies. To buy software by bank transfer please send us request to info@constantrobotics.com. Also, you can buy technical support service for this product.
Downloads
Programmer’s manual: DOWNLOAD
Overview
VideoRecorderOpenCv C++ library provides methods for recording video to file's with controlling file's and folder size's. This library is built upon the OpenCV library. The library records .avi video files with "D.I.V.X" codec (build in OpenCV). The library is cross-platform and compatible with Windows and Linux OS. The library built with C++17 standard and doesn't have any third-party dependencies except OpenCV library.
Simple interface
class VideoRecorderOpenCv
{
public:
/// Get current class version.
static std::string getVersion();
/// Init video recorder.
bool init(std::string initString);
/// Write video frame.
bool write(uint8_t* frameBgr, int width, int height);
/// Stop video recording.
void stopRecording();
};
Simple example
#include <iostream>
#include "VideoRecorderOpenCv.h"
using namespace cr::video;
using namespace std;
using namespace cv;
int main(void)
{
// Open video file.
VideoCapture videoSource;
if (!videoSource.open("test.mp4"))
return -1;
// Init video video recorder.
VideoRecorderOpenCv recorder;
if (!recorder.init("Output;200;20;test;30;async"))
return -1;
// Main loop.
Mat frameBgr;
while (true)
{
// Capture video frame.
videoSource >> frameBgr;
if (frameBgr.empty())
{
videoSource.set(CAP_PROP_POS_FRAMES, 0);
continue;
}
// Write frame.
if (!recorder.write(frameBgr.data,
frameBgr.size().width,
frameBgr.size().height))
cout << "Recording problem" << endl;
}
return 1;
}