Я кодировал нижеприведенный код, который пытается удержать картинку и сосчитать число сотен и, наконец, захватить их все в видео со следующим кодеком MP42 (MPEG4-V2).
#include <stdAfx.h>
#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int n=0;
char a;
int main(int, char** argv)
{
Mat image= imread("C:\\Users\\Metin\\Desktop\\images.jpg");
Mat newimage;
VideoWriter vide ("Hopdedik.avi",CV_FOURCC('M','P','4','2'),30.0,image.size());
vide.open("Hopdedik.avi",CV_FOURCC('M','P','4','2'),30.0,image.size());
for(int n=0; n<100;n++){
cout<<n<<'\n';
std::string s= to_string(static_cast<long long>(n));
image.copyTo(newimage);
putText(newimage,s,Point(100,40),cv::FONT_HERSHEY_COMPLEX,2,cv::COLORMAP_COOL,2,2,false);
imshow("asd",newimage);
if(!vide.isOpened())cout<<"can not opened";
vide.write(newimage);
waitKey(10);
}
vide.release();
return 0;
}
Я начал отладку в режиме Release и скопировал файлы .exe в Virtualbox Win7-64 bit. Сразу после того, как я поставил необходимые DLL-файлы, exe работает, но код не может правильно создать видео.
Я попытался установить следующие два кодека:
http://www.fourcc.org/downloads/angel-potion-mpeg-4—8/
и Indeo, который: http://www.afreecodec.com/codec-by-code/iv45-160.html
Но это не сработало.
Однажды я столкнулся с подобной проблемой, когда opencv не мог прочитать видео. Там не было никакого предупреждения вообще. Причиной было то, что автоматический создатель строк вызвал «opencv_mmpeg.dll», который отсутствовал в системе. Итак, я отладил до cap_ffmpeg.cpp и нашел это:
#if defined WIN32 || defined _WIN32
const char* module_name = "opencv_ffmpeg"CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) CVAUX_STR(CV_SUBMINOR_VERSION)
#if (defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__)
"_64"#endif
".dll";
Итак, скопируйте opencv_ffmpeg_64.dll в вашу папку, и у вас могут быть некоторые результаты. Иначе, вам нужно глубоко отладить. Начните с вставки в ваш проект файла opencv / modules / highgui / src / cap.cpp (и заголовки, которые необходимо скомпилировать), чтобы вы могли отлаживать построчно. Я полагаю, что понадобится много других файлов, чтобы углубиться в код.
Других решений пока нет …