По моему опыту, если у вас не установлен кодек или другая версия кодека, установленного в вашей ОС, то, с помощью которого вы пытаетесь сохранить видео, может спровоцировать его сбой.
Даже если этокусок кода на C ++, это может помочь вам:
// Load input video or camera stream
cv::VideoCapture cap(0);
if (!cap.isOpened())
{
std::cout << "!!! Input video could not be opened" << std::endl;
return 1;
}
float fps = cap.get(CV_CAP_PROP_FPS);
int cols = cap.get(CV_CAP_PROP_FRAME_WIDTH);
int rows = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
// Setup output video
cv::VideoWriter video("output.avi", cap.get(CV_CAP_PROP_FOURCC), fps, cv::Size(cols,rows),true)