BATCAM FX의 데이터는 RTSP를 통한 카메라 원본 영상 데이터와 WebSocket을 통한 Protobuf 프로토콜로 인코딩 된 데이터를 송신합니다.
따라서 해당 기기를 사용하는 개인, 혹은 조직에서 오버레이 된 영상을 취득하고자 하는 경우, 아래와 같은 순서로 영상을 합성하여야 합니다.

- RTSP에서 영상을 수신합니다.
- WebSocket을 통해 Protobuf 형식으로 인코딩된 Beamforming 메시지를 수신하고, 이를 디코딩하여 총 1200개의 Float 값으로 구성된 배열(Float Array)로 변환합니다.
- Float Array를 인터폴레이션하여 오버레이 할 이미지를 생성합니다.
- RTSP 영상 스트림과 수신된 음원 데이터를 조합하여 실시간으로 Beamforming 오버레이 영상을 생성할 수 있습니다.
Protobuf와 WebSocket을 이용하여 데이터를 주고받는 예제는 당사 GitHub에 예제로써 공개되어 있습니다.
해당 예제는 위의 과정을 전부 포함하고 있으며, GUI 예제 또한 포함되어 있습니다.
다음은 개발하실 때 참고하시면 도움이 될 내용입니다:
- WebSocket을 연결하실 때, 주소만 사용하면 되는 것이 아니라 WebSocket SubProtocol을 반드시 'Subscribe'로 지정해주셔야 합니다.
- WebSocket을 연결한 이후 바로 Beamforming 메세지가 수신되는 것이 아니라, Protobuf 사전 생성 코드 파일에서 제공되는 'Subscribe' 객체를 이용하여, Beamforming 데이터에 대한 구독을 카메라에 전송해주셔야 합니다. (참고 링크)
- WebSocket 연결 시에도, RTSP와 같이 사용자 인증이 필요합니다.
사용하시는 혹은 사용하실 WebSocket 라이브러리가 인증을 지원하는 경우에는 Username과 Password를 제공하시고 (참고 링크),
지원하지 않는 경우에는 WebSocket 연결을 요청하는 Header에 Authorization 키를 추가하시고, "{username}:{password}" 문자열을 base64로 인코딩하시어 포함하셔야 합니다.
WebSocket을 통해 전송되는 데이터에 대한 포맷은 당사가 제공하는 API 문서의 WebSocket 문단을 참고하시기 바랍니다.
추가적으로, Protobuf를 인코딩/디코딩 하기 위해 필요한 사전 생성 파일은 당사 OSS GitLab에서 확인하실 수 있습니다.