DirectShow 많이 들어보셨을 겁니다.
DirectX에 들어있는것중 하나이지요.
DirectX에는 DirectSound, DirectMusic, DirectShow 가 있습니다.
DirectShow는 멀티미디어의 통합관리를 한다고 생각하시면 됩니다.
저도 배우면서 1주일정도 고생을 했네요.
다른분들이 좀더 쉽게 이해할 수 있었으면 좋겠습니다.
DirectShow! 조금 공부해보시면 알겠지만 핀, 필터 등의 개념이 생소합니다.
전 이 구조를 이해하는도 오래 걸렸습니다.
먼저 DirectShow를 이해하기 위해 GraphEdit 라는 프로그램이 있으면 좋습니다.
압축을 푼 후 regsvr32 proppage.dll 를 실행하여 proppage.dll 를 등록합니다.
등록을 안하셔도 일단 사용은 가능하나 자세한 설정을 하려면 필요합니다.
이제 GraphEdit 를 실행해 봅니다.
File->Render Media File…을 클릭하여 음악파일 하나를 읽어 봅니다.
위의 그림과 같이 음악파일에서 여러개가 이어진 모습이 보입니다.
이것이 DirectShow 에서 음악파일을 읽어 사운드로 출력하는 연결 구조입니다.
보라색 사각형은 필터를 의미합니다.
구조를 설명하자면 음악파일을 읽고->MPEG스트림필터를 통하고->MPEG를 디코딩하고->사운드카드로 출력을 합니다.
보시면 Output, Input, Audio, XForm In, XForm Out 등 사각형 양끝에 표시가 있습니다.
이것은 핀을 의미하고 오른쪽에 있는것이 입력핀(InputPin),왼쪽에 있는 것이 출력핀(OutPin)입니다.
이 필터끼리 연결을 하는 것이 핀의 역활입니다.
동영상의 경우엔 영상, 사운드 두개가 나와서 출력핀이 두개로 나누어집니다.
일단 음성을 보신 후 다음에 동영상에 대해 다루겠습니다.
GraphEdit 화면에서 녹색▶버튼을 클릭하면 음악이 재생됩니다.
화면으로 보기엔 DirectShow는 간단하게 작동하시면 세밀한 작동을 위해선 각 필터와 핀을 수동으로 연결시켜주어야 합니다.
다음은 동영상 파일을 열어본 모습입니다.
위의 그림을 보면 AVI Splitter필터에서 음성과 화면을 나눌 수 있는 두개의 출력핀이 나옵니다.
두개의 출력핀에서 음성과 화면을 코덱으로 푼후 재생을 하게 됩니다.
녹색▶버튼을 누르면 ActiveMovieWindow가 뜨면서 동영상이 재생됩니다.
영상이 출력될 윈도우를 지정하지 않으면 자동으로 ActiveMovieWindow가 뜨게 됩니다.
DirectShow로 영상, 음성을 다를 수 있고 각종 코덱을 연결하여 변환기를 만들 수 있다는 것을 이해하셨을 겁니다.
좀더 생각해보시면 코덱이 없이 돌아가는 곰플레이어 같은 것도 만들 수 있습니다.
곰플레이어는 설치시 코덱을 따로 둔다음 필요할때 해당 코덱파일을 읽어서 작동할 뿐 구조는 비슷하다고 생각하시면 됩니다.
이것으로 1편을 마칩니다^0^;
다음엔 실제 코딩에 들어갑니다~