我正在尝试创建桌面录制应用程序。当我录制全屏时,程序会按预期工作,但在某些情况下,当我从桌面选择特定区域进行录制时,会出现以下错误:int result = AVIStreamSetFormat(psCompress, 0, ref bi, (Int32)bi.biSize);
Error in VideoStreamSetFormat: -2147205016
.
我正在使用 Xvid MPEG-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());
}
}