我正在做一个WPF应用程序,其中一个功能是从Kinect传感器录制视频(只有RGB流)(使用Aforge和SDK 1.5)。
在我的应用程序中,我有一个按钮,当点击它时,它应该将视频流保存到avi文件中。
我添加了引用并将所有.dll文件复制到我的项目文件夹中(如其他论坛中所述)但由于某种原因我收到此错误:
{"Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.":null}
因此private void button4_Click(object sender, RoutedEventArgs e)
内部是以下代码:
int width = 640;
int height = 480;
// create instance of video writer
VideoFileWriter writer = new VideoFileWriter();
// create new video file
writer.Open("test.avi", width, height, 25, VideoCodec.MPEG4);
// create a bitmap to save into the video file
Bitmap image = new Bitmap (width, height, DrawingColor.PixelFormat.Format24bppRgb);
for (int i = 0; i < 1000; i++)
{
image.SetPixel(i % width, i % height, Color.Red);
writer.WriteVideoFrame(image);
}
writer.Close();
}
我将非常感谢您的帮助,并且我也非常感谢您记录RGB流的方式(如果您推荐其他方式),只要它不复杂,因为我是新的C#
答案 0 :(得分:1)
视频为红色的原因是因为您使用
将其变为红色 for (int i = 0; i < 1000; i++)
{
image.SetPixel(i % width, i % height, Color.Red);
writer.WriteVideoFrame(image);
}
您应该做的是转换BitmapSource
/ WritableBitmap
*(假设您使用BitmapSource
或WritableBitmap
显示Kinect的数据然后您只需将该位图添加到你的视频帧。希望这有帮助!
**如果您使用WritableBitmap
,convert it to a BitmapImage
,则convert that to a Bitmap
*