C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64621] Re:Re:Re:9개의 영상을 하나로 합치려면..
달빛자르기 [clarkhaam] 849 읽음    2011-06-15 21:32
화상회의 시스템이라는 가정하에서,
서버에서 영상을 합성하는 업체가 있다고 하니, 놀랍군요.

CCTV여러개를 서버에서 합성해서 모니터링 요원에게 전송하는거라면,
좋지 못한 방법으루 구현을 했군이라고 차라리 이해를 하겠습니다.
화상회의 시스템에서는 말도 안된다고 생각합니다.

서버에서 9개 영상을 합성해서 보내면,
9개의 피어에서 온 영상을 각기 전송하는것보다 네트웍 부하를 줄일수 있다고 생각하시는 이유가 궁금합니다.

어차피 영상정보는 클라이언트에서 이미 코덱압축을 해서 보낼텐데요.
그걸 압축풀고, 9개 영상을 합성해서 다시 코덱압축하고 전송하는 방식으로 구상하시는건가요?

9개 영상을 합성하면 용량이 1개 영상크기로 줄어드는것도 아닐테고,
어차피 전체 네트웍사용량은 피어를 따로 관리하는것이랑 네트웍 부하는 그대로 아닌가요?

그리고, 9명의 유저중 한명의 네트웍 상황이 잠시 안좋아 질때나, 비정상종료의 경우 어떻게 처리하실건가요?
서버에서 합성하면 서버의 부담이 클걸 걱정하시는거 같은데
오히려 저는 처리하는데 걸리는 딜레이타임이 더욱 걱정스럽군요.

그리고, 9명의 영상을 한 화면에 보여준다면 한명한명의 화면이 크지도 않겠네요.
잘하면 프레임당 5~600MTU 로 처리할수도 있을거 같네요. 보통 1024MTU 정도면 미국 중국에 전송해도 확실치는 않지만 패킷이 쪼개지지 않을거 같습니다.
9명의 영상이라고 겁먹을거 없이 코덱만 잘 선택하면 큰문제 안될거 같은데요?

네트웍 대역폭 문제라면 그다지 추천하는 방법은 아니지만, 차라리 사용자가 모두 내부유저라면 멀티캐스팅을 고려해 보시는건 어떨까요.
그냥 정석대로 가시길 추천합니다.

현재의 구조라면

접속관리와 기타 중요한 제어명령은 TCP 전송
영상과 음성은 P2P연결로 UDP 전송, C/S 릴레이 서버구현
영상과 음성압축에 사용될 코덱은 상황에 맞게 선택하시고요

대충 이렇게 하시는게 맞을거 같군요.

거래처라고 하셨는데, 혹시 지금 계약중인가요?
제가 예전에 이런걸 만들어서 상용으로 서비스해본적이 있는데요.
혼자 밤새워서 6개월 걸렸습니다.
중간에 시행착오나 시간낭비 이런거 전혀 없었고요.

결국은 딜레이 시간, 음질이 관건이 되더군요.
영상정보는 별거 아니라고 생각하시면 됩니다.
영상이야 중간에 몇프레임 날려버리거나 뭐 그렇게 하면 되는데 음성은 그게 아니죠.

생각보다 굉장히 힘든 작업인데 참고하시기 바랍니다.


용맨소녀 님이 쓰신 글 :
: 답변 감사드리고요..
:
: 저도 상식적으로 부하가 엄청 걸릴 것 같은데.. 거래처에서 그렇게 하는 업체가 있다고 하니 함 보려고요..;; 채팅실 3,4개만 생겨도 부하 엄청 걸릴 것 같은데..
:
: 그리고, UDP를 해야겠군요..;; 아~
:
: 달빛자르기 님이 쓰신 글 :
: : 용맨소녀 님이 쓰신 글 :
: : : 9개의 영상이 있고요.. 이걸 하나의 영상으로 합치려고 합니다.
: : :
: : : 일렬로 이어서 합치는게 아니라 화면을 9등분해서 합치는 방식으로 하려면요..
: : :
: : : DirectShow를 이용해서 가능한지요? 듣기로 오버레이 방식인가로 자막과 영상을 합치는 뭐 그런 게 가능하다고 아는데요..
: : :
: : : 이런 영상 합치는 것도 그런식으로 해결할 수 있는지요?
: :
: : 우선, 원하시는 답변이 아니라 죄송합니다.
: :
: : 화상회의를 구상하고 계신거 같은데 접근방법에 문제가 있지 않을까 하는 생각이 드는군요.
: : 우선 영상을 9개 합친다고 하셨는데
: : 9개의 피어를 P2P로 구현하지 않고 C/S구조로 가시는군요.
: :
: : 패킷개수를 줄이기 위해서 그런 생각을 하신것 같은데 만일 그런 이유라면 굳이 영상을 합칠필요가 없이
: : 각 피어에서 온 패킷만 뭉쳐서 좀더 큰 덩어리로 만들어 전송하는것이 나을거 같군요.
: : 서버에서 영상을 합성한다?
: : 우선 서버에 너무 큰 부담이 되고 전송속도 지연이 생깁니다.
: : 클라이언트 측에서도 이미 합성되어서 전송된 데이터를 받는다면 향후 개발에 엄청난 애로가 있을거 같군요.
: : 9개의 화면중 한명을 클릭한다거나 이런식의 개발에 문제가 되겠죠.
: :
: : 그리고 그렇게 하면 각 클라이언트의 동기화는 어떻게 처리하실건지요?
: : 영상 동기화는 둘째치고, 분명 음성도 지원되어야 할텐데 한명의 영상과 음성을 동기화 하는것도 굉장히 힘든 일인데
: : 9명의 영상과 음성을 모두 동기화 한다?? 그것도 서버에서??
: :
: : 영상의 문제는 오히려 쉽죠.
: : 음성의 경우 0.3초 이상 지연이 된면 의사소통에 문제가 생기기 시작합니다.
: :
: : 이전의 질문을 볼때 TCP로 구현하시는거 같던데, 이것도 문제가 됩니다.
: : 음성과 영상의 전송은 UDP로 하셔야 합니다.
: : UDP로 하는게 더 좋다가 아니라 TCP로 하면 안됩니다.
: :
: : 저라면 통신은 UDP로 하고 9개의 피어를 모두 따로 관리하겠습니다.

+ -

관련 글 리스트
64587 9개의 영상을 하나로 합치려면.. 용맨소녀 961 2011/06/13
64622     Re:9개의 영상을 하나로 합치려면.. 아제나 1024 2011/06/16
64637         Re:Re:9개의 영상을 하나로 합치려면.. 용맨소녀 1327 2011/06/16
64602     Re:9개의 영상을 하나로 합치려면.. 달빛자르기 1200 2011/06/15
64603         Re:Re:9개의 영상을 하나로 합치려면.. 용맨소녀 905 2011/06/15
64621             Re:Re:Re:9개의 영상을 하나로 합치려면.. 달빛자르기 849 2011/06/15
64601     Re:9개의 영상을 하나로 합치려면.. 남병철.레조 1300 2011/06/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.