03.04 Streaming de Vídeo Redes de Serviços e Comunicações Multimédia RSCM/ISEL-DEETC-SRC/2004 1
Streaming Dados multimédia que são consumidos à mesma velocidade que é enviado pela Internet ou outro tipo de rede Tudo o que seja pré guardado e depois reproduzido não é streaming Sistemas de streaming analógicos Rádio TV RSCM/ISEL-DEETC-SRC/2004 2
Sistemas de streaming digital Televisão digital Terrestre Satélite Cabo Streaming via Internet Redes com e sem fios (LAN e WAN) Comutação de pacotes RSCM/ISEL-DEETC-SRC/2004 3
Problemas que afectam o streamming Jitter O cliente tem de utilizar um buffer para balancear o atraso Se o buffer for demasiado pequeno pode existir um esgotamento de pacotes no buffer e levar à interrupção da reprodução Recuperação de erros Devido às características da transmissão em tempo real os dados perdidos não podem ser retransmitidos O decoder tem de conseguir continuar a reprodução mesmo com dados perdidos RSCM/ISEL-DEETC-SRC/2004 4
CBR vs VBR CBR (Constant Bit Rate) Implica um bitrate constante em média CBR = bitrate +/- 3% Facilidade de controlo VBR (Variable Bit Rate) Bitrate variável Coloca a rede sobre uma carga variável Pode ter picos que ultrapassem a largura de banda disponível Necessita de maior controlo RSCM/ISEL-DEETC-SRC/2004 5
Video-on-Demand vs Live VOD Streaming de conteúdo pré-gravado Possibilidade de controlo (start,stop,pause ) Cada utilizador tem a sua sessão unicast Live Internet Radio, Internet Television Captura -> Compressão -> Emissão (Streaming) Near-VOD, Playlists Streaming contínuo Não se pode controlar (pause, ffwd ) Juntar-se à recepção Multicast RSCM/ISEL-DEETC-SRC/2004 6
IP Multicast Múltiplos clientes subscrevem o mesmo grupo Multicast Apenas as redes com terminais interessados em determinado fluxo irão receber esse fluxo Os terminais juntam-se a grupos Multicast através do IGMP O servidor de origem dos conteúdos apenas vê uma ligação RSCM/ISEL-DEETC-SRC/2004 7
RTSP Real Time Streaming Protocol RSCM/ISEL-DEETC-SRC/2004 8
Introdução Definido no RFC 2326 Desenvolvido pela RealNetworks, Netscape e Universidade da Colômbia em 1998 Definido como protocolo do nível aplicacional para controlo da entrega de dados com propriedades de tempo real Protocolo baseado em texto Semelhante ao HTTP Está em draft o RTSPbis (Junho 2002) RSCM/ISEL-DEETC-SRC/2004 9
Características Protocolo cliente-servidor de controlo de fluxos multimédia Suporta a infra-estrutura web já existente Entrega eficiente de fluxos multimédia via streaming sobre redes IP Suporta qualquer tipo de sessão Útil para difusões em grande escala e áudio/video-ondemand Fornece um controlo equivalente a um VCR: pause, fast forward, reverse, e posicionamento absoluto Sincronização básica (avançada RTCP sender reports) Funcionalidades de Load balancing usando redireccionamento durante o estabelecimento da ligação RSCM/ISEL-DEETC-SRC/2004 10
Funcionalidades Streaming a partir do media-server: media-on-demand Unicast, cliente escolhe endereço/porto Multicast, servidor/cliente escolhe endereço/porto Independente do formato do ficheiro diferentes combinações de ficheiros Convite de um media server para uma conferencia: convite para uma conferencia controlada por várias pessoas Adicionar dados multimédia a uma apresentação já existente: utilizado para emissões ao vivo Uma sessão = um eixo temporal RSCM/ISEL-DEETC-SRC/2004 11
Desenho do Protocolo Similar ao HTTP (TCP + UDP, HTTP,...) HTTP/1.1 (RFC2616) HTTP = the Internet RPC protocol Suporta uma descrição de sessão genérica Pistas de controlo (áudio, vídeo) e apresentação (filme) Edição digital remota RSCM/ISEL-DEETC-SRC/2004 12
RTSP e HTTP Semelhanças: Formato do protocolo: texto, cabeçalhos MIME; Pedido/Resposta = linha com o pedido + cabeçalhos + corpo; Códigos de estado; Mecanismos de segurança; formato do URL; Negociação de conteúdo Diferenças: O servidor RTSP tem de manter estado sobre as sessões para correlacionar pedidos RTSP com um fluxo O HTTP é um protocolo asimétrico, mas no RTSP o media server e o cliente podem enviar pedidos Entrega de dados fora de banda ISO 10646 (UTF-8) em vez do ISO 8859-1 O Request-URI contém sempre um URI absoluto (ajuda o virtual hosting) RSCM/ISEL-DEETC-SRC/2004 13
Integração Web Página com o guia da programação Contém um apontador para uma descrição da sessão (SMIL) <session> <group> <track src="rtsp://audio.mtv.com/movie"> <track src="rtsp://video.mtv.com/movie"> </group> </session> RTSP controla e estabelece a entrega RSVP reserva recursos RTP entrega os dados multimédia RSCM/ISEL-DEETC-SRC/2004 14
URLs Apresentação completa: rtsp://media.example.com:554/twister Pista numa apresentação rtsp://media.example.com:554/twister/audiotrack Hierarquia de nomes hierarquia de dados multimédia sistema de ficheiros RSCM/ISEL-DEETC-SRC/2004 15
Tempo RTSP Normal play time (NPT) posição de cada stream em relação ao início da apresentação SMPTE timestamp tempo decorrido desde o início do clip Tempo absoluto (para eventos ao vivo) RSCM/ISEL-DEETC-SRC/2004 16
Métodos RTSP Cliente -> Servidor DESCRIBE obter descrição detalhada do objecto multimédia PAUSE parar a entrega, mas manter o estado PLAY começar a entrega RECORD começar a gravação SETUP estabelecer o transporte TEARDOWN remover o estado Servidor-> Cliente REDIRECT redireccionar o cliente para um servidor novo Servidor <-> Cliente ANNOUNCE mudar a descrição de um objecto multimédia GET_PARAMETER SET_PARAMETER controlo da codificação ou de um equipamento OPTIONS obter métodos disponiveis PING RSCM/ISEL-DEETC-SRC/2004 17
Respostas RTSP 1xx Informativo 2xx Sucesso 3xx Redireccionamento 4xx Erro do cliente 5xx Erro do servidor RSCM/ISEL-DEETC-SRC/2004 18
Funcionamento Protocolo fora de banda, utiliza duas ligações Controlo porto 554 Fluxo Multimédia Permite o uso de TCP ou UDP para o canal de controlo cliente HTTP GET descritor da sessão SETUP PLAY RTP áudio RTP vídeo RTCP PAUSE servidor web media server TEARDOWN RSCM/ISEL-DEETC-SRC/2004 19
Métodos RTSP DESCRIBE Obtém a descrição detalhada de uma apresentação ou objecto multimédia identificado pelo URL do pedido C->S: DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 CSeq: 312 Accept: application/sdp, application/rtsl, application/mheg S->C: RTSP/1.0 200 OK CSeq: 312 Date: 23 Jan 1997 15:35:06 GMT Content-Type: application/sdp Content-Length: 376 v=0 o=mhandley 289526 289807 IN IP4 126.16.64.4 s=sdp Seminar i=a Seminar on the session description protocol u=http://www.cs.ucl.ac.uk/staff/m.handley/sdp.03.ps e=mjh@isi.edu (Mark Handley) c=in IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 3456 RTP/AVP 0 m=video 2232 RTP/AVP 31 m=whiteboard 32416 UDP WB a=orient:portrait RSCM/ISEL-DEETC-SRC/2004 20
Obter a descrição via Web C->W: GET /twister.sdp HTTP/1.1 Host: www.example.com Accept: application/sdp W->C: HTTP/1.0 200 OK Content-Type: application/sdp v=0 o=- 2890844526 2890842807 IN IP4 192.16.24.202 s=rtsp Session m=audio 0 RTP/AVP 0 a=control:rtsp://audio.com/twister/audio.en m=video 0 RTP/AVP 31 a=control:rtsp://video.com/twister/video RSCM/ISEL-DEETC-SRC/2004 21
Métodos RTSP SETUP Especifica o mecanismo de transporte a ser utilizado para os dados multimédia C->S: SETUP rtsp://example.com/foo/bar/baz.rm RTSP/1.0 CSeq: 302 Transport: RTP/AVP;unicast;client_port=4588-4589 S->C: RTSP/1.0 200 OK CSeq: 302 Date: 23 Jan 1997 15:35:06 GMT Session: 47112344 Transport: RTP/AVP;unicast;client_port=4588-4589;server_port=6256-6257 RSCM/ISEL-DEETC-SRC/2004 22
Métodos RTSP PLAY Instrui o servidor para começar a enviar dados através do mecanismo especificado no SETUP C->S: PLAY rtsp://audio.example.com/twister.en RTSP/1.0 CSeq: 833 Session: 12345678 Range: smpte=0:10:20-;time=19970123t153600z S->C: RTSP/1.0 200 OK CSeq: 833 Date: 23 Jan 1997 15:35:06 GMT Range: smpte=0:10:22-;time=19970123t153600z RSCM/ISEL-DEETC-SRC/2004 23
Métodos RTSP PAUSE Causa a entrega de um fluxo a ser interrompida temporariamente C->S: PAUSE rtsp://example.com/fizzle/foo RTSP/1.0 CSeq: 834 Session: 12345678 S->C: RTSP/1.0 200 OK CSeq: 834 Date: 23 Jan 1997 15:35:06 GMT RSCM/ISEL-DEETC-SRC/2004 24
Métodos RTSP TEARDOWN Instrui o servidor a parar o envio do fluxo multimédia C->S: TEARDOWN rtsp://example.com/fizzle/foo RTSP/1.0 CSeq: 892 Session: 12345678 S->C: RTSP/1.0 200 OK CSeq: 892 RSCM/ISEL-DEETC-SRC/2004 25
Métodos RTSP REDIRECT Instruir o cliente para aceder ao conteúdo noutro lado O cabeçalho location tem o novo URL S->C: REDIRECT rtsp://example.com/fizzle/foo RTSP/1.0 CSeq: 732 Location: rtsp://bigserver.com:8001 Range: clock=19960213t143205z RSCM/ISEL-DEETC-SRC/2004 26
Ligações e Fiabilidade Pode usar Uma ligação persistente Uma por cada transacção pedido/resposta Modo connectionless Fiabilidade Se TCP, envia o pedido apenas uma vez Se UDP, retransmite o pedido de acordo com o RTT CSeq para manter a sequencia dos pedidos Usa o timestamp para estimação do RTT RSCM/ISEL-DEETC-SRC/2004 27
SAP Session Announcement Protocol RSCM/ISEL-DEETC-SRC/2004 28
Introdução Fornece uma descrição de uma sessão através de multicast Serve como protocolo de reserva de endereçamento Um servidor SAP periodicamente envia via multicast um pacote de anúncio para um endereço multicast RSCM/ISEL-DEETC-SRC/2004 29
Funcionamento Mensagens SAP transportam descritor SDP de uma sessão Utilizam o multicast para difusão destas mensagens Periodicamente é enviado um pacote SAP para o endereço 224.2.127.254 e porto 9875 A gama 224.2.128.0-224.2.255.255 é usada para as sessões globais Permite anunciar o fim de uma sessão ou alterar parâmetros Fornece uma directoria com a programação das sessões RSCM/ISEL-DEETC-SRC/2004 30