1
Я пытаюсь создать 1fps WebM из двух изображений, Код:OpenCV VideoWriter сохраняет только один кадр
// path to output
string outputVideoPath = "/home/gio/Desktop/giffer/def.webm";
// write dimensions in size struct
Size dims = Size(640,480);
// create and open VideoWriter object
VideoWriter outputVideo;
outputVideo.open(outputVideoPath, CV_FOURCC('V','P','8', '0'), 1, dims, true);
// check if opened
if(!outputVideo.isOpened()){
cout << "Creating outputVideo fail" << endl;
return -1;
}
// I hate strings
string paths[2];
paths[0] = "/home/gio/Desktop/giffer/images_temp/g0.jpg";
paths[1] = "/home/gio/Desktop/giffer/images_temp/g1.jpg";
for (int i = 0; i < 2; i++) {
cout << paths[i] << endl;
Mat temp = imread(paths[i]);
outputVideo.write(temp);
usleep(10000);
}
Результатом является только рама (последнее изображение), 1 секунд. Что я делаю неправильно?
EDIT: Я пытался на .avi
расширения, DIVX
кодек и он работал. Любые идеи, как заставить его работать на .webm
? или .gif
Почему вы ненавидите строки? : D – Miki
Зачем вам 'usleep (...)'? Вы уже установили fps в конструкторе. Попробуйте 'outputVideo.write (temp.clone()),' просто чтобы быть уверенным ... – Miki
usleep для уверенности тоже. клон не работает. – notgiorgi