私は会社が私に提供したブラックボックスバッファコードにビデオをストリーミングするIPカメラを持っています。彼らはまた、私はどのようにバッファを取ることができ、それをunsigned char *配列に変換するかのサンプルコードを提供しました。この配列を使用して、AVIファイルを作成し、ビデオバッファを保存してビデオファイルを作成することができます。Video For Windowsのコードをより良いものに移行するにはどうすればよいですか?
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で簡単に作業できる何かに持っている、このビデオバッファを保存するもっとエレガントな方法があるのだろうか?
多分、私はDirectShow.netフィルタを作成してそれを処理することができますか? – Grant