C\#AForge 와 결합 하여 카메라 녹화 실현

2538 단어 C#카메라 녹화
MP4 로 출력 하려 면 ffmpeg 과 관련 된 파일 이 필요 합 니 다.제 가 포장 한 라 이브 러 리 는 이미 가 져 왔 습 니 다.홈 페이지 에서 찾 은 라 이브 러 리 는 이 디 렉 터 리 에서 찾 을 수 있 습 니 다.

2:
이 참조 추가:

3:
두 전역 변수:

//       
 private VideoCaptureDevice Camera = null;
 //               
 private VideoFileWriter VideoOutPut = new VideoFileWriter();
시작 코드:

//       
var devs = new FilterInfoCollection(FilterCategory.VideoInputDevice);

//        (    1 )
Camera = new VideoCaptureDevice(devs[0].MonikerString);

//      ( , ,  ,      )VideoCapabilities                ,            ,    1 
Camera.VideoResolution = Camera.VideoCapabilities[0];

//    ,aforge              
Camera.NewFrame += Camera_NewFrame;

//     
Camera.Start();

//      (       ,       ),      
VideoOutPut.Open("E:/VIDEO.MP4", 
    Camera.VideoResolution.FrameSize.Width, 
    Camera.VideoResolution.FrameSize.Height, 
    Camera.VideoResolution.AverageFrameRate, 
    VideoCodec.MPEG4, 
    Camera.VideoResolution.BitCount);

 AForge           :

//    
private Bitmap bmp = new Bitmap(1, 1);

//       
private void Camera_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
  //    
  VideoOutPut.WriteVideoFrame(eventArgs.Frame);
  lock (bmp)
  {
    //       
    bmp.Dispose();
    //      
    bmp = eventArgs.Frame.Clone() as Bitmap;
  }
}
끝 코드:

      //    
      Camera.Stop();

      //      ,       ,           ,    
      VideoOutPut.Close();
4:
App.config 를 수정 하고 net 2.0 을 호 환 하 는 것:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
 </startup>
 <supportedRuntime version="v2.0.50727"/>
</configuration>

좋은 웹페이지 즐겨찾기