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

Delphi Delphi OpenCV 에 관하여...

2019.04.11 19:27

아크나톤 조회 수:1661

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

- 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 15768
공지 유용한 관련 사이트 관리자2 2014.03.20 54582
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97995
2459 컴파일시 Parameter 설정값 때문에 에러가 나옵니다. [1] file 대화마을 2017.03.02 193
2458 Xe5에서 안드로이드 버전 얼마까지 지원되나요? [1] 농가사랑 2016.06.01 193
2457 사진이 출력 되어야할 탭 으로만 가면 앱이 꺼집니다. [3] 루피 2016.11.07 193
2456 구글스토어 개발자콘솔 앱등록 관련 문의드립니다. 시리온느 2019.03.13 193
2455 VCL Style 지정시 MouseDown문제 크림슨킹 2019.04.16 193
2454 Find declaration 동작 이상 등 버그 [3] 아루스 2019.10.24 193
2453 10.3.3 samples 프로그램 FlashLight을 돌리면 오류가 납니다. [4] 델파이-앱 2020.02.19 193
2452 RAD Server에서 FileStream사용하여 응답보내기 [2] 초보입니다 2020.11.19 193
2451 RAD 스튜디오 베를린 10.1에서 인포믹스 DB를 지원하나요? 험프리 2016.12.08 194
2450 Delphi10.2 평가판 안드로이드 7 안되네요,. [3] 캔나영 2017.08.30 194
2449 JAR를 임포팅하여, 인터페이스로 구현된 콜백함수를 호출하지 못하고 있습니다. [2] 조르디 2018.03.27 194
2448 파이어닥 관련하여 궁금점이 있습니다. [1] 이즈로즈 2018.07.24 194
2447 android 64비트를 알아내는법? [2] 100jk 2019.06.09 194
2446 쇼핑몰 결제시스템관련 질문 유정 2019.06.24 194
2445 10 seattle 자체 버그 해결좀요 [1] 엠카바데로 2016.02.17 194
2444 문서편집기 기능에 대해 문의드립니다. [3] 김진규 2020.11.19 194
2443 [마이그레이션] FastReport [1] 개미 2020.11.24 194
2442 델파이 10 씨에틀을 사용중인데요.... [1] 도고래 2016.04.21 195
2441 커스텀 키패드를 만드려고 합니다. 블루히아신스 2016.10.20 195
2440 RAD Server에서 TFDConnection 트랜잭션 미작동 질문 [4] clogic 2020.04.20 195