O Real-Time Streaming (RTS) é um recurso adicional do ApsaraVideo Live que proporciona latência de nível de milissegundo para milhões de espectadores simultâneos por meio do ApsaraVideo Player SDK. O RTS resolve a latência de 3 a 6 segundos, comum em transmissões ao vivo tradicionais, e oferece latência ultrabaixa, travamentos mínimos e reprodução instantânea.
Para obter mais informações sobre recursos, documentação da API e perguntas frequentes, consulte iOS Player.
Reprodução RTS
O iOS Player SDK integra o RTS SDK nativo para ative a transmissão ao vivo com baixa latência. Para mais detalhes, consulte Implementar pull de stream RTS no iOS.
Para exemplos de código, consulte o módulo RTS ultra-low latency live playback (RtsLiveStream) no projeto API-Example. Esse projeto de exemplo em Objective-C demonstra os principais recursos do iOS Player SDK.
Múltiplas definições com RTS
Este recurso aceita URLs de reprodução do ApsaraVideo Live e URLs de streams transcodificados gerados por transcodificação padrão ou personalizada. Para saber mais sobre transcodificação de streams ao vivo, consulte Gerenciamento de transcodificação. Para obter detalhes sobre como adquirir URLs de streaming, acesse Gerar URLs de streaming.
A troca de definição é compatível com streams ao vivo que utilizam os protocolos RTS e HTTP-FLV.
Defina o tamanho do grupo de imagens (GOP) para ingestão de stream como 1 s ou 2 s. Um GOP maior pode causar saltos na reprodução durante a troca de streams.
No nome de domínio de reprodução, ative as opções Output RTMP timestamp during FLV playback e Output RTMP timestamp after upstream disconnection. Na configuração de transcodificação, ative Timestamp follows source e Keyframe follows source. Caso contrário, a troca de stream pode apresentar travamentos ou falhar. Para ativar essas opções, envie um ticket.
A troca falhará se você mudar para uma URL de stream que não atenda aos requisitos acima.
Trocar definição
Para alterar a definição, chame o método switchStream e passe a URL da nova definição.
// Start playback.
[self.player setUrlSource:oldUrl];
[self.player prepare];
[self.player start];
// Switch to another URL during playback.
[self.player switchStream:newUrl];
Notificações de troca de resolução
Os callbacks a seguir notificam sobre o sucesso ou falha na troca de definição.
// Callback for a successful switch.
- (void)onStreamSwitchedSuccess:(AliPlayer*)player URL:(NSString*)URL;
// Callback for a failed switch.
- (void)onStreamSwitchedFail:(AliPlayer*)player URL:(NSString*)URL errorModel:(AVPErrorModel *)errorModel;