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.
Zugehörige Themen