다음을 통해 공유


Windows Media Format SDK 샘플 애플리케이션

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

이 SDK와 함께 제공되는 샘플 코드는 Microsoft Visual Studio 2005용 프로젝트 형식입니다. 대부분의 샘플은 C++에 있지만 ManagedWMFSDKWrapper 및 ManagedMetadataEdit에는 C#이 필요합니다.

이러한 샘플은 Windows Media Format SDK 또는 Windows Player SDK가 설치되지 않은 한 작동하지 않습니다.

각 샘플에 대한 사용량 정보는 각 샘플 디렉터리의 readme.txt 파일에 포함되어 있습니다.

Samle Description
AudioPlayer DRM으로 보호된 파일을 포함하여 Windows Media 파일을 재생합니다. GUI를 통해 제어되며, 명령에는 재생, 일시 중지, 검색 및 중지가 포함됩니다. 인터넷에서 읽은 로컬 파일 또는 파일을 재생할 수 있습니다(WMVNetWrite 샘플을 사용하여 인터넷에 출력 포함). 참고: 이 샘플의 DRM 부분은 x64 기반 버전의 Windows에서 지원되지 않습니다.
DRMHeader DRMHeader는 메타데이터 편집기의 IWMDRMEditor 인터페이스를 사용하여 DRM 정적 라이브러리에 연결하지 않고 파일의 DRM 특성을 읽는 콘솔 애플리케이션입니다. 참고: 이 샘플은 x64 기반 버전의 Windows에서 지원되지 않습니다.
DRMShow DRMShow는 IWMDRMReader::GetDRMProperty 메서드를 사용하여 Windows Media 파일의 DRM 속성을 읽는 방법을 보여 주는 콘솔 애플리케이션입니다. 이 샘플에서는 IWMDRMReader::GetDRMProperty 메서드의 사용과 DRM 판독기에서 검색할 수 있는 속성을 보여 줍니다. DRM으로 보호되는 콘텐츠에 대한 라이선스를 획득하는 방법을 보여 주지 않습니다. 이 샘플을 빌드하려면 DRM 스텁 라이브러리 WMStubDRM.lib가 필요합니다.
참고: 이 샘플은 x64 기반 버전의 Windows에서 지원되지 않습니다.
Microsoft에서 WMStubDRM.lib를 획득하면 라이브러리에 애플리케이션 보안 수준이 할당됩니다. 수신하는 라이브러리의 보안 수준이 보호된 파일을 재생하기에 충분하지 않으면 이 샘플에 오류가 표시됩니다.
DirectShowInterop/DSCopy DirectShow WM ASF 기록기 필터를 사용하여 하나 이상의 파일을 ASF 파일로 트랜스코딩합니다. 입력 파일은 DirectShow에서 지원하는 압축되거나 압축되지 않은 형식일 수 있습니다.
DirectShowInterop/DSPlay 이 샘플은 DRM 이 지원되는 대화형 오디오/비디오 미디어 파일 플레이어입니다. DirectShow의 WM ASF 판독기 필터를 사용하여 DRM 보호 없이 Windows Media 파일(ASF, WMA, WMV)을 재생하고 100 이하 수준에서 DRM을 사용하는 파일을 재생합니다. 자세한 내용은 샘플 디렉터리의 readme.txt 참조하세요.
DirectShowInterop/DSSeekFm 이 샘플에서는 DirectShow WM ASF 판독기 필터를 사용하여 DirectShow 필터 그래프에서 ASF 콘텐츠를 재생하는 방법과 Windows Media Format SDK에서 지원을 요청하는 프레임을 사용하는 방법을 보여 줍니다.
관리/WMFSDKWrapper 이 관리되는 어셈블리는 이 SDK의 일부 메타데이터 인터페이스에 액세스하기 위해 관리 코드 샘플에서 사용하는 래퍼 역할을 합니다.
Managed/MetadataEdit 이 C# 애플리케이션을 사용하여 Windows Media 파일에서 메타데이터를 보고 편집할 수 있습니다.
MetaDataEdit Managed MetadataEdit 애플리케이션의 C++ 버전입니다.
ReadFromStream 이 콘솔 애플리케이션 샘플은 WMReader를 사용하여 IStream 에서 데이터를 읽는 방법을 보여줍니다. IStream 원본은 WMA/WMV/ASF(Windows Media Format)의 파일을 사용하도록 구현되었습니다. 참고: 이 샘플에서는 WMReader에서 나오는 미디어 샘플을 처리하는 방법을 보여주지 않습니다. 오디오/비디오 또는 기타 유형의 미디어 샘플을 처리하는 방법에 대한 예제는 Windows Media Format SDK에 포함된 instance AudioPlayer에 대한 다른 샘플을 참조하세요.
UncompAVIToWMV 이 콘솔 애플리케이션 샘플은 AVI 파일을 WMV 파일로 압축하는 데 필요한 코드를 보여줍니다. 여러 AVI 파일에서 오디오 및 비디오 스트림에 대한 샘플을 병합하고 유사한 스트림에 병합하거나 원본 스트림 프로필을 기반으로 새 스트림을 만드는 방법을 보여 줍니다. 또한 임의의 스트림을 만들고, 멀티패스 인코딩을 수행하고, SMPTE 시간 코드를 추가하고, DRM 버전 1 보호를 적용하는 방법도 보여줍니다.
WMGenProfile/exe 이 샘플은 7.1 릴리스에서 업데이트되었습니다. 이제 MFC 대화 애플리케이션입니다. WMGenProfile 샘플은 WMGenProfile 정적 라이브러리의 사용을 보여 줍니다. 또한 프로필을 만들기 위한 도구로도 사용됩니다. 이 도구는 Windows 미디어 형식에 익숙한 개발자를 위한 것입니다. UI는 사용자 환경에 대해 테스트되지 않았으며 사용자에게 이 정보를 제공하는 방법에 대한 권장 사항이 아닙니다.
WMGenProfile/lib GenProfile 라이브러리 샘플은 프로필 생성을 보여 줍니다. 다양한 스트림 유형(오디오, 비디오, 스크립트, 이미지, 파일 전송 및 웹)에 대한 미디어 형식 및 스트림을 만드는 방법을 보여 줍니다. 시스템 프로필을 사용하는 방법이나 시스템 프로필을 Windows Media Audio 및 Video 9 시리즈 코덱을 지정하는 프로필로 변환하는 방법을 보여 주지 않습니다.
WMProp 이 콘솔 애플리케이션은 메타데이터 편집기 개체 및 판독기에서 프로필 정보를 사용하여 특성을 검색하는 방법을 보여 줍니다.
WMStats 이 콘솔 애플리케이션은 판독기 및 기록기 통계를 표시합니다. WMStats의 여러 인스턴스를 한 컴퓨터에서 동시에 사용할 수도 있습니다. 하나의 instance 서버로 시작하여 스트림을 네트워크에 보낸 다음 클라이언트로 두 번째 instance 실행하여 서버가 올바르게 스트리밍되고 있는지 확인합니다.
WMSyncReader 이 콘솔 애플리케이션 샘플에서는 추가 스레드를 만들거나 콜백을 사용하지 않고 IWMSyncReader 를 사용하여 미디어 파일을 읽는 방법을 보여 줍니다. 다음 기능이 구현됩니다. 압축 또는 압축 해제된 샘플 읽기
시간 기반 검색
프레임 기반 검색
IStream 파생 원본
WMVAppend 이 콘솔 애플리케이션은 입력을 위해 두 개의 Windows Media 파일을 사용하고 첫 번째 파일과 두 번째 파일의 내용이 포함된 출력 파일을 만들려고 시도합니다. 샘플은 두 입력 파일의 프로필을 비교하여 추가할 수 있을 만큼 비슷한지 확인합니다. 그렇지 않으면 오류 메시지가 나타납니다. 예를 들어 한 파일이 오디오 전용이고 두 번째 파일이 오디오 비디오 파일이거나 두 오디오 파일의 비트 속도가 다를 때 오류 메시지가 발생합니다. 이 샘플에서는 VBR(가변 비트 전송률) 원본을 허용합니다. 그러나 두 VBR 원본의 프로필을 비교할 때 두 VBR 스트림은 동일한 프로필을 사용하여 만든 경우에도 평균 비트 전송률이 다르기 때문에 샘플은 평균 비트 전송률 차이를 무시합니다. WMVAppend는 제한되지 않는 비트 전송률 기반 VBR 스트림의 최대 비트 전송률 또는 품질 기반 VBR 스트림의 품질 수준을 비교할 수 없습니다. 이 정보는 원본 파일에 없기 때문입니다. 따라서 동일한 프로필을 사용하여 두 개의 원본 파일이 만들어지도록 하는 것은 사용자의 책임입니다. 그렇지 않으면 잘못된 콘텐츠를 만들 수 있습니다.
WMVCopy 이 샘플에서는 WMV 파일을 복사하는 데 필요한 코드를 보여줍니다. 압축된 샘플을 읽고 쓰고, 헤더 특성 및 스크립트를 읽고, 헤더 특성을 수정하는 방법을 보여 줍니다.
WMVNetWrite 이 콘솔 애플리케이션은 Windows Media 파일이 인터넷을 통해 스트리밍되는 방법을 보여줍니다. 샘플을 사용하려면 포트를 지정해야 하며 플레이어를 사용하여 파일을 재생할 수 있습니다.
WMVRecompress 이 콘솔 애플리케이션은 WMV 파일을 다시 압축하는 방법을 보여줍니다. 압축되지 않은 샘플을 읽고, 압축되지 않은 샘플을 작성하고, 다중 패스 인코딩, 다중 채널 출력 및 스마트 압축을 수행하는 방법을 보여 줍니다.

Windows Media Format SDK 정보

프로그래밍 가이드