메뉴 건너뛰기

XEDITION

C#

https://mingtrace.tistory.com/440


C#을 이용해서 IP Camera View 제작 환경

회사 업무 관련하여서 C#을 이용하여 IP Camera를 보는 프로그램을 작성하게 되었어요.

IP Camera의 RSTP Address를 사용하여 View 기능을 구현했어요.

 

사용 환경

1. IDE : Visual Studio Professional 2013

2. IP Camera : EVC-2MD24S

3. DLL : FFmpeg.AutoGen, OpenCvSharp

4. .NET Framework Version : 4.6.1

 

영상 처리를 해주는 OpenCvSharp와 영상 재생을 위해서 FFmpeg를 NuGet 패키지에서 다운로드하여 참조했어요.

 

 

 

EVC-2MD24S IP Camera RTSP Address 획득은 웹브라우저를 이용하여 카메라에 접속하여,

SETUP의 NETWORK->RTSP->ONVIF에서 RTSP ADDRESS의 SUB STREAM을 이용하였어요.

 

SUB STREAM RTSP 주소 rtsp://192.168.100.101/stream2

 

 

C#을 이용해서 IP Camera View 소스

Test가 목적이었기 때문에,

폼 디자인은 영상이 출력될 PictureBox와 영상의 시작을 알리는 Button만 넣었어요.

 

 

그리고, 별도의 예외처리는 하지 않았다는 점을 참고해주세요.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

using OpenCvSharp;
using FFmpeg;

namespace Camera_OpenCV
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        VideoCapture camera;        

        private void button1_Click(object sender, EventArgs e)
        {
            string RSTPaddr = "rtsp://192.168.100.101/stream2";
                        
            camera = new VideoCapture(RSTPaddr);

            using(Mat cameraImage = new Mat)
            {
                while(true)
                {
                    if (!camera.Read(cameraImage))
                    {
                        Cv2.WaitKey();
                    }
                    if (cameraImage.Size().Width > 0 && cameraImage.Size().Height > 0)
                    {
                        Bitmap bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(cameraImage);
                        pictureBox1.Image = bitmap;
                    }
                    if(Cv2.WaitKey(1) >= 0)
                        break;
                }
            }
        }
    }
}

 

C#을 이용해서 IP Camera View 소스 간단 설명

프로그램에 대해서 간단히 설명을 드릴게요.

 

OpenCv의 VideoCapture를 사용하여 RTSP 주소 IP Camera 영상 정보 가져오는 부분이에요.

camera = new VideoCapture(RSTPaddr);

Mat를 사용하여 IP Camera 영상을 저장하는 부분이에요.

using(Mat cameraImage = new Mat())

IP Camera의 영상을 PictureBox에 그리는 부분이에요.

Bitmap bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(cameraImage);
pictureBox1.Image = bitmap;

 

C#을 이용해서 IP Camera View 프로그램 동작 

Test 확인을 위하여 VideoLAN 프로그램 VLC 미디어 재생기를 설치했어요.

 

https://mingtrace.tistory.com/441

프로그램을 동작시켜 봤어요.

 

 

정상적으로 동작하는 것을 확인했어요.

 

VLC 미디어 재생기와 비교를 해봤어요.

 

 

영상이 스트림이 되는 것은 제가 작성한 프로그램이 반응 속도는 빨랐어요.

- 한 분에게 부탁하여, 잠시 지나가 보라고 했었어요.

 

 

VLC의 기능이 많아서 그렇지 않을까 생각됩니다.

 

IP 카메라의 RTSP 주소를 이용하여,

NuGet 패키지 OpenCV와 FFmpeg를 사용하여 스트리밍을 재생하는 프로그램을 제작해 보았어요^^

 


 

 

 

위로