- 서버: 델파이
- 클라이언트: "안드로이드 + ffmpeg" or "MS-Windows + ffmpeg"
어제 1차 개발일정을 마치고 프로젝트를 간략하게 정리해 봅니다. 모든 프로젝트를 정리해야지 하면서도 잘 안되는 군요 ^^;
이미 상용 미디어 서버가 시장을 장악한 상황에서 미디어 서버를 직접 개발하게 된 이유는 다음과 같습니다.
- 실시간 방송 중 광고 송출
- VOD 방송 중 배속 재생 등을 지원하는 미디어 서버 및 클라이언트 개발
- VOD 방송 중 광고 송출
- 통신사에서 RTSP를 막아버리고 있는 가 봅니다. 이것도 하나의 개발 이유
제 다른 포스트에서도 썼던 기억이 있지만, 현재 미디어 서버에서 제공하는 배속은 제약사항 때문에 고객의 니즈를 만족시키지 못하여, 직접 제작을 의뢰 받아서 제작 중 입니다.
아래는 실시간 방송 모듈 테스트 화면입니다. 원본 영상의 해상도는 640*480 입니다.
서버의 Class Diagram
[그림 1]
FFServer: 미디어 서버 클래스
FFConnection: 사용자의 컨넥션을 관리
MediaSourceList: 미디어서버를 통해 배포할 동영상의 소스
PackageBuffer: 동영상의 프레임 정보를 묶어서 관리
Package: 프레임의 묶음
기타 클래스는 도면에서 생략하였음
클라이언트의 Class Diagram
[그림 2]
FFClient: 미디어 서버에 접속하여 동영상을 재상하는 클래스
State관련 클래스들: 클라이언트의 State Diagram 참고
StreamPlayer: 서버로부터 전송 받은 동영상 정보를 재생하는 클래스
기타 클래스는 도면에서 생략하였음
클라이언트의 State Diagram
[그림 3]
- 스마트폰의 특성상 네트워크가 불안정해질 수 있기 때문에 의도하지 않게 접속이 끊어졌을 경우에는 재접속하여 재생을 계속 이어가도록 했습니다.