Dela via


Konfigurera videoströmmar

[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.]

Videoströmmar är mer flexibla i sin konfiguration än ljudströmmar. Det beror på att egenskaperna för de bildrutor som utgör videon kan variera mycket från en fil till en annan. När du hämtar codec-formatet för den codec du använder måste du ange följande värden för konfigurationsobjekt för videoströmmar.

Värde Beskrivning
Bithastighet Anropa IWMStreamConfig::SetBitrate för att ange önskat värde. Video codec försöker komprimera mediet för att uppfylla dina specifikationer. Om dina värden är för låga kommer den resulterande komprimerade videon att försämras mycket.
Buffertfönster Anropa IWMStreamConfig::SetBufferWindow för att ange önskat värde. Video codec försöker komprimera mediet för att uppfylla dina specifikationer. Om dina värden är för låga kommer den resulterande komprimerade videon att försämras mycket.
WMVIDEOINFOHEADER.rcSource Det övre vänstra hörnet måste vara inställt på 0,0. Det nedre högra hörnet måste anpassas till ramdimensionerna. I en 640x480-ström skulle de här inställningarna till exempel vara 0 0 640 480.
WMVIDEOINFOHEADER.rcTarget Måste matcha rcSource.
WMVIDEOINFOHEADER.dwBitRate Måste matcha bithastigheten som angetts för strömmen.
WMVIDEOINFOHEADER. AvgTimePerFrame Ange den ungefärliga tiden per bildruta.
BITMAPINFOHEADER.biWidth Ange bredden i bildpunkter för önskad bildrutestorlek.
BITMAPINFOHEADER.biHeight Ange höjden i pixlar för önskad ramstorlek.

 

Videoinnehållet spelas inte upp korrekt om det inte är kodat till en storlek som är en multipel av fyra för både bredd och höjd. Undantaget är RGB okomprimerad video, som kan vara valfri storlek. Om du försöker ange en storlek som inte är en multipel av fyra returneras något av följande fel av skrivaren:

  • NS_E_INVALID_INPUT_FORMAT (Ogiltigt inmatningsformat)
  • NS_E_OGILTIG_UTDATAFORMAT
  • NS_E_INVALIDPROFILE (Ogiltig profil)

Om du använder kodning av variabel bithastighet kan du behöva göra andra justeringar. Mer information finns i Konfigurera VBR-strömmar.

Vissa Windows Media Video-codecs stöder flera komplexitetsnivåer. Komplexitetsnivåer avgör de algoritmer som codec använder när en videoström kodas. Om du använder en hög komplexitetsnivå krävs mer bearbetningskraft för kodning och avkodning.

Varje codec som stöder komplexitetsinställningar exponerar följande inställningar som du kan hämta med metoden IWMCodecInfo3::GetCodecProp.

Inställning Beskrivning
g_wszComplexityMax Den högsta kvalitetsnivå som stöds av codec.
g_wszComplexityOffline Den föreslagna kvalitetsnivån för offlineuppspelning.
g_wszComplexityLive Den föreslagna kvalitetsnivån för uppspelning av direktuppspelning.

 

Om du vill ange komplexiteten för en videoström i en profil använder du metoden IWMPropertyVault::SetProperty med hjälp av egenskapen g_wszComplexity. Värdet du anger måste vara mindre än eller lika med den maximala komplexitet som stöds för codec.

konfiguration som är gemensam för alla strömmar

Konfigurera strömmar

Inställningar för videokomplexitet