Substituição de protocolo
[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
A substituição de protocolo é um processo pelo qual o objeto leitor descobre o melhor protocolo de streaming disponível em um servidor. O leitor usa a substituição de protocolo sempre que abre uma URL que contém um esquema "mms".
O leitor dá suporte a vários protocolos:
- RTSP (Protocolo de Streaming em Tempo Real)
- Protocolo HTTP
- Microsoft Media Server (MMS)
Os protocolos RTSP e MMS vêm em dois tipos, um usando UDP como o protocolo de entrega subjacente e o outro usando TCP.
O objeto leitor sempre usa TCP para comandos de controle de reprodução, mas pode usar TCP ou UDP para entrega do conteúdo transmitido. O UDP é preferencial para a entrega de conteúdo, pois impõe menos sobrecarga de largura de banda do que o TCP. O protocolo TCP garante o transporte confiável por meio do uso de "circuitos virtuais", mas o custo de fazer isso significa que o TCP não é tão adequado para fluxos de mídia digital, onde o uso eficiente da largura de banda é mais importante que pacotes perdidos ocasionais.
Quando uma URL especifica "mms://", o leitor tenta usar os seguintes protocolos para entrega de dados, na seguinte ordem:
- RTSPU (RTSP usando UDP)
- RTSPT (RTSP usando TCP)
- MMSU (MMS usando UDP)
- MMST (MMS usando TCP)
- HTTP
HTTP é um protocolo unidirecional baseado em TCP e é o protocolo usado por servidores Web. O streaming com HTTP é menos eficiente que usar RTSP. No entanto, a maioria dos firewalls é configurada para aceitar solicitações HTTP, enquanto eles normalmente rejeitam outros protocolos de streaming.
O Windows Media Services Série 9 no Microsoft Windows Server 2003 rejeitará quaisquer solicitações MMSU ou MMST de um leitor do SDK de Formato de Mídia do Windows, pois RTSP é o protocolo de streaming preferencial. Os Serviços de Mídia do Windows versão 4.1 e anteriores não dão suporte ao RTSP. Nesse caso, o objeto leitor volta para MMSU ou HTTP.
A substituição de protocolo não se aplicará se o esquema de URL fornecer um protocolo específico, como "rtspu://" para RTSPU ou "https://" para HTTP. Se o esquema de URL for "rtsp://", o leitor tentará RTSPU e RTSPT, mas nenhum outro.
Depois que o leitor abrir um arquivo, você poderá consultar qual protocolo ele está usando chamando o método IWMReaderAdvanced2::GetProtocolName no leitor. Enquanto o conteúdo está sendo transmitido ou baixado, esse método retorna o nome assim que o conteúdo é completamente armazenado em cache, o método GetProtocolName retorna a cadeia de caracteres "Cache".
Para obter os nomes de todos os protocolos de servidor do Windows Media compatíveis com o leitor, chame o método IWMReaderNetworkConfig::GetSupportedProtocolName no leitor. Você pode desabilitar um ou mais dos protocolos na lista de substituição de protocolo do leitor, usando a interface IWMReaderNetworkConfig . Por exemplo, o método IWMReaderNetworkConfig::SetEnableTCP habilita ou desabilita os protocolos baseados em TCP e IWMReaderNetworkConfig::SetEnableUDP habilita ou desabilita os protocolos baseados em UDP. Esses métodos se aplicam somente à substituição de protocolo; os protocolos ainda estarão disponíveis se o esquema de URL contiver um protocolo específico. Geralmente, não há nenhum motivo para desabilitar qualquer um dos protocolos usados na substituição de protocolo; Fazer isso pode prejudicar o desempenho. No entanto, pode ser útil para teste.