Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2013, 13:47   #1
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию cuda h264 encoder

беру семпл отсюда: http://docs.nvidia.com/cuda/cuda-sam...c-library--api
и хочу фреймы, пожатые карточкой положить в avi контейнер, чтобы их потом можно было посмотреть каким-нить проигрывателем.
делаю так:
Код:
		int bitmap_dx = 1920;
		int bitmap_dy = 1080;

		g_bitMapInfo.bmiHeader.biSize			=	sizeof(g_bitMapInfo.bmiHeader);
		g_bitMapInfo.bmiHeader.biWidth			=	bitmap_dx;
		g_bitMapInfo.bmiHeader.biHeight			=	bitmap_dy;
		g_bitMapInfo.bmiHeader.biPlanes			=	1;
		g_bitMapInfo.bmiHeader.biBitCount		=	24;
		g_bitMapInfo.bmiHeader.biCompression	=	BI_RGB;
		g_bitMapInfo.bmiHeader.biSizeImage		=	(DWORD)(bitmap_dx*bitmap_dy*3);
		g_bitMapInfo.bmiHeader.biXPelsPerMeter	=	0;
		g_bitMapInfo.bmiHeader.biYPelsPerMeter	=	0;
		g_bitMapInfo.bmiHeader.biClrUsed		=	0;
		g_bitMapInfo.bmiHeader.biClrImportant	=	0;

		//	заполнение структуры информации о файле
		ZeroMemory(&g_asiOutput, sizeof AVISTREAMINFO);
		g_asiOutput.fccType					=	streamtypeVIDEO;
		g_asiOutput.dwScale					=	1;
		g_asiOutput.dwRate					=	25;
		g_asiOutput.dwLength				=	60;
		g_asiOutput.dwSampleSize			=	g_bitMapInfo.bmiHeader.biSizeImage;
		g_asiOutput.rcFrame.right			=	g_bitMapInfo.bmiHeader.biWidth;
		g_asiOutput.rcFrame.bottom			=	g_bitMapInfo.bmiHeader.biHeight;
		strcpy(g_asiOutput.szName, "Video #1");

		AVIFileInit();

		_mkdir("video");
		//	имя файла в формате: "video_год_месяц_день_час_минута_секунда.wav"
		time_t _Time;
		struct tm _Tm;
		_Time = time(NULL);
		localtime_s(&_Tm, &_Time);
		char filename[_MAX_PATH];
		sprintf(filename, "video/video_%d_%02d_%02d_%02d_%02d_%02d.avi", 1900+_Tm.tm_year, _Tm.tm_mon+1, _Tm.tm_mday, _Tm.tm_hour, _Tm.tm_min, _Tm.tm_sec);

		//	Создание нового avi-файла
		if (AVIFileOpen(&g_pafOutput, filename, OF_WRITE | OF_CREATE, 0) != 0) {
			AVIFileExit();
			return;
		}

		//	создание нового AVI потока
		if (AVIFileCreateStream(g_pafOutput, &g_pasOutput, &g_asiOutput) != 0) {
			AVIStreamRelease(g_pasOutput);
			AVIFileRelease	(g_pafOutput);
			AVIFileExit		();
			return;
		}

		HRESULT hr = AVIStreamSetFormat(g_pasOutput, 0, &g_bitMapInfo.bmiHeader, sizeof BITMAPINFOHEADER);
		//	запонение информации о заголовке Bitmap. Будет использоваться для установки формата AVI потока
		if (hr != 0) {
			AVIStreamRelease(g_pasOutput);
			AVIStreamRelease(g_pCompressedStream);
			AVIFileRelease	(g_pafOutput);
			AVIFileExit		();
			return;
		}
....

	static int num = 0;
	HRESULT hr = AVIStreamWrite(g_pasOutput, num++, 1, reinterpret_cast <void*> (cb), nBytesInBuffer, 0, NULL, NULL);
	if (S_OK != hr) {
		std::cout << "ERROR!\n";
		system("pause");
		exit(0);
	}
программа отрабатывает без ошибок, завершается удачно. avi-шка создается и даже открывается WMP. но в ней я вижу только черный экран.
Kukurudza вне форума Ответить с цитированием
Старый 29.03.2013, 08:20   #2
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

проблема решилась силами ffmpeg
Kukurudza вне форума Ответить с цитированием
Старый 29.03.2013, 09:01   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...для завершенности, к примеру:
Код:
ffmpeg -f image2 -i image%d.jpg -y video.mp4
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 02.06.2013, 12:29   #4
kRaM
Новичок
Джуниор
 
Аватар для kRaM
 
Регистрация: 16.12.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Kukurudza Посмотреть сообщение
проблема решилась силами ffmpeg
Можешь показать/скинуть исходный код?
kRaM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм сжатия видео MPEG, h264 maxover Мультимедиа в Delphi 0 10.03.2012 13:08
CUDA Animal_juice Visual C++ 8 22.12.2011 20:12
[CUDA] параллельный метод бактерий на cuda mamant1 Фриланс 4 13.12.2011 08:27
CUDA Kukurudza Свободное общение 7 07.11.2011 17:53
CUDA dxdy Свободное общение 3 29.10.2010 20:17