> 백엔드 개발 > C#.Net 튜토리얼 > AForge를 사용하여 카메라 녹화 기능을 구현하는 C# 사례

AForge를 사용하여 카메라 녹화 기능을 구현하는 C# 사례

黄舟
풀어 주다: 2017-09-21 11:29:01
원래의
4338명이 탐색했습니다.

이 글에서는 카메라 녹화를 구현하기 위해 C#에서 AForge를 호출하는 샘플 코드를 주로 소개합니다. 필요한 친구들은 참고해도 좋습니다.

1: 먼저 라이브러리 파일을 다운로드하세요>>

공식 웹사이트로 가서 찾으세요>>

이 튜토리얼의 전체 코드를 다운로드하세요>>

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: 수정 net2.0의 일부 항목과 호환되는 App.config:


<?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>
로그인 후 복사

그렇지 않으면 다음과 같습니다.

위 내용은 AForge를 사용하여 카메라 녹화 기능을 구현하는 C# 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿