Condividi tramite


Rollover del protocollo

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal writer sink. Lettore di origine e writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine e writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il rollover del protocollo è un processo in cui l'oggetto reader individua il protocollo di streaming migliore disponibile da un server. Il lettore usa il rollover del protocollo ogni volta che apre un URL che contiene uno schema "mms".

Il lettore supporta diversi protocolli:

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

I protocolli RTSP e MMS sono entrambi disponibili in due versioni, uno che usa UDP come protocollo di recapito sottostante e l'altro tramite TCP.

L'oggetto lettore usa sempre TCP per i comandi di controllo di riproduzione, ma può usare TCP o UDP per il recapito del contenuto trasmesso. UDP è preferibile per la distribuzione di contenuti, perché impone un sovraccarico di larghezza di banda inferiore a TCP. Il protocollo TCP garantisce un trasporto affidabile tramite l'uso di "circuiti virtuali", ma il costo di questa operazione significa che TCP non è particolarmente adatto per i flussi multimediali digitali, in cui l'uso efficiente della larghezza di banda è più importante che occasionalmente i pacchetti persi.

Quando un URL specifica "mms://", il lettore tenta di usare i protocolli seguenti per il recapito dei dati, nell'ordine seguente:

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

HTTP è un protocollo unidirezionale basato su TCP ed è il protocollo usato dai server Web. Lo streaming con HTTP è meno efficiente rispetto all'uso di RTSP. Tuttavia, la maggior parte dei firewall è configurata per accettare richieste HTTP, mentre in genere rifiutano altri protocolli di streaming.

Windows Media Services Serie 9 in Microsoft Windows Server 2003 rifiuterà qualsiasi richiesta MMSU o MMST da un lettore windows Media Format SDK, perché RTSP è il protocollo di streaming preferito. Servizi multimediali di Windows versione 4.1 e precedenti non supportano RTSP. In questo caso l'oggetto lettore esegue il fallback a MMSU o HTTP.

Il rollover del protocollo non si applica se lo schema URL fornisce un protocollo specifico, ad esempio "rtspu://" per RTSPU o "https://" per HTTP. Se lo schema URL è "rtsp://", il lettore prova RTSPU e RTSPT, ma nessun altro.

Dopo che il lettore apre un file, è possibile eseguire una query sul protocollo usato chiamando il metodo IWMReaderAdvanced2::GetProtocolName nel lettore. Durante lo streaming o il download del contenuto, questo metodo restituisce il nome non appena il contenuto viene memorizzato completamente nella cache, il metodo GetProtocolName restituisce la stringa "Cache".

Per ottenere i nomi di tutti i protocolli del server Windows Media supportati dal lettore, chiamare il metodo IWMReaderNetworkConfig::GetSupportedProtocolName nel lettore. È possibile disabilitare uno o più protocolli nell'elenco di rollover del protocollo del lettore usando l'interfaccia IWMReaderNetworkConfig . Ad esempio, il metodo IWMReaderNetworkConfig::SetEnableTCP abilita o disabilita i protocolli basati su TCP e IWMReaderNetworkConfig::SetEnableUDP abilita o disabilita i protocolli basati su UDP. Questi metodi si applicano solo al rollover del protocollo; i protocolli sono ancora disponibili se lo schema URL contiene un protocollo specifico. In genere non c'è motivo di disabilitare nessuno dei protocolli usati nel rollover del protocollo; in questo modo è possibile ridurre le prestazioni. Tuttavia, potrebbe essere utile per i test.