Konfigurieren von Videostreams

Videostreams sind flexibler in ihrer Konfiguration als Audiostreams. Dies liegt daran, dass die Eigenschaften der Frames, aus denen das Video besteht, von Datei zu Datei stark variieren können. Wenn Sie das Codecformat für den verwendeten Codec abrufen, müssen Sie die folgenden Werte für Videostreamkonfigurationsobjekte festlegen.

Wert BESCHREIBUNG
Bitrate Rufen Sie IWMStreamConfig::SetBitrate auf, um auf den gewünschten Wert festzulegen. Der Videocodec versucht, die Medien gemäß Ihren Spezifikationen zu komprimieren. Wenn Ihre Werte zu niedrig sind, wird das resultierende komprimierte Video stark beeinträchtigt.
Pufferfenster Rufen Sie IWMStreamConfig::SetBufferWindow auf, um auf den gewünschten Wert festzulegen. Der Videocodec versucht, die Medien gemäß Ihren Spezifikationen zu komprimieren. Wenn Ihre Werte zu niedrig sind, wird das resultierende komprimierte Video stark beeinträchtigt.
WMVIDEOINFOHEADER.rcSource Die obere linke Ecke muss auf 0,0 festgelegt werden. Die untere rechte Ecke muss auf die Rahmenabmessungen festgelegt werden. In einem Stream mit 640 x 480 wären diese Einstellungen beispielsweise 0,0,640,480.
WMVIDEOINFOHEADER.rcTarget Muss mit rcSource übereinstimmen.
WMVIDEOINFOHEADER.dwBitRate Muss mit der für den Stream festgelegten Bitrate übereinstimmen.
WMVIDEOINFOHEADER. AvgTimePerFrame Legen Sie auf die ungefähre Zeit pro Frame fest.
BITMAPINFOHEADER.biWidth Legen Sie auf die Breite der gewünschten Framegröße in Pixel fest.
BITMAPINFOHEADER.biHeight Legen Sie auf die Höhe der gewünschten Framegröße in Pixel fest.

 

Videoinhalte werden nicht ordnungsgemäß wiedergegeben, es sei denn, sie sind auf eine Größe codiert, die für Breite und Höhe ein Vielfaches von vier ist. Die Ausnahme ist das unkomprimierte RGB-Video , das eine beliebige Größe haben kann. Wenn Sie versuchen, eine Größe festzulegen, die kein Vielfaches von vier ist, wird vom Writer einer der folgenden Fehler zurückgegeben:

  • NS_E_INVALID_INPUT_FORMAT
  • NS_E_INVALID_OUTPUT_FORMAT
  • NS_E_INVALIDPROFILE

Wenn Sie die Codierung mit variabler Bitrate verwenden, müssen Sie möglicherweise weitere Anpassungen vornehmen. Weitere Informationen finden Sie unter Konfigurieren von VBR-Streams.

Einige Windows Media Video-Codecs unterstützen mehrere Komplexitätsstufen. Komplexitätsstufen bestimmen die Algorithmen, die der Codec beim Codieren eines Videostreams verwendet. Die Verwendung eines hohen Komplexitätsgrads erfordert mehr Verarbeitungsleistung für die Codierung und Decodierung.

Jeder Codec, der Komplexitätseinstellungen unterstützt, macht die folgenden Einstellungen verfügbar, die Sie mit der IWMCodecInfo3::GetCodecProp-Methode abrufen können.

Einstellung BESCHREIBUNG
g_wszComplexityMax Die maximale Qualitätsstufe, die vom Codec unterstützt wird.
g_wszComplexityOffline Die vorgeschlagene Qualitätsstufe für die Offlinewiedergabe.
g_wszComplexityLive Die vorgeschlagene Qualitätsstufe für die Streamingwiedergabe.

 

Um die Komplexität für einen Videostream in einem Profil festzulegen, verwenden Sie die IWMPropertyVault::SetProperty-Methode mithilfe der Eigenschaft g_wszComplexity. Der von Ihnen festgelegte Wert muss kleiner oder gleich der maximal unterstützten Komplexität für den Codec sein.

Allgemeine Konfiguration für alle Streams

Konfigurieren von Streams

Videokomplexitätseinstellungen