우선 1회때 기초적인 부분을 배웠으니, 이젠 바로 실전으로 들어가 보겠습니다.
제가 요즘 화상강의 프로그래밍 책을 써볼려고 정리하는 내용을 많이 인용하겠습니다.
책 나오면 사주실분~ 손!~~~^^ㅋ
암튼~ 시작하겠습니다.
우선 어떤 프로그램을 만들것인지 설계에 대해서 이번시간엔 알아보도록 하겠습니다.
설계
<목표>
1. 웹캠과 마이크를 이용한 화상강의 지원.
2. 화이트 보드 지원.
3. P2P통신 지원.
1. 웹캠과 마이크를 이용한 화상강의 지원.
위에서 보는 것과 같이 목표는 크게 4가지로 잡는다. 우선 1번 웹캠과 마이크를 이용한 화상강의를 지원하기 위해서 개발방법은 크게 VFW(VIDEO FOR WINDOW)방법과 DIRECTSHOW를 이용하는 방법이 있다. VFW는 과거에 많이 사용하던 LOW LEAVEL 단의 윈도우 API라고 생각하면 된다. 그리고 DIRECTSHOW는 마이크로 소프트에서 지원하는 개발 SDK에 포함되어 있는 멀티미디어 개발 SDK라고 이해하면 된다. 과거에는 많은 개발자들이 VFW SDK를 이용하여 많이 개발을 했었지만, 근래에는 DIRECTSHOW로 개발하는 추세이다.그럼 각각의 방법에는 어떤 장단점이 있는지 확인해 보고 넘어가도록 하자.
--------------------------------------------------------------------------
방법 VFW DIRECTSHOW
--------------------------------------------------------------------------
구동방식 CALLBACK방식 EVENTDRIVEN방식
--------------------------------------------------------------------------
최신 기기지원 지원못하는것 존재 대부분 지원
--------------------------------------------------------------------------
CPU점유율 적다. 높다
--------------------------------------------------------------------------
구현 난이도 중 상
--------------------------------------------------------------------------
우선 웹캠과 마이크를 지원하기 위해서는 각각 어떤 SDK를 사용할지를 먼저 정해야 한다.
먼저 웹캠은 위에서 말한 것처럼 크게 VFW를 사용하여 웹캠을 제어하고, 데이터를 가공하는 방법이 있고, DIRECTSHOW를 사용하여 웹캠을 제어하고, 데이터를 가공하는 방법이 있다.
필자가 경험상 사용해본 결과,
추천할 만한 것은 DIRECTSHOW방식을 추천한다. 우선 현재많은 개발자들이 사용하고 있으며, 어떤 컨트롤에 대한 제어권이 이벤트방식으로 넘어오기 때문에 프로그램 코드를 작성할 때 , 상당히 깔끔하고 명확한 프로그래밍을 할수 있다. 그리고 VFW같은 경우는 나온지 오래된 SDK이기 때문에 최신 기기에 대한 지원이 되지 않는 경우도 있다. 또한 마지막으로 DIRECTSHOW를 사용하면 VFW에서는 영상의 변형이나 효과를 직접 이미지 바이트 조작을 통해 하드코딩해야하는 반면, 필터를 DIRECTSHOW에 붙여넣는 방식으로 쉽게 그리고 점더 유연하게 영상의 변형이나 효과를 줄수있다.물론 경험에 따르면 VFW가 DIRECTSHOW보다 개발의 난이도가 좀더 적은 점이나. CPU점유율이 좀더 낮다는 점이 있지만, 전체적인점으로 볼 때 DIRECTSHOW SDK를 사용하는 것을 추천하고 싶다.
따라서 우리도 웹캠을 제어하고 웹캠에서 생성된 이미지 데이터를 사용하는 부분에는 DIRECTSHOW SDK를 사용하도록 하겠다.
우선은 오늘은 웹캠에 대한 기본적인 지식을 배워보았습니다.
다음번에는 오디오에 대해서 알아보도록 하겠습니다.
즐거운 프로그래밍 하자구요!!
'화상강의프로젝트' 카테고리의 다른 글
| 화상강의 솔류션 개발 강좌 2회 (0) | 2008/08/01 |
|---|---|
| 화상강의 프로그램을 만들기 위한 준비. (1) | 2008/06/17 |
| 화상강의 솔류션 개발 강좌 1회 (2) | 2008/06/17 |

