Windows Media SDK 7 Under the Hood 7

  • Slides: 40
Download presentation
Windows Media SDK 7: Under the Hood 7 -409 Chris Carper Program Manager Digital

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

Agenda l l Windows Media SDK Roadmap Windows Media Format SDK Ø Ø l

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

Window Media v 7 SDK Component Roadmap l l l Encoder SDK (Private Beta)

Window Media v 7 SDK Component Roadmap l l l Encoder SDK (Private Beta) Player SDK (Beta) Format SDK (Beta) Ø Ø Ø Replaces Audio SDK Reading and writing Windows Media Device Manager (WMDM)

Windows Media Format 7: Overview Requirements l Extensible Ø l Scalable Ø Ø Ø

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

Windows Media Format 7: Overview l l Second generation multimedia format Supports streamed and

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

Windows Media Applications l l Based on current WM Audio SDK Players Ø Ø

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

Windows Media Player v 7 SDK l l l Windows Media Player Active. X

Windows Media Player v 7 SDK l l l Windows Media Player Active. X Control Windows Media Player Skins Windows Media Player Custom Visualizations

Player SDK Component Architecture Browsers/applications Netscape Plug-in Player Control COM Interfaces Direct. Show Filter

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

Player SDK Component Control Interfaces l Methods Ø Ø l Player State: Play, Pause,

Player SDK Component Control Interfaces l Methods Ø Ø l Player State: Play, Pause, Stop, Fast. Forward CODECs: Get. Codec. Installed ASX: Get. Media. Info. Stream control: Stream. Select Events Ø Ø Ø Script Commands and URLs Stream and playback Mouse and keyboard Marker Errors and warnings Timer l Properties Ø Ø Ø Display and appearance Markers and scanning Stream playback rate Media stream Filter. Graph Event registration Error handling Volume and Mute Stream and playback stats Stream status SAMI file, language, style

Player SDK component

Player SDK component

Windows Media Vizualizations Getting Started l Use C++ Wizard l Located in <SDK Install>wizardsviz

Windows Media Vizualizations Getting Started l Use C++ Wizard l Located in <SDK Install>wizardsviz Copy to: Program FilesMicrosoft Visual StudioCommonMSDev 98BinIDE Ø l l l Create Vizualization Project Modify Render function Build. dll

Windows Media Vizualizations Files l l l l effects. idl project. cpp projectdll. def

Windows Media Vizualizations Files l l l l effects. idl project. cpp projectdll. def projectdll. rc iproject. idl Std. Afx. cpp project. h resource. h Std. Afx. h project. rgs project. wms basetsd. h effects. h iproject. tlb

WM Format SDK Features Audio and Video l l l Read and write Windows

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

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

Windows Media Format SDK Data Flow Encoder Player audio/video data WM SDK WM Stream WM SDK WM File DRM CODEC

Windows Media Format SDK Objects WM Format SDK Writer IWMWriter Reader IWMReader Metadata Editor

Windows Media Format SDK Objects WM Format SDK Writer IWMWriter Reader IWMReader Metadata Editor IWMEditor Profile Manager IWMProfile. Manager File Sink IWMWriter. File. Sink Network Sink IWMWriter. Network. Sink

Format Overview File Container l l l Supports files as large as 17 million

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

Format Overview File Container l l l Able to select a stream, based on

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

Format Overview File Extensions l Objectives Ø Ø l ISVs know the player’s rendering

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

Format Overview File Extensions l . wmv Ø Ø Ø l Audio, Video, and/or

Format Overview File Extensions l . wmv Ø Ø Ø l Audio, Video, and/or Scripted content Target Application: Video Player, Video Editor Metafile extensions: . wvx MIME: video/x-ms-wmv and -wvx CODECs: Uncompressed, Windows Media Audio, ACLEP. net and/or MPEG 4 . asf Ø Ø Ø Legacy content Unbounded rendering requirements Metafile extensions: . asx MIME: video/x-ms-asf CODECs: Uncompressed, Windows Media Audio, ACLEP. net, MPEG 4, Meta. Sound, Meta. Voice, MP 3, True. Motion. RT, Clear. Video, L&H, VDOWave, etc.

Format SDK Component Upgrading from the Audio SDK l Jukebox applications Ø Ø l

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

Format SDK Component Upgrading from the Audio SDK l Video editing applications Ø Ø

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

Format SDK Component Keying l l WMKey. LIB unlocks all SDK interfaces Vendor-specific keys

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

Profile l l Multi-bitrate video bands: declare frame size and bitrate for each band

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

Writing WM File l l l Create an IWMWriter object by calling WMCreate. Writer

Writing WM File l l l Create an IWMWriter object by calling WMCreate. Writer Call Set. Profile to define the configuration. Set the outputs. Ø Ø Ø l Call Set. Output. Filename on the writer. Call Get. Input. Count and Get. Input. Props for each stream. Call Write. Sample repeatedly, until finished. Use Allocate. Sample Call Flush Ø Will write any buffered data as output, and update the header and index files.

Writing Windows Media Files Application IWMProfile Add. Stream IWMWriter Set. Output. File. Name Write.

Writing Windows Media Files Application IWMProfile Add. Stream IWMWriter Set. Output. File. Name Write. Sample IWMWriter. Network Sink. Open WM SDK Profile Object Writer Object Net Sink

Reading a WM File l l Create an IWMReader object Call Open with a

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

Reading Windows Media Files Application IWMReader Open(sz. URL) Start(cns. Start) WM SDK IWMReader. Callback

Reading Windows Media Files Application IWMReader Open(sz. URL) Start(cns. Start) WM SDK IWMReader. Callback On. Sample On. Status Reader Object WM SDK

Editing Windows Media Files l l Windows Media Format SDK allows editing without recompression

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

Windows Media Rights Manager Digital Rights Management (DRM) l Allows copyright owners to encrypt

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

Rights Manager Process Flow Building a streaming media business Digital Content 1 Packager Tool

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

Content (plaintext) Content Server 1. Encrypts content 2. Allows download Speaker/Display 2 Content (encrypted)

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

License Rights l l Right to play on a PC Expiration date Right to

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

Playing Protected Content l l l Sign license, return to Microsoft Receive wmdrmstub. Lib

Playing Protected Content l l l Sign license, return to Microsoft Receive wmdrmstub. Lib #define SUPPORT_DRM Call Wm. Create. Drm. Reader Handle WMT_NO_RIGHTS message

Playing Protected Content (Diagram) Player Wm. Drm. Stub. lib music. wma music. lic WM

Playing Protected Content (Diagram) Player Wm. Drm. Stub. lib music. wma music. lic WM SDK DRM CODEC Portable Device Service Provider

Windows Media SDK Licensing Overview l l Components of the OS, so there is

Windows Media SDK Licensing Overview l l Components of the OS, so there is no additional license fee Tools SDK Ø Ø l Player SDK Ø Ø l Paper-copy redistribution license Redist component: wmtools. exe (4 Meg) Automated IEAK redistribution license process Redist component: mpfull. exe (4 Meg) Format SDK Ø Ø Ø Automated license process for core functionality Paper-copy license for DRM functionality Redist components: § § § WMFAudio. Redist. exe for Jukebox apps (0. 8 Meg) setup. WMDM. exe for Jukebox apps (0. 2 Meg) WMFRedist. exe for video editor or encoder apps (1 Meg)

Logo Program Plays Windows Media™ l Use this logo if your product: Ø l

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

Windows Media Enabled Solutions

Windows Media Enabled Solutions

Call To Action l Enable your existing product with Windows Media Ø l Create

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

Need More Information? l MSDN Developer Center http: //msdn. microsoft. com/windowsmedia l l Jump.

Need More Information? l MSDN Developer Center http: //msdn. microsoft. com/windowsmedia l l Jump. Start. CD Ongoing Seminars