如何记录多个源摄像头/ IP摄像头视频流?

问题描述:

我需要构建一个简单的应用程序,允许从ipcam/webcam中录制2个或更多视频流(最多4个),就像一个非常简单的监控系统。 什么组件(DLL或类似的),你可以指示给我?如何记录多个源摄像头/ IP摄像头视频流?

它将是一个多线程应用程序。其中每个线程(工作人员)从源(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(); 
    } 
}