IT정보공유/C#

C# EmguCV IP카메라 여러개 연결 문제 해결

알지오™ 2019. 10. 16.

지난번에 EmguCV 최신버전인 v4.1.1.3497버전에 멀티쓰레딩 버그가 있는거 같다고 포스팅을 했었습니다.

사실 이게 Wrapper 라이브러리인 Emgu.CV의 문제인지, 

OpenCV의 문제인지 그것도 아니면 ffmpeg의 문제인지 잘 모르겠습니다.

 

[IT정보공유/C#] - C# EmguCV 최신버전 v4.1.1.3497 멀티쓰레딩 버그 있는것 같네요.

 

C# EmguCV 최신버전 v4.1.1.3497 멀티쓰레딩 버그 있는것 같네요.

IP카메라 영상을 화면에 표출하기 위해 크로스플랫폼 라이브러리인 Emgu CV를 사용해 보고 있습니다. 다행이 일전에 일본인 개발자가 만들었다는 OpenCVSharp을 다뤄봐서 비교적 쉽게 EmguCV도 사용할 수 있었습니..

bigenergy.tistory.com


왜냐면, c#에서 사용할 수 있는 대표적인 OpenCV Wraaper Library인 OpenCVSharp과

EmguCV 두 라이브러리의 최신 버전에서 동일한 문제가 발생했습니다.


OpenCVSharp의 경우 문제가 된 버전은 v.4.1.0.20190416 버전이고

VideoCapture 생성자에서 Freezing 현상이 발생했습니다.

어쨌든 두 라이브러리가 OpenCV 4.x 버전의 Wraaper 이기 때문에 OpenCV 버그일 것으로 추측이 됩니다.

그래서 버전을 2.x 대로 낮추니 OpenCVSharp, EmguCV 두 라이브러리 모두 다수의 카메라를 연결할 때, Hang, Freezing 현상없이 정상적으로 먼저 연결된 카메라 부터 연결이 되었네요.

그러나.. 즐거움도 잠시 OpenCV 2.x 대를 사용하니 ffmpeg codec 버전이 낮아서 그런지 
IP카메라의 RTSP Stream 영상이 조금씩 깨지는 현상이 발생하네요. 

그래서 다시 EmguCV v3.x로 바꿨습니다.

 

이 부분은 버전을 낮춰서 해결을 했으며, 현재까지는 대체 할수 있는 라이브러리가 없기 때문에 EmguCV v3.1.0.1로 개발을 진행할 예정입니다.

결과적으로 카메라 다중 접속시 행걸리면서 다중처리 되지 않는 문제 때문에 고생하다가 

최종적으로 emgucv v3.1.0.1 버전으로 사용하기로 결정했네요.

해당 문제에 대해서는 인터넷으로 검색할 때, emgucv hang, emgucv freez 등 자료를 아무리 찾아봐도 답이 없더라고요.

댓글

💲 추천 글