Dela via


Profiler

[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]

En profil är en samling data som beskriver konfigurationen av en ASF-fil. En profil måste minst innehålla konfigurationsinställningar för en enda ström.

Dataströminformationen i en profil innehåller bithastigheten, buffertfönstret och medieegenskaperna för strömmen. Dataströminformationen för ljud och video beskriver exakt hur mediet är konfigurerat i filen, inklusive vilken codec (om någon) som ska användas för att komprimera data.

En profil innehåller också information om de olika ASF-filfunktionerna som ska användas i filer som skapas med den. Dessa omfattar , Stream Prioritization, Bandwidth Sharingoch Data Unit Extensions.

Tidigare versioner av Windows Media Format SDK tillhandahöll förkonfigurerade systemprofiler som kan användas för att skapa vanliga typer av filer eller ändras något för att passa programmets behov. Systemprofiler stöds inte för Windows Media 9-seriens codecs. Det beror på att antalet "vanliga" typer av filer har ökat exponentiellt med tillägg av nya funktioner. Det förväntas att praktiskt taget alla innehållsskapare har behov som går utöver de enkla lösningar som tillhandahålls av systemprofiler. Du kan fortfarande använda de gamla systemprofilerna som startplats. Mer information finns i Använda systemprofiler.

Du måste ange en profil för varje fil som du skriver till skrivaren. Du kan ange en profil som ska användas med skrivaren genom att anropa IWMWriter::SetProfile.

Profildata finns i flera olika former som kan användas av Windows Media Format SDK. Profilinformation kan också nås på flera sätt. Detta kan leda till förvirring om vad en profil är och hur den används.

Följande diagram visar hur profildata används i SDK:et.

diagram som visar flödet av profilinformation.

Profildata har tre olika former: data som finns i ett profilobjekt i ett program, en XML-fil på disken och data i huvudet på en ASF-fil. Var och en av dessa dataformer visas som en skuggad rektangel i diagrammet.

Data i ett profilobjekt

När du redigerar en profil använder du ett profilobjekt som kapslar in alla profildata. Du kan skapa ett tomt profilobjekt med hjälp av profilhanterarens objekt. Du kan också använda profilhanterarobjektet för att läsa in befintliga profildata till ett profilobjekt.

De flesta profildata måste läggas till och manipuleras med hjälp av objekt som representerar enskilda delar av profilen. Dessa omfattar dataströmkonfigurationsobjekt, objekt för ömsesidig exkludering, bandbreddsdelningsobjekt och ett dataströmprioriteringsobjekt. Var och en av dessa objekttyper kan skapas med hjälp av metoder i profilobjektet. Att göra ändringar i dessa objekt påverkar inte profilobjektet förrän du använder en metod i profilobjektet för att inkludera uppdaterade data från det andra objektet.

Data i en XML-fil

Profildata lagras på disken i form av en XML-fil med filnamnstillägget .prx. Ingår i Windows Media Format SDK är en samling profiler som kallas systemprofiler som täcker de vanligaste typerna av ASF-filer. Systemprofiler lagras i en fil med namnet WMSysPr9.prx. (Observera att den här filen faktiskt inte innehåller några systemprofiler för Windows Media 9-serien eftersom begreppet systemprofiler inte längre används.) När du sparar dina egna anpassade profiler måste du spara dem i dina egna filer.

Du kan använda profilhanterarens objekt för att spara data från ett profilobjekt till en sträng med XML-text. Du kan sedan använda alla fil-I/O-funktioner som du vill spara strängen på en fil på disken.

Data i huvudet på en ASF-fil

Skrivaren tar informationen från profilen och använder den för att skapa strömmarna som går in i dataavsnittet i ASF-filen. Huvuddelen av profildata lagras i rubrikavsnittet i filen när en fil skrivs. Vid uppspelning kan läsarobjektet (eller det synkrona läsarobjektet) komma åt informationen i filens huvud. I det här fallet skapar läsobjektet ett profilobjekt och fyller det med data från huvudet.

När du kommer åt profildata med hjälp av läsaren (eller synkron läsare) kan du göra ändringar i profilinformationen, men det finns inget sätt att tillämpa ändringarna på filen i läsaren. Du kan använda profilinformationen från en fil i en läsare på en profil i en skrivare för att skapa en ny fil med samma inställningar som filen i läsaren. I det här fallet återspeglas alla ändringar som du gör i profilinformationen innan du anger profilen i skrivaren i profilinformationen som registrerats av författaren.

Använda profilredigeraren

I stället för att skapa profiler med hjälp av Windows Media Format SDK kan du använda Profilredigeraren, ett verktyg som ingår i Windows Media Encoder. I kodningsprogrammet använder du metoden IWMProfileManager::LoadProfileByData för att läsa in den sparade profilen. I vissa scenarier, till exempel om du använder ett begränsat antal profiler som aldrig ändras dynamiskt, kan det vara enklare att använda profilredigeraren för att skapa dina profiler.

Men om du använder profilredigeraren rekommenderar vi att du inte använder inställningen "Videostorlek: Samma som videoindata". När den här kryssrutan är markerad skapar profilredigeraren en profil med videons utdatahöjd och bredd inställd på noll. När Windows Media Encoder stöter på dessa profiler anger den rätt värden för att matcha dess videoindata. Skrivaren i Windows Media Format SDK gör dock inte det automatiskt, så du måste se till att ditt program anger videoramens storlek i fall där profilen inte har någon.

Obs Vissa dataströmkonfigurationsobjekt lagras inte i profilen. Data i profilen beskriver formatet på den färdiga ASF-filen. Indatamedieegenskaper och andra konfigurationsdata som används av skrivarobjektet för att konfigurera codecs sparas inte i profilen. Detta inkluderar alla egenskaper som anges med hjälp av metoden IWMPropertyVault::SetProperty.

delningsobjekt för bandbredd

Begrepp

IWMProfile Interface

IWMProfileManager Interface

objekt för ömsesidig exkludering

Profile Manager-objekt

Stream-konfigurationsobjekt

Stream Prioritization Object

Arbeta med profiler