Я хотел написать видео файл, используя OpenCV (C ++).Глядя на документы, это казалось очень простым.Однако, когда я пытался сделать это в моей программе (работающей в Windows 7), я не смог этого сделать.
При поиске в Интернете потенциальных проблем не смог найти пример, в котором использовался 2.x OpenCVинтерфейс или что-то, что относится к моей проблеме.
Сначала вот код:
cv::VideoCapture cap("C:\\Users\\Me\\Video\\test.mov");
cv::VideoWriter writer("C:\\Users\\Me\\Video\\test_result.mov",
cap.get(CV_CAP_PROP_FOURCC),
cap.get(CV_CAP_PROP_FPS),
cv::Size((int)cap.get(CV_CAP_PROP_FRAME_HEIGHT), (int)cap.get(CV_CAP_PROP_FRAME_WIDTH)));
while(cap.grab()) {
cv::Mat img;
cap.retrieve(img);
// process img
writer << img;
}
Не выдается сообщение об ошибке, но видеофайл не создается.Хуже того, на консоли появляется следующее сообщение:
Output #0, mov, to 'C:\Users\Me\Video\teste_result.mov':
Stream #0.0: Video: [0][0][0][0] / 0x0000, yuv420p, 480x720, q=2-31, 22118 kb/s, 90k tbn, 15 tbc
Разве это не значит, что видеофайл создан?Где еще я могу найти возможную ошибку?
РЕДАКТИРОВАТЬ:
При использовании кода выше, я также проверяю, объекты VideoCapture и VideoWriter с методом isOpened, который идет нормально.*