У меня есть IP-камера, которая транслирует видео в буферный код черного ящика, предоставленный мне компанией.Они также предоставили мне пример кода того, как я могу взять буфер и преобразовать его в массив без знака char *.С помощью этого массива я могу создать файл AVI, сохранить в нем видео буфер и создать видео файл.
for( unsigned short lLine = 0; lLine < mSizeY -1; lLine++)
{
NumOfLines = lLine;
unsigned char *lCurLine = (unsigned char *)aBuffer + (lLine) * mSizeX * mBPP;
unsigned char *lCurLineInv = temp + (mSizeY - lLine - 1) * mSizeX * mBPP;
::memcpy(lCurLineInv, lCurLine, mSizeX * mBPP );
}
AVIStreamWrite(mAVICompressedStream, mLastSample, 1, temp, mImageSize, AVIIF_KEYFRAME, &lSamplesWritten, &lBytesWritten )
Это ужасная система во многих отношениях.Включая тот факт, что все это сделано в VFW
В настоящее время я делаю весь этот код в C # и в C ++ / CLi DLL.Я знаю, как использовать Directshow.Net, и мне было интересно, есть ли более элегантный способ сохранить этот видеобуфер, который мне нужен, в AVI-файл или что-то, с чем я могу легко работать, например, в DirectShow или DirectShow.net?