Presentation is loading. Please wait.

Presentation is loading. Please wait.

Windows Media SDK 7: Under the Hood 7-409 Chris Carper Program Manager Digital Media Division

Similar presentations


Presentation on theme: "Windows Media SDK 7: Under the Hood 7-409 Chris Carper Program Manager Digital Media Division"— Presentation transcript:

1 Windows Media SDK 7: Under the Hood 7-409 Chris Carper Program Manager Digital Media Division ccarper@microsoft.com

2 Agenda Windows Media SDK Roadmap Windows Media SDK Roadmap Windows Media Format SDK Windows Media Format SDK Audio, video Audio, video Net streaming Net streaming Editing Editing Content management Content management Digital Rights Management Digital Rights Management

3 Window Media v7 SDK Component Roadmap Encoder SDK (Private Beta) Encoder SDK (Private Beta) Player SDK (Beta) Player SDK (Beta) Format SDK (Beta) Format SDK (Beta) Replaces Audio SDK Replaces Audio SDK Reading and writing Windows Media Reading and writing Windows Media Windows Media Device Manager (WMDM) Windows Media Device Manager (WMDM)

4 Windows Media Format 7: Overview Requirements Extensible Extensible Support new CODECs and media types Support new CODECs and media types Scalable Scalable Efficient local playback Efficient local playback Support existing HTTP servers Support existing HTTP servers Enable high capacity media servers Enable high capacity media servers Author once; playback anywhere Author once; playback anywhere Stream thru 28.8 modems to broadband networks Stream thru 28.8 modems to broadband networks Play on PCs, PDA, and Consumer Electronics Play on PCs, PDA, and Consumer Electronics Car stereos, portable devices, etc. Car stereos, portable devices, etc.

5 Windows Media Format 7: Overview Second generation multimedia format Second generation multimedia format Supports streamed and local playback Supports streamed and local playback Optimized for live and on-demand content Optimized for live and on-demand content Consists of Consists of CODECs CODECs Digital Rights Management (DRM) Digital Rights Management (DRM) File container File container

6 Windows Media Applications Based on current WM Audio SDK Based on current WM Audio SDK Players Players Winamp (www.winamp.com) Winamp (www.winamp.com) Sonique (www.sonique.com) Sonique (www.sonique.com) Personal Jukeboxes Personal Jukeboxes Sonic Foundry Siren www.sonicfoundry.com Sonic Foundry Siren www.sonicfoundry.com MusicMatch Jukebox www.musicmatch.com MusicMatch Jukebox www.musicmatch.com RioPort Audio Manager www.rioport.com RioPort Audio Manager www.rioport.com Many more available at… http://www.microsoft.com/ windowsmedia/software/ jukeboxes/ Many more available at… http://www.microsoft.com/ windowsmedia/software/ jukeboxes/

7 Windows Media Player v7 SDK Windows Media Player ActiveX Control Windows Media Player ActiveX Control Windows Media Player Skins Windows Media Player Skins Windows Media Player Custom Visualizations Windows Media Player Custom Visualizations

8 Player SDK Component Architecture Browsers/applications Netscape Plug-in Player Control DirectShow Filter Graph Manager Source filter (ASF, WAV, AVI, etc.) Transform filter Render filter Media Source (Internet or FileSys) DirectX Foundation Media Destination (Audio/Video Hardware) COM Interfaces

9 Player SDK Component Control Interfaces Methods Methods Player State: Play, Pause, Stop, FastForward Player State: Play, Pause, Stop, FastForward CODECs: GetCodecInstalled CODECs: GetCodecInstalled ASX: GetMediaInfoStream ASX: GetMediaInfoStream Stream control: StreamSelect Stream control: StreamSelect Events Events Script Commands and URLs Script Commands and URLs Stream and playback Stream and playback Mouse and keyboard Mouse and keyboard Marker Marker Errors and warnings Errors and warnings Timer Timer Properties Properties Display and appearance Display and appearance Markers and scanning Markers and scanning Stream playback rate Stream playback rate Media stream Media stream FilterGraph FilterGraph Event registration Event registration Error handling Error handling Volume and Mute Volume and Mute Stream and playback stats Stream and playback stats Stream status Stream status SAMI file, language, style SAMI file, language, style

10 Player SDK component

11 Windows Media Vizualizations Use C++ Wizard Use C++ Wizard Located in \wizards\viz Located in \wizards\viz Copy to: \ Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE Copy to: \ Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE Create Vizualization Project Create Vizualization Project Modify Render function Modify Render function Build.dll Build.dll Getting Started

12 Windows Media Vizualizations effects.idl effects.idl project.cpp project.cpp projectdll.cpp projectdll.cpp projectdll.def projectdll.def projectdll.rc projectdll.rc iproject.idl iproject.idl StdAfx.cpp StdAfx.cpp project.h project.h resource.h resource.h StdAfx.h StdAfx.h project.rgs project.rgs project.wms project.wms basetsd.h basetsd.h effects.h effects.h iproject.h iproject.h iproject.tlb iproject.tlb Files

13 WM Format SDK Features Audio and Video Read and write Windows Media files Read and write Windows Media files Stream from net, stream to net Stream from net, stream to net Content Management properties Content Management properties Markers Markers Scripts: Closed Captioning, URL flips, Events, HTML Scripts: Closed Captioning, URL flips, Events, HTML In stream or in header In stream or in header Digital Rights Management (DRM) Digital Rights Management (DRM) Portable Device Support Portable Device Support

14 Windows Media Format SDK Data Flow WM SDK WM File WM Stream WM SDK Encoder CODECDRM Player CODECDRM audio/video data

15 Windows Media Format SDK Objects Writer Reader Metadata Editor File Sink Profile Manager IWMWriterNetworkSink IWMWriter IWMReader IWMEditor IWMProfileManager IWMWriterFileSink Network Sink WM Format SDK

16 Format Overview File Container Supports files as large as 17 million terabytes Supports files as large as 17 million terabytes Supports multi-bitrate-video streams in a file Supports multi-bitrate-video streams in a file Stores media and metadata in one file Stores media and metadata in one file Metadata Metadata Title, copyright, author, markers, script commands, etc. Title, copyright, author, markers, script commands, etc. ID3 v1, v2 music meta-information ID3 v1, v2 music meta-information Media Media Audio, Video and Script Commands (URLs, CC) Audio, Video and Script Commands (URLs, CC) Header AudioStream Index Video Stream #1 Video Stream #n Script Stream Timeline

17 Format Overview File Container Able to select a stream, based on available bandwidth Able to select a stream, based on available bandwidth Interleaved data is optimal for HTTP Interleaved data is optimal for HTTP Files can be read sequentially, avoiding expensive seeks Files can be read sequentially, avoiding expensive seeks Timeline based synchronization Timeline based synchronization Bursty data can be smoothed Bursty data can be smoothed Send Timestamp (milliseconds) Send Timestamp (milliseconds) Presentation Timestamp (Rational time units) Presentation Timestamp (Rational time units) Presentation Time Presentation Time Send Time

18 Format Overview File Extensions Objectives Objectives ISVs know the players rendering requirements ISVs know the players rendering requirements Content owners can target specialized player (e.g. Jukebox vs Digital VCR) Content owners can target specialized player (e.g. Jukebox vs Digital VCR).wma.wma Audio-only content Audio-only content Target application: Jukebox Target application: Jukebox Metafile extensions:.wax Metafile extensions:.wax MIME: audio/x-ms-wma and -wax MIME: audio/x-ms-wma and -wax CODECs: Windows Media Audio CODECs: Windows Media Audio

19 Format Overview File Extensions.wmv.wmv Audio, Video, and/or Scripted content Audio, Video, and/or Scripted content Target Application: Video Player, Video Editor Target Application: Video Player, Video Editor Metafile extensions:.wvx Metafile extensions:.wvx MIME: video/x-ms-wmv and -wvx MIME: video/x-ms-wmv and -wvx CODECs: Uncompressed, Windows Media Audio, ACLEP.net and/or MPEG4 CODECs: Uncompressed, Windows Media Audio, ACLEP.net and/or MPEG4.asf.asf Legacy content Legacy content Unbounded rendering requirements Unbounded rendering requirements Metafile extensions:.asx Metafile extensions:.asx MIME: video/x-ms-asf MIME: video/x-ms-asf CODECs: Uncompressed, Windows Media Audio, ACLEP.net, MPEG4, MetaSound, MetaVoice, MP3, TrueMotionRT, ClearVideo, L&H, VDOWave, etc. CODECs: Uncompressed, Windows Media Audio, ACLEP.net, MPEG4, MetaSound, MetaVoice, MP3, TrueMotionRT, ClearVideo, L&H, VDOWave, etc.

20 Format SDK Component Upgrading from the Audio SDK Jukebox applications Jukebox applications Faster than real-time read Faster than real-time read Transfer content to portable devices or storage media with WMDM Transfer content to portable devices or storage media with WMDM Live encoder applications Live encoder applications Write-to-net via HTTP and MSBD Write-to-net via HTTP and MSBD Support up to 50 direct connections Support up to 50 direct connections Reports encoding statistics Reports encoding statistics

21 Format SDK Component Upgrading from the Audio SDK Video editing applications Video editing applications Access to compressed and uncompressed bit-streams Access to compressed and uncompressed bit-streams Author single and multi-bit-rate video files Author single and multi-bit-rate video files Author and edit script stream, scripts in header, markers in header, header attribute editing Author and edit script stream, scripts in header, markers in header, header attribute editing Auto-create index for seeking support Auto-create index for seeking support Broader list of supported CODECs (MPEG4, Windows Media Audio, ACELP.net) Broader list of supported CODECs (MPEG4, Windows Media Audio, ACELP.net) Author files larger than 2 gigabytes Author files larger than 2 gigabytes

22 Format SDK Component Keying WMKey.LIB unlocks all SDK interfaces WMKey.LIB unlocks all SDK interfaces Vendor-specific keys in lib file Vendor-specific keys in lib file ISV registers to download SDK ISV registers to download SDK Server generates an individualized lib file Server generates an individualized lib file Server emails lib to ISV Server emails lib to ISV ISV link lib file into app ISV link lib file into app CODEC keys are also in lib file CODEC keys are also in lib file Allows for CODEC specific keying Allows for CODEC specific keying Allows for new CODECs without changing the SDK Allows for new CODECs without changing the SDK Key are passed down through middleware APIs (e.g. DirectShow) Key are passed down through middleware APIs (e.g. DirectShow)

23 Profile Multi-bitrate video bands: declare frame size and bitrate for each band Multi-bitrate video bands: declare frame size and bitrate for each band Persisted as XML Persisted as XML SDK includes pre-defined system profiles in windows\wmsysprf.Prx SDK includes pre-defined system profiles in windows\wmsysprf.Prx Take a look at profile settings… Take a look at profile settings…

24 Writing WM File Create an IWMWriter object by calling WMCreateWriter Create an IWMWriter object by calling WMCreateWriter Call SetProfile to define the configuration. Call SetProfile to define the configuration. Set the outputs. Set the outputs. Call SetOutputFilename on the writer. Call SetOutputFilename on the writer. Call GetInputCount and GetInputProps for each stream. Call WriteSample repeatedly, until finished. Call GetInputCount and GetInputProps for each stream. Call WriteSample repeatedly, until finished. Use AllocateSample Use AllocateSample Call Flush Call Flush Will write any buffered data as output, and update the header and index files. Will write any buffered data as output, and update the header and index files.

25 IWMWriterNetwork SinkOpen Writing Windows Media Files Writer Object Application WM SDK IWMWriterSetOutputFileNameWriteSample IWMProfileAddStream Net Sink Profile Object

26 Reading a WM File Create an IWMReader object Create an IWMReader object Call Open with a URL (possibly a local file name) Call Open with a URL (possibly a local file name) Asynchronous call Asynchronous call Wait for appropriate OnStatus calls to be sent to the callback Wait for appropriate OnStatus calls to be sent to the callback Returns the WMT_OPENED status message to the callback Returns the WMT_OPENED status message to the callback Call GetOutputCount and GetOutputProps to get the format for each output Call GetOutputCount and GetOutputProps to get the format for each output Call Start Call Start Status messages and samples will then begin arriving in the callback function Status messages and samples will then begin arriving in the callback function

27 WM SDK Reading Windows Media Files Reader Object IWMReaderOpen(szURL)Start(cnsStart) Application IWMReaderCallbackOnSampleOnStatus WM SDK

28 Editing Windows Media Files Windows Media Format SDK allows editing without recompression Windows Media Format SDK allows editing without recompression Can obtain compressed data from reader Can obtain compressed data from reader Can supply compressed data to writer Can supply compressed data to writer Compressed samples are handled separately from normal samples, on advanced interfaces Compressed samples are handled separately from normal samples, on advanced interfaces IWMWriterAdvanced IWMWriterAdvanced

29 Windows Media Rights Manager Digital Rights Management (DRM) Allows copyright owners to encrypt content Allows copyright owners to encrypt content Users must acquire license to play Users must acquire license to play Content cannot be easily emailed, transferred, or copied with associated license Content cannot be easily emailed, transferred, or copied with associated license Enables artists, publishers and distributors to collect information and/or money Enables artists, publishers and distributors to collect information and/or money Designed to vastly reduce digital music piracy Designed to vastly reduce digital music piracy Incorporated in Windows Media Player (WMP) Incorporated in Windows Media Player (WMP) Also available in Window Media SDK Also available in Window Media SDK Incorporated in many third-party players Incorporated in many third-party players

30 Rights Manager Process Flow Building a streaming media business Creation Digital Content 1 PackagerTool 2 Distribution 3 Windows Media Server Web Server Packaged Content 4 Playback 5 WindowsMediaPlayer Clearing LicenseServer 6 License(Key) 7

31 Content Server 1.Encrypts content 2.Allows download License Server 1.Authenticates client 2.Encrypts content key 3.Adds usage rules 4.Signs license Consumer PC Content (plaintext) Content (encrypted) License (key) Shared secret WMPlayer DRM License store Hardware binding Authentication Parameter encryption License request 1 2 3 4 5 6 7 Speaker/Display

32 License Rights Right to play on a PC Right to play on a PC Expiration date Expiration date Right to burn to redbook CD Right to burn to redbook CD Right to transfer to portable player Right to transfer to portable player One-time right to transfer to PD One-time right to transfer to PD

33 Playing Protected Content Sign license, return to Microsoft Sign license, return to Microsoft Receive wmdrmstub.Lib Receive wmdrmstub.Lib #define SUPPORT_DRM #define SUPPORT_DRM Call WmCreateDrmReader Call WmCreateDrmReader Handle WMT_NO_RIGHTS message Handle WMT_NO_RIGHTS message

34 Playing Protected Content (Diagram) WM SDK Player CODECDRM music.wma music.lic WmDrmStub.lib Portable Device Service Provider

35 Windows Media SDK Licensing Overview Components of the OS, so there is no additional license fee Components of the OS, so there is no additional license fee Tools SDK Tools SDK Paper-copy redistribution license Paper-copy redistribution license Redist component: wmtools.exe (4 Meg) Redist component: wmtools.exe (4 Meg) Player SDK Player SDK Automated IEAK redistribution license process Automated IEAK redistribution license process Redist component: mpfull.exe (4 Meg) Redist component: mpfull.exe (4 Meg) Format SDK Format SDK Automated license process for core functionality Automated license process for core functionality Paper-copy license for DRM functionality Paper-copy license for DRM functionality Redist components: Redist components: WMFAudioRedist.exe for Jukebox apps (0.8 Meg) WMFAudioRedist.exe for Jukebox apps (0.8 Meg) setupWMDM.exe for Jukebox apps (0.2 Meg) setupWMDM.exe for Jukebox apps (0.2 Meg) WMFRedist.exe for video editor or encoder apps (1 Meg) WMFRedist.exe for video editor or encoder apps (1 Meg)

36 Logo Program Plays Windows Media Use this logo if your product: Use this logo if your product: Integrates Windows Media technology to reads (from net or local disk) Windows Media files or renders Windows Media- based content Integrates Windows Media technology to reads (from net or local disk) Windows Media files or renders Windows Media- based content To request the logo license agreement, email us at: To request the logo license agreement, email us at:wmlogo@microsoft.com

37 Windows Media Enabled Solutions

38 Call To Action Enable your existing product with Windows Media Enable your existing product with Windows Media Audio/Video Players, Video editors, Games Audio/Video Players, Video editors, Games Create new categories of applications Create new categories of applications Digital VCR, Conferencing Gateways, Personal Broadcaster, Media Indexers Digital VCR, Conferencing Gateways, Personal Broadcaster, Media Indexers Join our Partner Programs Join our Partner Programs

39 Need More Information? MSDN Developer Center MSDN Developer Center http://msdn.microsoft.com/windowsmedia http://msdn.microsoft.com/windowsmediahttp://msdn.microsoft.com/windowsmedia JumpStartCD JumpStartCD Ongoing Seminars Ongoing Seminars

40


Download ppt "Windows Media SDK 7: Under the Hood 7-409 Chris Carper Program Manager Digital Media Division"

Similar presentations


Ads by Google