デスクトップレコーディングアプリケーションを作成しようとしています。フルスクリーンで録画すると、プログラムは想定どおりに動作しますが、デスクトップから特定のリージョンを選択して録画すると、次のエラーが発生する場合があります。int result = AVIStreamSetFormat(psCompress, 0, ref bi, (Int32)bi.biSize);
Error in VideoStreamSetFormat: -2147205016
。
XvidMPEG-4コーデックを使用してAVIビデオを作成しています。Xvid MPEG-4コーデックが特定の画像サイズ(幅と高さ)を受け入れないという問題があるかもしれません。私はよくわからないので、この問題に固執しています。なぜそれが機能しないのかを誰かが理解するのを手伝ってくれるかどうか尋ねています。
private void SetFormat(IntPtr psCompress)
{
BITMAPINFOHEADER bi = new BITMAPINFOHEADER();
bi.biSize = (uint)Marshal.SizeOf(bi);
bi.biWidth = (Int32)_width;
bi.biHeight = (Int32)_height;
bi.biPlanes = 1;
bi.biBitCount = 24;
bi.biCompression = 0; // 0 = BI_RGB
bi.biSizeImage = _stride * _height;
int result = AVIStreamSetFormat(psCompress, 0, ref bi, (Int32)bi.biSize);
if (result != 0)
{
throw new Exception("Error in VideoStreamSetFormat: " + result.ToString());
}
}