会社から提供されたブラックボックス バッファ コードにビデオをストリーミングする IP カメラがあります。また、バッファを取得して unsigned 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 の使い方を知っていますが、このビデオ バッファを保存するためのよりエレガントな方法があるかどうか疑問に思っていました。