有没有办法通过在NewFrame事件处理程序中实现一些代码将图像记录到视频文件(output.avi)中。另外我们怎样才能使文件的大小不大?
我有一个pictureBox1和一个button1,我使用下面的代码打开网络摄像头并在pictureBox1上显示输出
代码工作正常。但是,我需要实现一种方法将输出保存到视频文件而不是在pictureBox上显示
我使用下面的代码
private void button1_Click(object sender, EventArgs e)
{
videoSource = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString);
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
///
CloseVideoSource();
videoSource.Start();
}
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap img = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = img; // Something should go here to make the video file out of successive bitmaps ?
}
private void CloseVideoSource()
{
if (!(videoSource == null))
if (videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource = null;
}
}
答案 0 :(得分:1)
我认为你需要的只是使用VideoFileWriter类。 AForge.Net文档中有一个很好的demo。
请注意,您的代码需要包含AForge安装目录中Externals文件夹中的FFMPEG dll。