자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Delphi Delphi OpenCV 에 관하여...

2019.04.11 19:27

아크나톤 조회 수:1642

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------

- width=2560 정도의 H.264엔코딩된 영상을 RTSP로 Open

- 카메라 15대의 영상을 하나의 모니터에 디스플레이

- 위와 같은 모니터가 약 10대 (즉, 하나의 시스템에서 rtsp영상을 최대 150개를 재생하는 셈)

 

한번 해보려고 합니다.

 

라이브러리는 Laex Delphi OpenCV 를 사용하는게 일단 가장 빠른거 같아 시도해 봄.

 

 

- Multi-Device Application 으로

- 그냥 OpenCV로 영상을 Capture하면 영상이 클 경우 다 깨져서 들어오니 TocvFFMpegIPCamSource로

  rtsp영상을 불러옴.

- 코덱도 잘 찾아 영상을 TImage 또는 TocvViewFMX에 어떤 필터링도 없이 TocvFFMPegIPCamSource의 IocvImage 원영상을 뿌려줌.

 

[테스트 해본 결과]

1. 다채널 영상 뷰어로 부적합.

   Intel(R) Core(TM) i5-7500 4Core, Ram 8Gb에서 위 조건의 영상 1개를 여는데 CPU 점유율은 10~14%.

   소스 수정해서 TocvFFMpegIPCamSource의 스레드 죽여도 봄(재생 속도 향상있음).

   Application.OnIdle 하에서 9채널정도는 부드럽게 돌아감(CPU점유율의 여유가 있으니까)

   TocvFFMpegIPCamSource.OnImage를 사용해보기도 함(Application.OnIdle때보다 영상재생 부드럽지 못함).

2. FMX에서 개발할 경우이므로 어떤 코딩 없이 GPU가속은 하는것으로 보이는데 Windows Apllication에서 테스트할때와

   퍼포먼스에 차이가 없음.

   작업관리자에서만 확인한 바 Windows Application에서는 GPU가 0%로 멍때리고 있던 것이 FMX에서는 35%~45%까지

   매우 열심히 뭔가를 하고 있다고 나오는데 왜 CPU 점유율은 영상 9개만 띄우면 점유율 100%에 육박하는지 지식이 짧아

   현상만 파악함.

3. 동일한 영상을 PasLibVLCPlayer에서 돌리면 CPU점유율 각각 1~2% 수준이라 깜놀.(곰플레이어는 6~8% 수준)

4-1. 해당 라이브러리 개발자 Leax에게 질의한 결과.

   TocvFFMpegIPCamSource는 다채널 뷰어로 적합하지 않다! 그리고 델파이 스레드는 그닥 훌륭하지 않다 bla bla bla...로 결론.

4-2. Mitov Software 역시 마찬가지...

      VideoLab 컴포넌트 겁나 많고 가지고 놀게 많다.

      RTSP 영상 9개 화면에 띄우는데 코딩 제로. 3분이면 끝나니 대단하죠.

      RTSP영상을 로딩하는 컴포넌트는 TVLIPCamera외 선택의 여지가 없으므로 테스트해본 결과 역시 문제는 CPU점유율.

      6개만 열어도 CPU점유율은 꽉 차버립니다 ㅠ.ㅠ

      하지만.... OpenCV 날코딩 안해도 되는 이점은 분명히 고무적이고 놀라운 일이긴 하나.

      그래픽 카드 갯수와 gpu가속 지정까지 가능하지만 Win32에서만 일부잘 쓰지 않는 컴퍼넌트에서만 국한된 점.

      Mitov씨가 귀찮을 정도로 질문을 해본 결과, 현재 FMX에서 Win VCL Application에서 지원하는 컴퍼넌트 포함할 계획이고 FMX에서는 굳이 GPU가속은 별도로 신경 안써도 되는 부분이라 생각한다고 하심.

(위의 두 라이브러리는 감히 폄하는거 아닙니다;; 대단하지요.  제가 목표치가 높은 데모를 계획하고 있다보니 그점에 핵심을 맞춘것이라...)

5. 오기가 생겨 TocvFFMpeg소스에서 스레드도 죽여보고 ffMpeg 헤더파일 libavcodec에서 Av_Find_Codec2도 내맘대로 코덱을 지정해서 테스트해봤는데 지식이 짧아 포기.

하나의 시스템에서 rtsp영상 150개를 재생하는데 끊김이 없어야하면서 이 것을 만족하려면 PasLibVlcPlayer가 답인가...

그렇다면 영상 ROI는 어떻게든 VLC 라이브러리에서 한다 치더라도 영상 ROI한 4개의 영상(이미지)을 것을 하나의 영상으로 Merge한다거나 OpenCV에서 할 수 있는 장난질을 전혀 못하게 된다는 뜻인데....

가능성 여부만 타진하기 위해 데모 프로젝트 하나 만드는데 이런 델파이 라이브러리는 정말 대단한 것 같습니다.

지식이 짧아 아직 다른 델파이 FFMpeg 라이브러리로 영상 출력을 VLC 수준의 디코딩도 못해봤고 GPU 디코딩 테스트도 못해봤지만 요즘 영상관련 프로젝트 개발자들도 아주 편하게 안되면 VLC 라이브러리! 라고 조언을 하는지라;;

VLC에서 RTSP 영상을 열었을때 CPU 점유율 0.5%라는 숫자만 쳐다보면서 침만 꿀꺽 삼키고 있습니다;;

그냥 간단히 VLC는 0.5%이고 곰플레이어는 6%이고 델파이에서 FFMpeg 라이브러리를 사용하면 10%가 넘을까요?라고 질문하면 되는데 너무 성의 없을거 같아 경험담을 적다 보니 길어졌네요.

vlc는 사람이 만든거 맞나 하는 재미난 생각도 한번 해봤습니다^^

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15634
공지 유용한 관련 사이트 관리자2 2014.03.20 54464
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97828
1919 실행 시 Down Run Away Error..가 발생합니다 [1] sm 2017.09.21 76
1918 반투명 판넬을 만들고 싶습니다. [1] 원우아빠 2017.09.20 735
1917 XE5 IOS 10.3 지원 문의 [1] 성후아빠 2017.09.19 137
1916 TJsonSerializer.Serializer 버그? 오류? 같은 경험이 있으신분 계실가요? [2] 가나당 2017.09.14 166
1915 Login 시 오류 메시지 조치 방법 문의드립니다. [1] 다니엘 2017.09.14 234
1914 지뢰찾기를 만드는중에 질문이 있어서 글올립니다. [1] file 땅콩맨 2017.09.15 189
1913 Dataset not in edit or insert mode 라는 에러.. [2] 이성재 2017.09.16 1128
1912 TWebBrowser 관련문의 [1] 아가머하노 2017.09.17 279
1911 BLE 페어링 [1] Brian 2017.09.14 432
1910 [베를린] 데이터스냅 서버의 핸들(메모리 릭)이 계속 증가하는 것 해결하지 못하고... 만세... [8] file 델사냥 2016.05.26 505
1909 Android Virtual Device 에서 한글 깨지거나 보이지 않는 문제 어떻게 해결하면 되나요? [1] delphi 2017.09.08 109
1908 안드로이드 스튜디오 전화걸기 기능 [1] 서태원 2017.09.06 1411
1907 Deploy화면에서 Remote 연결 안됨 [1] 델파초보 2017.09.08 204
1906 [자답]Delphi XE 10.2.1 버전 설치후 FireDAC Consol 모드에서 MySql 에러발생 [1] file 별땅땅쫑 2017.09.08 218
1905 OpenDialog 네트워크드라이브가 표시되지 않습니다. [10] allright 2016.11.11 3004
1904 [공유] PDF파일로 저장할 수 있는 컴포넌트가 필요합니다. 험프리 2017.09.08 2666
1903 [문의] Cannot Run on an Android Device or Emulator 오류 입니다 [2] file delphi 2017.09.06 205
1902 Datasnap에서 Servercontainer에 timer 컴포넌트 사용 [1] file 파란하늘 2017.09.06 107
1901 [문의] 릴리즈 모드에서 컴파일 시 에러가 발생합니다 [2] file 손보라 2017.08.31 456
1900 Delphi10.2 평가판 안드로이드 7 안되네요,. [3] 캔나영 2017.08.30 194