如何录制多个源摄像头/ ip cam视频流?

时间:2012-03-11 12:53:59

标签: .net video

我需要构建一个简单的应用程序,允许从ipcam / webcam录制2个或更多视频流(最多4个),就像一个非常简单的监控系统。 您可以向我指出哪些组件(dll或类似组件)?

1 个答案:

答案 0 :(得分:1)

它将是一个多线程应用程序。 其中每个线程(工作者)从源(usb视频)记录到目标(文件流)。

你可以做这样的事情(伪c#) 我希望它能给你一个基本的想法...

class Worker
{
    bool _record;
    ISource _source;
    IDestination _dest;

    public Worker(ISource source, IDestination dest)
    {
        _source = source;
        _dest = dest;
    }

    public void Record() 
    {
        lock(this)
            _record = true;
        pos = 0;
        while(_record)
        {
            var buffer = new byte[4096];
            len = _source.Read(pos, buffer);
            pos += len;
            dest.Write(buffer, len);
        }
    }

    public void Stop() 
    {
        lock (this)
            _record = false;
    }
}

class Program
{
   public static Main()
   {
      var w1 = new Worker(new UsbVideo(), new FileDestination());
      Thread.Start(w1.Record);

      ...

      Console.Readline();
      w1.Stop();
   }
}