성능문제가 있다고 하셨는데… 일단 VLC 플레이어로 CCTV 영상을 몇 개까지 띄울수 있는지 시험부터 해보세요.
VLC 플레이어가 RTSP 플레이어 중에 테스트용으로 제일 많이 쓰입니다.(거의 CCTV 업계표준 수준)
그리고 VLC 플레이어 라이브러리가 ocx 컴포넌트 형태로 제공됩니다.
클라이언트에서는 디코딩 모듈을 따로 준비해두고 인코딩 서버에서 패킷이 들어오면
DX 의 surface 에 디코딩된 메모리를 복사합니다.
그리고 WPF 의 VisualBrush 같은 걸로 대상 surface 의 영역 메모리 정보를 가져와 Rectangle 같은 컨트롤의 Fill 속성에 할당하는 거죠.
(그러면 DX 의 surface 에 올라간 디코딩된 영상이 VisualBrush에서 Render 됩니다. DX 에서 Render 호출 X)
그렇게 이미지를 가져온 이후 이미지의 업데이트는 WPF 의 CompositionTarget.Rendering 이벤트에 맞춰서 Backbuffer 를 업데이트 하는 방식으로 사용하면 됩니다.
근데 제가 얘기한 게 좀 오래된 방식이라… 요즘에는 어떻게 하는 지 모르겠군요.
저게 DX9 으로 작업하던 시절 얘기니까… 근데 뭐 그때에도 영상 FHD영상 400~500 정도는 문제 없이 렌더링했어요.
저는 영상 보다는 영상을 렌더링하는 WPF 쪽 작업 위주로 해서, 자세한 건 다른 분들이 알려주실 겁니닷ㅋㅅㅋ