Delen via


Protocol Rollover

[De functie die is gekoppeld aan deze pagina, Windows Media Format 11 SDK, is een verouderde functie. Het is vervangen door Source Reader en Sink Writer. Bronlezer en Sink Writer zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken bronlezer en Sink Writer- in plaats van Windows Media Format 11 SDK, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]

Protocolrollover is een proces waarbij het lezerobject het beste streamingprotocol detecteert dat beschikbaar is op een server. De lezer gebruikt protocolrollover wanneer er een URL wordt geopend die een mms-schema bevat.

De lezer ondersteunt verschillende protocollen:

  • Real Time Streaming Protocol (RTSP)
  • Hypertext Transfer Protocol (HTTP)
  • Microsoft Media Server (MMS)

De RTSP- en MMS-protocollen hebben beide twee varianten, één met UDP- als het onderliggende leveringsprotocol en de andere met TCP.

Het lezerobject gebruikt altijd TCP voor het afspelen van besturingsopdrachten, maar het kan TCP of UDP gebruiken voor de levering van de gestreamde inhoud. UDP heeft de voorkeur voor het leveren van inhoud, omdat er minder bandbreedteoverhead is dan TCP. Het TCP-protocol zorgt voor betrouwbaar transport via het gebruik van 'virtuele circuits', maar de kosten hiervoor betekent dat TCP niet zo geschikt is voor digitale mediastreams, waarbij efficiënt gebruik van bandbreedte belangrijker is dat soms verloren pakketten verloren gaan.

Wanneer een URL 'mms://' opgeeft, probeert de lezer de volgende protocollen te gebruiken voor het leveren van gegevens, in de volgende volgorde:

  1. RTSPU (RTSP met UDP)
  2. RTSPT (RTSP met TCP)
  3. MMSU (MMS met UDP)
  4. MMST (MMS met TCP)
  5. HTTP

HTTP is een eenrichtingsprotocol op basis van TCP en is het protocol dat wordt gebruikt door webservers. Streamen met HTTP is minder efficiënt voor het gebruik van RTSP. De meeste firewalls zijn echter geconfigureerd voor het accepteren van HTTP-aanvragen, terwijl ze doorgaans andere streamingprotocollen afwijzen.

Windows Media Services 9 Series in Microsoft Windows Server 2003 weigert MMSU- of MMST-aanvragen van een Windows Media Format SDK-lezer, omdat RTSP het voorkeursstreamingprotocol is. Windows Media Services versie 4.1 en eerder bieden geen ondersteuning voor RTSP. In dit geval valt het lezerobject terug op MMSU of HTTP.

Protocolrollover is niet van toepassing als het URL-schema een specifiek protocol geeft, zoals 'rtspu://' voor RTSPU of 'https://' voor HTTP. Als het URL-schema 'rtsp://' is, probeert de lezer RTSPU en RTSPT, maar geen andere.

Nadat de lezer een bestand heeft geopend, kunt u een query uitvoeren op het protocol dat wordt gebruikt door de methode IWMReaderAdvanced2::GetProtocolName methode op de lezer aan te roepen. Terwijl de inhoud wordt gestreamd of gedownload, retourneert deze methode de naam zodra de inhoud volledig in de cache is opgeslagen, retourneert de methode GetProtocolName de tekenreeks 'Cache'.

Als u de namen wilt ophalen van alle Windows Media Server-protocollen die de lezer ondersteunt, roept u de methode IWMReaderNetworkConfig::GetSupportedProtocolName methode aan voor de lezer. U kunt een of meer van de protocollen in de rolloverlijst van de lezer uitschakelen met behulp van IWMReaderNetworkConfig interface. De methode IWMReaderNetworkConfig::SetEnableTCP schakelt bijvoorbeeld de tcp-protocollen in of uit en IWMReaderNetworkConfig::SetEnableUDP de op UDP gebaseerde protocollen in- of uitschakelt. Deze methoden zijn alleen van toepassing op protocolrollover; de protocollen zijn nog steeds beschikbaar als het URL-schema een specifiek protocol bevat. Er is meestal geen reden om een van de protocollen die worden gebruikt in protocolrollover uit te schakelen; Als u dit doet, kunnen de prestaties afnemen. Het kan echter handig zijn om te testen.