Tors Активный
Зарегистрирован: 16.11.2006 Сообщения: 25 Откуда: Харьков
|
Добавлено: Чт Мар 29, 2007 2:29 pm Заголовок сообщения: определить каким кодеком сжато видео |
|
|
Я делаю так:
определяю fourcc
c помощью IMediaDet,
| Код: |
VIDEOINFOHEADER *vih=(VIDEOINFOHEADER *) mt.pbFormat;
BITMAPINFOHEADER bih=(BITMAPINFOHEADER)vih->bmiHeader;
DWORD nFourCC=bih.biCompression;
char szFourCC[5];
*(DWORD*)szFourCC = nFourCC;
szFourCC[4] = 0;
strcpy(Inf.VideoInf.FOURCC,szFourCC);
|
потом по fourcc создаю mediasubtype,
и с помощью FileMapper2 ищу кодек :
| Код: |
GUID arrayInTypes[2];
arrayInTypes[0] = MEDIATYPE_Video;
arrayInTypes[1] = MediaSubType;
hr=pMapper->EnumMatchingFilters(&pEnum,
0,
TRUE,
0,//MERIT_DO_NOT_USE,
TRUE,
1,
arrayInTypes,
NULL,
NULL,
FALSE,
TRUE,
0,
NULL,
NULL,
NULL);
if (FAILED(hr))
{
}
|
для авишек все работает :
например fourcc==DIV3
находит кучу кодеков - DivX, XVID и тд
а для файла с расширением mpeg
определяется Y41P(наверное это не правильный fourcc)
и ни одного кодека не находит - хотя кодек есть - проигрывается плеером)
как программно опеделить каким кодеком сжат файл
(в идеале определить субтайп) |
|