c#VideoFileWriter属性

c#VideoFileWriter属性,c#,video,aforge,screen-recording,C#,Video,Aforge,Screen Recording,我想在使用程序时录制屏幕 现在我使用的代码是: recorder.Open(pathFolder+GetCurrentDateAndTime() + ".mp4", Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenWidth), Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenHeight), 10, VideoCodec.MPEG4, 200000

我想在使用程序时录制屏幕

现在我使用的代码是:

recorder.Open(pathFolder+GetCurrentDateAndTime() + ".mp4", Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenWidth), Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenHeight), 10, VideoCodec.MPEG4, 2000000);
记录不错,但速度太快了


我应该更改什么以防止其速度过快并处于正常速度?

首先,初始化计时器控件并为该控件分配属性。然后,为该计时器创建一个勾选事件

videoTimer=新计时器();视频计时器。间隔=20; videoTimer.Tick+=videoTimer\u Tick

vfWriter=新的VideoFileWriter();vfWriter.Open(“Exported_Video.avi”,800600,25,VideoCodec.mpeg410000)

然后创建一个开始按钮来启动计时器

private void btnStart_Click(object sender, EventArgs e) { videoTimer.Start(); }
private void videoTimer_Tick(object sender, EventArgs e){bp = new Bitmap(800, 600); gr = Graphics.FromImage(bp);gr.CopyFromSceen(0, 0, 0, 0, new Size(bp.Width, bp.Height));
pictureBox1.Image = bp;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
vfWriter.WriteVideoFrame(bp);
在计时器勾选事件中,使用VideoFileWriter的大小创建位图图像,然后捕获屏幕并将其写入位图图像。然后,将图像写入VideoFileWriter

private void btnStart_Click(object sender, EventArgs e) { videoTimer.Start(); }
private void videoTimer_Tick(object sender, EventArgs e){bp = new Bitmap(800, 600); gr = Graphics.FromImage(bp);gr.CopyFromSceen(0, 0, 0, 0, new Size(bp.Width, bp.Height));
pictureBox1.Image = bp;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
vfWriter.WriteVideoFrame(bp);
}

最后,创建一个停止按钮来停止计时器并保存文件

private void btnStop_Click(object sender, EventArgs e){ videoTimer.Stop();vfWriter.Close();}