DirectShow2012. 11. 19. 16:14

제목 그대로 개발환경 구축을 위해 필요한 순서를 정리해 놓은 겁니다.


1. MIcrosoft SDK를 다운 받는다.

 - http://msdn.microsoft.com/ko-kr/windows/bb980924.aspx


2. Microsoft DirectX SDK를 다운 받는다.

 - http://www.microsoft.com/en-us/download/details.aspx?id=3035


3. Microsoft SDK를 설치합니다.

 - 설치할 때 "windows Headers and Libraies"를 필수적으로 설치해야 합니다. 나머지는 필요에 따라 선택. 하지만 그냥 다 설치하는게 좋겠죠.


4. Microsoft DirectX SDK를 설치합니다.

 - 풀로 설치합니다.


5. Visual Studio 2008에 포함파일과 라이브러리 파일 경로를 등록합니다.

 - Visual Studio 2008 메뉴에서 도구->옵션->프로젝트 및 솔루션->VC++ 디렉토리에서 다음 항목을 선택해 각각 등록합니다.

 - 등록 순서도 중요합니다. 등록한 경로의 위치를 각각 첨부한 이미지와 같이 맞춰줘야 합니다.

 - 5.3의 경우 2008에서는 등록하지 않아도 되는 경우가 있습니다. 하지만 2005에서는 등록해줘야 합니다. 저도 이유는 잘 모르겠군요 (__);;

 - Microsoft SDK 경로의 v6.1폴더의 경우 Microsoft SDK 버전에 따라 v7.0, v6.0A 등등 여러가지로 나뉠 수 있습니다. 경로 등록 시 마지막 폴더까지 있는 폴더를 찾아 등록하시면 됩니다.


 5.1 포함파일(Include File)

  - 설치된 Microsoft SDK 경로\Wiindows\V6.1\Samples\Multimedia\DirectShow\BaseClasses

  - 설치된 Microsoft DirectX SDK 경로\Include

  - 설치된 Microsoft SDK 경로\Windows\V6.1\Include



 5.2 라이브러리 파일(Library File)

 설치된 Microsoft SDK 경로\Windows\v6.1\Lib

  - 설치된 Microsoft DirectX SDK 경로\Lib\x86



 5.3 실행파일

  - 설치된 Microsoft SDK 경로\Windows\v6.1\Bin

  - 설치된 Mircosoft DirectX SDK 경로\Developer Runtime\x86



6. baseClasses 빌드

 - 설치된 Microsoft SDK 경로\Windows\V6.1\Multimedia\DirectShow\BaseClasses 폴더에 있는 프로젝트를 실행한다

 - Debug모드로 빌드한다. (만약 빌드 시 [C1083 - ddraw.h를 찾을 수 없다]는 에러가 뜰 경우 현재 baseClasses를 오픈한 Visual Studio의 버전을 살펴보고 버전이 2005라면 2005에도 위 5번의 과정을 해준 뒤 다시 빌드한다.)

 - Debug 폴더 안에 strmbasd.lib 파일이 생성되었다면 Release 모드로 빌드하여 strmbase.lib파일이 생성되었는지 확인한다.

 - 두 파일이 생성되었다면 strmbasd.lib와 strmbase.lib파일을 아래 경로에 복사한다.

  -> 설치된 Microsoft SDK 경로\Windows\v6.1\lib


7. 개발환경 구축 끝 입니다.!




Posted by 쿵캉켕
DirectShow2010. 7. 27. 13:49
#. 내용.
 - IMediaControl 인터페이스는 필터 그래프를 통과하는 데이터 플로우를 제어하는 메서드를 제공한다. 여기에는, 그래프를 실행, 포즈, 정지하는 메서드가 포함된다. 필터 그래프 매니저는, 이 인터페이스를 처리 하고 있다. 필터 그래프 상태의 더 자세한 정보는, 「필터 그래프의 데이터 플로우」를 참조할것.
 - IMediaControl 는 그래프를 생성 하는 Automation 호환의 메서드도 제공한다. 이러한 메서드는, Microsoft® Visual Basic® 애플리케이션에서의 사용을 목적으로 한 것으로, 더 자세한 정보는, 「Visual Basic 에서의 DirectShow 의 사용법」을 참조할것.

#. 메소드.
  IMediaControl 인터페이스는 IDispatch로부터 상속받아 사용하는 메소드 외에 다음의 메소드를 제공합니다.
 - Run: 필터 그래프의 모든 필터를 실행한다.
 - Pause: 필터 그래프의 모든 필터를 포즈한다.
 - Stop: 필터 그래프의 모든 필터를 정지한다.
 - StopWhenReady: 필터가 데이터를 큐에 넣어지도록(듯이) 필터 그래프를 포즈로 해, 다음에 필터 그래프를 정지한다.
 - GetState: 필터 그래프 상태를 얻어온다.

출처: http://www.telnet.or.kr/directx/htm/imediacontrolinterface.htm
Posted by 쿵캉켕
DirectShow2010. 7. 27. 11:57

#. 내용.
 - 이 인터페이스는 애플리케이션으로부터 필터 그래프를 생성하는 메소드를 제공합니다. IgraphBuilder는 IFilterGraph를 상속 받기 때문에 IFilterGraph에서 제공하는 그래프에 필터추가, 2개의 핀 간의 접속등의 기능을 제공합니다. IGraphBuilder는 이 기능들 외에 부분적인 정보로부터 그래프를 생성하는 메소드를 제공합니다. 이 인터페이스는 필터간의 관계를 정의할 수 있는 인터페이스 입니다.

#. 메소드.
  IFilterGraph로부터 상속받은 메소드 외에 다음과 같은 메소드를 제공합니다.
 - Connect: 2개의 핀을 접속합니다. 직접 접속할 수 없는 경우는 변환필터를 개입시켜 접속합니다.
 - Render: 지정된 출력 핀에 필터 체인을 추가해 렌더링 합니다.
 - RenderFile: 지정된 파일을 렌더링 하는 필터 그래프를 생성합니다.
 - AddSourceFilter: 특정의 파일에 대응하는 필터 그래프에 소스 필터를 추가합니다.
 - SetLogFile: 로그 파일을 작성합니다. 이 파일에는 조작을 실행하려고 했을 때에 행해진 각 액션이 출력됩니다.
 - Abort: 현재의 태스크로부터 생기는 한 빨리 돌아오도록 그래프 빌더에 요구합니다.
 - ShouldOperationContinue: 현재의 조작을 계속해야할 것인가 제발을 조회합니다. 그래프로부터의 요구에 근거해 어떠한 조작을 실행하고 있는 필터에서는, 이 메서드를 호출해, 그 조작이 계속해야할 것인가 제발을 판단할 수 있습니다. 보통, 애플리케이션으로부터 이 메서드를 호출할 것은 없습니다.

출처: http://www.telnet.or.kr/directx/htm/directshow.htm

Posted by 쿵캉켕
DirectShow2010. 6. 15. 15:23
#. 내용.
 - 필터를 제어하기 위한 메서드를 제공합니다. DirectShow의 모든 필터가 필수적으로 노출해야 하는 인터페이스 입니다.
 - 필터 그래프 매니저는 이 인터페이스를 사용하여 필터를 제어할 수 있습니다.
 - 어플리케이션은 핀을 열거하거나 필터 정보를 문의할 수 있습니다.

#. 메소드.
 - EnumPins : 필터가 제공하는 핀들을 나열
 - FindPin : 특정 ID에 해당하는 핀을 찾음
 - QueryFilterInfo : 필터 정보를 얻음
 - JoinFilterGraph : 필터 그래프에 연결된 경우 이를 필터에 알려줌
 - QueryVendorInfo : 벤더가 제공하는 정보를 얻음.
 - 그 외 IUnknown 및 IMediaFilter 메소드들을 제공 함.
Posted by 쿵캉켕
DirectShow2010. 3. 18. 09:52

C#에서 DirectShow를 활용할 수 있는 라이브러리 파일입니다. DirectShow를 사용하면 비디오 및 오디오를 제어할 수 있습니다.

Posted by 쿵캉켕