如何用位图创建视频文件?

时间:2014-03-11 14:29:22

标签: c# bitmap aforge

有没有办法通过在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;
        }
}

1 个答案:

答案 0 :(得分:1)

我认为你需要的只是使用VideoFileWriter类。 AForge.Net文档中有一个很好的demo

请注意,您的代码需要包含AForge安装目录中Externals文件夹中的FFMPEG dll。