C#使用网络摄像头控制台应用记录视频

时间:2017-10-21 07:01:40

标签: c# console-application webcam

我只想创建一个简单的控制台应用程序,它可以录制来自网络摄像头的视频,并在没有GUI界面的情况下将其保存到后台的文件路径中。我只是想从另一个程序调用它,并让它运行基于调用控制台应用程序的母程序的运行时。我发现了这个,How to capture image using webcam in console application ???然而它只捕获图像,我希望它能捕获一个视频。这可能在控制台应用程序?我只找到了使用win Form的例子。我是一个完整的新手。我不确定我在做什么,只是试图复制例子,所以请原谅我的代码。

using System;
using System.Drawing;

using AForge.Video.DirectShow;
using AForge.Video;
using AForge.Video.FFMPEG;

namespace WebCamVideo
{
class Program
{
    static FilterInfoCollection WebcamColl;
    static VideoCaptureDevice Device;


    static void Main(string[] args)
    {

        WebcamColl = new FilterInfoCollection(FilterCategory.VideoInputDevice);
        Console.WriteLine("Press Any Key To Capture Video !");
        Console.ReadKey();
        Device = new VideoCaptureDevice(WebcamColl[0].MonikerString);
        Device.NewFrame += Device_NewFrame;          
        Console.ReadLine();
    }

    static void Device_NewFrame(object sender, NewFrameEventArgs e)
    {
        int width = 320;
        int height = 240;

        VideoFileWriter FileWriter = new VideoFileWriter();
        FileWriter.Open(@"C:\Users\PCuser\desktop\test.avi", width, height, 25, VideoCodec.MPEG4, 100000);
        FileWriter.WriteVideoFrame((Bitmap)e.Frame.Clone());
        //add code to delay or set timer?
        FileWriter.Close();
        Console.WriteLine("Stopped .");

    }
}
}

0 个答案:

没有答案