2013-11-05 1 views
0

C#으로 Axis IP 카메라에서 라이브 비디오를 가져오고 싶습니다. 소켓 프로그래밍을 사용하여 패킷을 가져 와서 비디오를 가져 오기 위해 비 직렬화하고 싶습니다. 이것을 할 방법이 있습니까?C에서 소켓 프로그래밍을 사용하여 IP 카메라에서 캡처하는 방법 #

편집 : 동영상에 있습니다

http://root:[email protected]/axis-cgi/mjpg/video.cgi 

내 코드는 다음과 같습니다 .. 사용자 이름과 암호를 추가 할 수있는 방법입니다

Socket sock = new Socket(AddressFamily.InterNetwork 
    , SocketType.Stream, ProtocolType.Tcp);  
      sock.Connect("192.168.0.90", 80); 

      if (sock.Connected) 
      { 
       byte[] bytes = new byte[256]; 

       int i = sock.Receive(bytes); 
      } 

그러나 내가 어떤 일을받을 수 없거나 주소 지정을위한 완전한 주소?

+0

첫째, 올바른 주소를 찾아보십시오. 브라우저가 지정된 IP를 가리키고 이미지를 제공하는 데 사용되는 정확한 URL을 찾습니다. 이 간단한 접근 방식을 사용하면 비디오 스트림이 아닌 단일 이미지 만 얻을 수 있지만 처음에는 쉽게 시작할 수 있습니다. – PMF

+0

@PMF 나는 ip가 192.168.0.90이고 이것이 사용자 이름과 암호를 가지고 있다고 확신한다. 그러나 사용자와 암호를 추가하는 방법을 모르며 올바른 포트를 모르며 그림을 얻는 방법을 모르겠습니다. 그것을하기위한 코드의 시나리오는 무엇입니까? – user2855778

+0

웹 브라우저로 사진을 찍을 수 있습니까? 그렇다면 이미지의 URL을 코드에 복사하십시오. 그것이 당신이 사용해야하는 주소입니다. 포트는 대부분 80 일 것입니다. – PMF

답변

0

오픈 소스 라이브러리를 재사용 할 수 있다면, AForge를 살펴보십시오.

http://en.wikipedia.org/wiki/AForge.NET

그것은 IP 카메라의 무리를 처리합니다.


기존 라이브러리를 사용하고 싶지 않으면 기존 클라이언트를 다른 언어로 변환 할 수 있습니다. 다음은 nodejs의 자바 스크립트로 작성된 것입니다. 이 클라이언트는 http 클라이언트를 통해 연결하고 이미지를 디스크에 저장합니다.

https://github.com/mjohnsullivan/axiscam

나는 그것을 구현 믿지 않는 HttpClient를하거나 바로 얻을 수있는 복잡한 운동이기 때문에 처음부터 파일 시스템 작가.

+0

Aforge 또는 Emgu CV와 같은 라이브러리를 사용하고 싶지 않습니다. – user2855778

+0

아무런 문제가 없지만 제공된 코드 예제에서는 이러한 코드베이스를 작성하는 데 도움이 필요하다는 것을 보여줍니다. AForge는 이미 그것을 구현했습니다.재사용하지 말고 무엇을 해야할지 배우기 위해 프로그래밍한다면 http 클라이언트 나 서버가 필요한지, 제대로 연결될 때 카메라가 사용하는 프로토콜 등을 알아야합니다. 구현하려는 구성 요소를 선택하는 것이 더 쉬울 것입니다. – JTew

0

카메라의 클라이언트가 아니므로 청취자는 "서버"이므로 작동하지 않습니다.

jpg 이미지의 cam = continuous 스트림에서 mjpg 스트림을 얻을 수 있습니다.

는 코드 플렉스에 예를 들어 MJPG 디코더가 스트림에서 이미지를 효율적으로 활용하려면 다음 http://mjpeg.codeplex.com/

관련 문제