Protokollrollover
[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Der Protokollrollover ist ein Prozess, bei dem das Reader-Objekt das beste Streamingprotokoll ermittelt, das von einem Server verfügbar ist. Der Reader verwendet den Protokollrollover, wenn er eine URL öffnet, die ein "mms"-Schema enthält.
Der Reader unterstützt mehrere Protokolle:
- Real Time Streaming Protocol (RTSP)
- Hypertext Transfer-Protokoll (HTTP)
- Microsoft Media Server (MMS)
Die Protokolle RTSP und MMS sind beide in zwei Varianten verfügbar: Eine verwendet UDP als zugrunde liegendes Übermittlungsprotokoll und die andere verwendet TCP.
Das Reader-Objekt verwendet immer TCP für Wiedergabesteuerungsbefehle, aber es kann entweder TCP oder UDP für die Übermittlung des gestreamten Inhalts verwenden. UDP wird für die Inhaltsübermittlung bevorzugt, da es weniger Bandbreitenaufwand verursacht als TCP. Das TCP-Protokoll gewährleistet einen zuverlässigen Transport durch die Verwendung von "virtuellen Leitungen", aber die Kosten dafür bedeuten, dass TCP nicht so gut für digitale Medienströme geeignet ist, wo eine effiziente Nutzung der Bandbreite wichtiger ist als gelegentlich verlorene Pakete.
Wenn eine URL "mms://" angibt, versucht der Leser, die folgenden Protokolle für die Datenübermittlung in der folgenden Reihenfolge zu verwenden:
- RTSPU (RTSP mit UDP)
- RTSPT (RTSP mit TCP)
- MMSU (MMS mit UDP)
- MMST (MMS mit TCP)
- HTTP
HTTP ist ein unidirektionales Protokoll, das auf TCP basiert, und ist das protokoll, das von Webservern verwendet wird. Streaming mit HTTP ist weniger effizient als die Verwendung von RTSP. Die meisten Firewalls sind jedoch so konfiguriert, dass sie HTTP-Anforderungen akzeptieren, während sie in der Regel andere Streamingprotokolle ablehnen.
Die Windows Media Services 9-Serie in Microsoft Windows Server 2003 lehnt mmSU- oder MMST-Anforderungen von einem Windows Media Format SDK-Reader ab, da RTSP das bevorzugte Streamingprotokoll ist. Windows Media Services, Version 4.1 und früher, unterstützen RTSP nicht. In diesem Fall greift das Readerobjekt auf MMSU oder HTTP zurück.
Das Protokollrollover gilt nicht, wenn das URL-Schema ein bestimmtes Protokoll angibt, z. B. "rtspu://" für RTSPU oder "https://" für HTTP. Wenn das URL-Schema "rtsp://" lautet, versucht der Leser RTSPU und RTSPT, aber keine anderen.
Nachdem der Reader eine Datei geöffnet hat, können Sie abfragen, welches Protokoll verwendet wird, indem Sie die IWMReaderAdvanced2::GetProtocolName-Methode für den Reader aufrufen. Während der Inhalt gestreamt oder heruntergeladen wird, gibt diese Methode den Namen zurück, sobald der Inhalt vollständig zwischengespeichert ist, gibt die GetProtocolName-Methode die Zeichenfolge "Cache" zurück.
Um die Namen aller Windows Media-Serverprotokolle abzurufen, die der Reader unterstützt, rufen Sie die IWMReaderNetworkConfig::GetSupportedProtocolName-Methode für den Reader auf. Sie können mindestens eines der Protokolle in der Protokollrolloverliste des Lesers mithilfe der IWMReaderNetworkConfig-Schnittstelle deaktivieren. Beispielsweise aktiviert oder deaktiviert die IWMReaderNetworkConfig::SetEnableTCP-Methode die TCP-basierten Protokolle, und IWMReaderNetworkConfig::SetEnableUDP aktiviert oder deaktiviert die UDP-basierten Protokolle. Diese Methoden gelten nur für den Protokollrollover; Die Protokolle sind weiterhin verfügbar, wenn das URL-Schema ein bestimmtes Protokoll enthält. Es gibt in der Regel keinen Grund, eines der Protokolle zu deaktivieren, die beim Protokollrollover verwendet werden. Dies kann die Leistung beeinträchtigen. Es kann jedoch für Tests nützlich sein.