Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用网络摄像头控制台应用程序录制视频_C#_Console Application_Webcam - Fatal编程技术网

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

C#使用网络摄像头控制台应用程序录制视频,c#,console-application,webcam,C#,Console Application,Webcam,我只想制作一个简单的控制台应用程序,可以从网络摄像头录制视频并将其保存到后台的文件路径,而无需GUI界面。我只想从另一个程序调用它,并让它基于调用控制台应用程序的母程序的运行时运行。我发现了这个,但是它只是捕获一个图像,我希望它捕获一个视频。这在控制台应用程序中可能吗?我只找到了使用win Form的示例。我是个十足的新手。我不确定我在做什么,只是试图复制示例,所以请原谅我的代码 using System; using System.Drawing; using AForge.Video.Di

我只想制作一个简单的控制台应用程序,可以从网络摄像头录制视频并将其保存到后台的文件路径,而无需GUI界面。我只想从另一个程序调用它,并让它基于调用控制台应用程序的母程序的运行时运行。我发现了这个,但是它只是捕获一个图像,我希望它捕获一个视频。这在控制台应用程序中可能吗?我只找到了使用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 .");

    }
}
}