Fourcc с Mac OS X

Мне нужно написать видео из последовательности изображений. Я использую этот код:

int main()
{
//Read sequence of images
Size frameSize(1360,1024);
//cout<<path<<endl;
VideoCapture sequence("path/fr%1d.jpg");
if (!sequence.isOpened())
{
cerr << "Failed to open Image Sequence!\n" << endl;
return -1;
}
//Write video
VideoWriter oVideoWriter ("path/MyVideo.avi",CV_FOURCC('8','B','P','S'), 15
, frameSize);
Mat imageGrey;
if(!oVideoWriter.isOpened())
{
cout<<"ERROR: Failed to write the video"<<endl;
return -1;
}
Mat Image;
int i=0;
while(true)
{
sequence>>Image;
if(Image.empty())
break;
cout<<i<<endl;
Mat imageArr[] = {Image, Image, Image};
merge(imageArr, 3, imageGrey);
//cvtColor(Image,imageGrey,CV_GRAY2BGR);
oVideoWriter.write(imageGrey);
i++;
}
cout<<"video written!"<<endl;
return 1;
}

Я получаю очень темное видео по сравнению с одним в Windows 7. Я думаю, что это проблема кодека. Какой лучший кодек, который работает на Mac OS X. Спасибо

0

Решение

Как вы сказали, если сравнивать его с Windows, это, вероятно, проблема с кодеками. Нет лучшего кодека; некоторые кодеки лучше подходят для определенных ситуаций, а хуже — для других. Обычный кодек для использования может быть XVID с использованием CV_FOURCC('X', 'V', 'I', 'D') но нет гарантии, что он у вас есть.

Хорошая практика — пройти -1 вместо CV_FOURCC() макрос в cv::VideoWriter конструктор для вашего первого запуска. Появится окно, и вы сможете увидеть, какие типы кодеков вы можете использовать. Когда вы довольны одним из них, найдите код 4CC этого кода и жестко закодируйте его в своей программе.

Также вы можете попробовать Perian иметь доступ к большему количеству кодеков в Mac OS.

2

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector