BRPI1007814B1 - Método para reproduzir sem problemas a mídia em um cliente, sistema de computador para processamento de mídia sem problemas a partir de um evento ao vivo e dispositivo de armazenamento legível por computador - Google Patents

Método para reproduzir sem problemas a mídia em um cliente, sistema de computador para processamento de mídia sem problemas a partir de um evento ao vivo e dispositivo de armazenamento legível por computador Download PDF

Info

Publication number
BRPI1007814B1
BRPI1007814B1 BRPI1007814-2A BRPI1007814A BRPI1007814B1 BR PI1007814 B1 BRPI1007814 B1 BR PI1007814B1 BR PI1007814 A BRPI1007814 A BR PI1007814A BR PI1007814 B1 BRPI1007814 B1 BR PI1007814B1
Authority
BR
Brazil
Prior art keywords
media
block
client
server
blocks
Prior art date
Application number
BRPI1007814-2A
Other languages
English (en)
Inventor
Vishal Sood
Jack E. Freelander
Anirban Roy
Lin Liu
Geqiang Zhang
Krishna Duggaraju
Sudheer Sirivara
John A. Bocharov
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42731571&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI1007814(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BRPI1007814A2 publication Critical patent/BRPI1007814A2/pt
Publication of BRPI1007814B1 publication Critical patent/BRPI1007814B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L65/4092
    • H04L65/602
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Investigating Or Analysing Biological Materials (AREA)

Abstract

variação contínua, meios de fluxo do cliente stateless um sistema adaptativo de fluxo é descrito neste documento que fornece uma conexão sem estado entre o cliente e o servidor para meios de reprodução de fluxo em que os dados são formatados de uma maneira que permite que o cliente tome decisões e reaja mais rapidamente às condições mutáveis da rede. o cliente solicita blocos uniformes dos meios de comunicação a partir do servidor, que incluem uma parcela da mídia. os pedidos de adaptação do sistema de blocos de partes de um arquivo de mídia ou de um evento ao vivo em pequenos blocos do tamanho de cada um com um url distinto. isso permite que os meios de fluxo de dados sejam armazenados por infra-estrutura existente da internet cache. cada bloco contém informações de metadados que descreve a codificação do bloco e de conteúdo de mídia para a reprodução pelo cliente. o servidor pode fornecer blocos em várias codificações para que o cliente possa mudar rapidamente aos blocos de uma taxa de bit diferente ou velocidade de reprodução.

Description

Fundamento
[0001] Meios de fluxo são multimídias que estão constantemente recebidas e normalmente apresentadas, por um usuário final (usando um cliente) enquanto ele está sendo entregue por um provedor de fluxo (usando um servidor). Vários protocolos existem para meios de fluxo, incluindo o Tempo-Real Protocolo de Fluxo (RTSP), Tempo-Real Protocolo deTransporte (RTP), e o Tempo-Real Protocolo de Controle de Transporte (RTCP), que aplicações de fluxo utilizam frequentemente juntos. O Tempo-Real Protocolo de Fluxo (RTSP), desenvolvido pela Internet Força-Tarefa de Engenharia (IETF) e criado em 1998 como Pedido de Comentários (RFC) 2326, é um protocolo para uso em sistemas de meios de fluxo, que permite que um cliente possa controlar remotamente um servidor de meios de fluxo, emissão de VCR-tipo comandos como "play" e "pause", e permitindo que o tempo de acesso seja baseado em arquivos em um servidor.
[0002] O envio de fluxo de dados em si não é parte do protocolo RTSP. A maioria dos servidores RTSP usam o RTP baseado em padrões como o protocolo de transporte para o real de áudio / vídeo de dados, atuando tanto como um canal de metadados. RTP define um formato de pacote padronizado para a entrega de áudio e vídeo através da Internet. RTP foi desenvolvido pelo Grupo de Transporte Áudio- Vídeo de trabalho da IETF e publicado pela primeira vez em 1996 como RFC 1889, e substituído pelo RFC 3550 em 2003. O protocolo é similar em sintaxe e operação para Hipertexto Transporte Protocolo (HTTP), mas RTSP acrescenta novas solicitações. Enquanto HTTP é stateless, RTSP é um protocolo stateful. RTSP usa um ID de sessão para manter o controle de sessões, quando necessário. Mensagens RTSP são enviadas do cliente ao servidor, embora existam algumas exceções em que o servidor irá enviar mensagens para o cliente.
[0003] Aplicações de fluxo RTP costumam usar em conjunto com o RTCP. Enquanto carrega a RTP fluxos de mídia (por exemplo, áudio e vídeo) ou fora da faixa de sinalização (tom dual-multi-frequência (DTMF)), aplicações de fluxo de uso RTCP para monitorar as estatísticas de transmissão e qualidade de serviço (QoS) de informação. RTP permite apenas um tipo de mensagem, que carrega os dados da origem para o destino. Em muitos casos, há uma necessidade de outras mensagens em uma sessão. Estas mensagens de controle do fluxo e da qualidade dos dados permitem que o destinatário possa enviar um feedback para a fonte ou fontes. RTCP é um protocolo projetado para esta finalidade. RTCP possui cinco tipos de mensagens: relatório do remetente, o relatório receptor, mensagem de descrição da fonte, a mensagem de adeus, e aplicações específicas da mensagem. RTCP fornece informações fora de banda de controle para um fluxo RTP e parceiros com a RTP na entrega e embalagem dos dados multimídia, mas não transportam quaisquer dados em si. Aplicações de fluxo de uso RTCP periodicamente transmitem pacotes de controle aos partici-pantes de uma sessão multimídia de fluxo. Uma das funções do RTCP é fornecer feedback sobre a qualidade do serviço RTP está fornecendo. RTCP reúne estatísticas sobre uma conexão de mídia e informações como bytes enviados, pacotes enviados, pacotes perdidos, jitter, feedback, e atraso de ida e volta. Um aplicativo pode usar essa informação para aumentar a qualidade do serviço, talvez pela limitação de fluxo ou usando um codec diferente ou taxa de bits.
[0004] Um problema com o fluxo de mídia existente de arquitetu- ras é a forte ligação entre o servidor e o cliente. A conexão stateful entre cliente e servidor cria a sobrecarga do servidor adicional, porque o servidor controla o estado atual de cada cliente. Isso também limita a escalabilidade do servidor. Além disso, o cliente não pode reagir rapidamenteàs mudanças de condições, tais como perda de pacotes aumentados, a largura de banda reduzida, as solicitações do usuário para um conteúdo diferente ou modificar o conteúdo existente (por exemplo, acelerar ou retroceder), e assim por diante, sem antes comunicar com o servidor e à espera do servidor para se adaptar e responder. Muitas vezes, quando um cliente relata uma menor largura de banda disponível (por exemplo, através de RTCP), o servidor não se adapta rapidamente causando rupturas na mídia para ser notado pelo usuário no cliente como pacotes que excedem a largura de banda disponível não são recebidos e novas dos pacotes de baixa taxa de bits não são enviados a partir do servidor no tempo. Para evitar esses problemas, os clientes muitas vezes usam dados de buffer, mas o buffer introduz latência, o que para eventos ao vivo pode ser inaceitável.
[0005] Além disso, a Internet contém vários tipos de itens para download de conteúdo de mídia, incluindo áudio, vídeo, documentos, e assim por diante. Esses itens de conteúdo são geralmente muito grandes como vídeos em centenas de megabytes. Os usuários geralmente recuperam documentos através da Internet usando HTTP através de um navegador web. A Internet tem construído uma grande infra- estrutura de roteadores e proxies que são eficazes no cache de dados para HTTP. Os servidores podem fornecer dados em cache para os clientes com menos atrasos e usando menos recursos do que re- solicitando o conteúdo da fonte original. Por exemplo, um usuário em Nova York pode fazer download de um item de conteúdo servido de um host no Japão, e receber o item de conteúdo através de um roteador na Califórnia. Se um usuário em Nova Jersey solicita o mesmo ar- quivo, o roteador na Califórnia pode ser capaz de fornecer o item de conteúdo, sem novamente solicitar os dados do host no Japão. Isso reduz o tráfego de rede em rotas possivelmente esticadas, e permite ao usuário, em Nova Jersey para receber o item de conteúdo com menoslatência.
[0006] Infelizmente, a mídia ao vivo muitas vezes não pode ser armazenada em cache usando os protocolos existentes, e cada cliente solicita a mídia do mesmo servidor ou conjunto de servidores. Além disso, quando meios de fluxo pode ser armazenada em cache, cache de hardware especializado é frequentemente envolvido, ao invés de infra-estrutura de Internet existente e disponível com base em HTTP caching. A falta de cache limita o número de espectadores simultâneos e solicita que os servidores podem manusear, e limita a participação de um evento ao vivo. O mundo está cada vez mais usando a internet para consumir até as informações minutos ao vivo, como o número recorde de usuários que assistiu eventos ao vivo, como a abertura dos Jogos Olímpicos de 2008 através da Internet. As limitações da tecnologia atual estão retardando a adoção da Internet como um meio para consumir este tipo de conteúdo de mídia.
Sumário
[0007] Um sistema adaptativo de fluxo é descrito neste documento que fornece uma conexão sem estado entre o cliente e o servidor para meios de reprodução de fluxo em que os dados são formatados de uma maneira que permite que o cliente tome decisões tradicionalmente desempenhadas pelo servidor e, portanto, reagir mais rapidamente às mudanças das condições da rede. O cliente solicita blocos uniformes dos meios de comunicação a partir do servidor, que incluem uma parcela da mídia. Os pedidos de adaptação do sistema de fluxo de partes de um arquivo de mídia ou de um evento ao vivo em pequenos blocos do tamanho de cada um com um URL distinto. Isto permite in- fra-estrutura de cache existente da Internet para armazenar em cache meios de fluxo, permitindo assim que mais clientes possam ver o mesmo conteúdo na mesma época. Como o evento progride, o cliente continua solicitando blocos até o final do evento ou mídia. Cada bloco contém informações de metadados que descreve a codificação do bloco e de conteúdo de mídia para a reprodução pelo cliente. O servidor pode fornecer blocos em várias codificações para que o cliente possa mudar rapidamente a blocos de uma taxa de bit diferentes ou velocidade de reprodução. Assim, o sistema adaptativo de fluxo fornece uma experiência aprimorada para o usuário com menos quebras em meios de fluxo de reprodução, e uma maior probabilidade de que o cliente receberá a mídia com menor latência de um servidor de cache local.
[0008] Este resumo é fornecido para apresentar uma seleção de conceitos de uma forma simplificada que estão descritos abaixo na descrição detalhada. Este sumário não se destina a identificar as ca- racterísticas-chave ou características essenciais da matéria reivindicada, nem é destinado a ser usado para limitar o escopo da matéria reivindicada.
Breve Descrição dos Desenhos
[0009] Figura 1 é um diagrama de blocos que ilustra os componen tes do sistema adaptativo de fluxo, em uma modalidade.
[00010] Figura 2 é um diagrama de blocos que ilustra um ambiente operacional do sistema de transmissão de variação contínua usando a Microsoft Windows e IIS, em uma modalidade.
[00011] Figura 3 é um diagrama que ilustra o fluxo de processamento do sistema de adaptação de fluxo em um cliente para a repro dução de mídia, em uma modalidade.
[00012] Figura 4 é um diagrama que ilustra o fluxo de processamento do sistema de adaptação de fluxo para lidar com um bloco úni co de mídia, em uma modalidade.
Descrição Detalhada
[00013] Um sistema adaptativo de fluxo é descrito neste documento que fornece uma conexão sem estado entre o cliente e o servidor para meios de reprodução de fluxo em que os dados são formatados de uma maneira que permite que o cliente tome decisões muitas vezes deixadas para o servidor em protocolos passados, e, portanto, reagir mais rapidamente às condições mutáveis da rede. Além disso, o sistema adaptativo de fluxo funciona de uma forma que permite infra- estrutura de cache existente na Internet para armazenar em cache de dados os meios de fluxo, permitindo que mais clientes possa ver o mesmo conteúdo na mesma época. Os pedidos de adaptação do sistema de fluxo das partes de um arquivo de mídia ou de um evento ao vivo em pequenos blocos do tamanho de cada um com um URL distinto. Cada bloco pode ser um arquivo de mídia em seu próprio direito, ou pode ser parte de um arquivo de mídia inteira. Como o evento progride, o cliente continua solicitando blocos até o final do evento. Cada bloco contém informações de metadados que descreve a codificação do bloco e de conteúdo de mídia para a reprodução pelo cliente. O servidor pode fornecer blocos em várias codificações para que o cliente possa, por exemplo, alternar rapidamente a blocos de uma taxa de bit diferentes ou velocidade de reprodução. Porque os blocos de aderir a World Wide Web Consortium Padrões (W3C) HTTP, os blocos são pequenos o suficiente para ser armazenado em cache, e o sistema fornece os blocos da mesma forma a cada cliente, os blocos são naturalmente em cache por infra-estrutura existente na Internet, sem modificação. Assim, o sistema adaptativo de fluxo fornece uma experiência aprimorada para o usuário com menos quebras em meios de fluxo de reprodução, e uma maior probabilidade de que o cliente receberá a mídia com menor latência de um servidor de cache local. Porque a conexão entre o cliente e o servidor é stateless, o mesmo cliente e servi- dor não precisam ser ligados para a duração de um evento de muito tempo. O sistema aqui descrito stateless não tem afinidade servidor, permitindo que os clientes juntem manifestações de servidores que podem ter começado em tempos diferentes, e também permitir que os administradores do servidor para abrir ou fechar servidores de origem como manda a carga.
[00014] Em algumas modalidades, o sistema adaptativo de fluxo utiliza um formato de nova transmissão de dados entre o servidor e o cliente. O cliente solicita blocos de mídia de um servidor que incluem uma parcela da mídia. Por exemplo, para a 10 - arquivo minuto, o cliente pode solicitar 2 segundos blocos. Observe que, diferentemente de fluxo típico em que o servidor envia dados para o cliente, neste caso o cliente puxa blocos de mídia a partir do servidor. No caso de uma transmissão ao vivo, o servidor pode estar criando a mídia on the fly e produzir blocos respondendo às solicitações do cliente. Assim, o clientesó pode ser vários blocos por trás do servidor em termos de quão rápido o servidor cria blocos e quão rápido são os blocos de pedidos do cliente.
[00015] Cada bloco contém metadados e conteúdo de mídia. Os metadados podem descrever informações úteis sobre o conteúdo de mídia, tais como a taxa de bits do conteúdo de mídia, onde o conteúdo de mídia se encaixa em um elemento de mídia maiores (por exemplo, este bloco representa offset 1: 10 em um clipe de vídeo de 10 minutos), o codec utilizado para codificar o conteúdo de mídia, e assim por diante. O cliente usa essas informações para colocar o bloco em um storyboard do elemento media maiores e de decodificar corretamente e reprodução do conteúdo de mídia.
[00016] Figura 1 é um diagrama de blocos que ilustra os componentes do sistema adaptativo de fluxo, em uma modalidade. O sistema adaptativo de fluxo 100 inclui um componente pedido bloco 110, um componente de análise bloco 120, um componente de montagem manifesta 130, um componente de reprodução de mídia 140, um componente de monitorização de QoS 150, e um componente de sincronização do relógio 160. Cada um destes componentes é descrito em mais detalhes aqui. O sistema adaptativo de fluxo 100, como aqui descrito opera principalmente em um sistema de computador cliente. No entanto, aqueles versados na técnica vão reconhecer que vários componentes do sistema podem ser colocados em vários locais dentro de um ambiente de rede para fornecer conteúdo específico de resultados positivos.
[00017] O componente pedido bloco 110 faz solicitações do cliente para blocos individuais de mídia a partir do servidor. Conforme mostrado na Figura 2, o pedido do cliente pode passar primeiro a um servidor de borda (por exemplo, um cache de Internet), em seguida, para um servidor de origem, e depois a um servidor ingerir. Em cada fase, se os dados solicitados são encontrados, então o pedido não ir para o próximo nível. Por exemplo, se o servidor de borda tem os dados solicitados e, em seguida o cliente recebe os dados do servidor de borda e o servidor de origem não recebe o pedido. Cada bloco pode ter um Uniforme Recurso Localizador (URL) que, individualmente, identifica o bloco. Servidores cache de internet são bons em cache de respostas a solicitações de URL do servidor específico (por exemplo, HTTP GET). Assim, quando o primeiro cliente de chamadas através do servidor para obter um bloco, a borda de cache servidores que bloco e posterior de clientes que solicitam a mesma quantidade pode receber o bloco do servidor de borda (com base no tempo de vida do cache e tempo de servidor para viver (TTL) configurações). O componente pedido do bloco 110 recebe o bloco e passa para o componente de análise do bloco 120 para interpretação.
[00018] O componente de análise do bloco 120 interpreta o formato de um bloco de mídia recebida pela solicitação de componente bloco 110 e separa o bloco em suas partes componentes. Tipicamente, o bloco inclui uma parte de cabeçalho contendo metadados, e uma porção de dados que contenha conteúdo de mídia. O componente de análise do bloco fornece os metadados para a montagem de componentes manifestados e 130 o conteúdo de mídia com o componente mídia playback 140.
[00019] O componente de montagem manifestado 130 constrói um manifesto que descreve o elemento de mídia para o qual recebeu o conteúdo de mídia pertence. Grandes arquivos de mídia que os clientes de download como um todo (ou seja, não fluxo) muitas vezes inclui um manifesto descrevendo todo o arquivo, os codecs e taxas de bits usados para codificar várias partes do arquivo, marcadores de posições significativas com o arquivo, e assim por diante. Durante a transmissão de conteúdo, especialmente ao vivo, um servidor não pode fornecer um manifesto completo porque o evento ainda está em curso. Assim, o servidor fornece o máximo de manifestação como ele pode através dos metadados no bloco de mídia. O servidor também pode fornecer uma interface de programação de aplicativos (API), como uma URL pré-definida, para que o cliente solicite o manifesto até o ponto atual no fluxo de mídia. Isto pode ser útil quando o cliente se junta a um evento, transmitido ao vivo após o evento que já está em andamento. O manifesto permite ao cliente solicitar previamente transmição de porções do elemento de mídia (por exemplo, rebobina- mento), e o cliente continua a receber novas porções do manifesto através do metadados dos pedaços de mídia de fluxo.
[00020] O componente de montagem manifestado 130 constrói um manifesto semelhante ao disponível para um arquivo de mídia completo. Assim, como o produto caso, se o usuário quiser ignorar ao contrário na mídia (por exemplo, retroceder ou avançar para uma posição particular), em seguida, avançar novamente, o usuário pode fazê-lo e o cliente usa o manifesto reunido para encontrar o bloco apropriado ou blocod de reprodução para o usuário. Quando o usuário faz uma pausa, o sistema 100 pode continuar a receber blocos de mídia (ou apenas a parte de blocos de metadados baseado em uma URL pedido distinto), para que o componente de montagem manifestado 130 possa continuar a construir o manifesto e estar pronto para qualquer solicitação do usuário (por exemplo, passe para a posição atual ao vivo ou jogar a partir do ponto de pausa) depois que o usuário fez uma pausa. O manifesto do lado do cliente montado permite que o cliente possa jogar o evento de mídia ao contrário como conteúdo do pedido, assim como o evento é longo, e para pular dentro do evento de mídia como está acontecendo.
[00021] O componente de reprodução de mídia 140 reproduz conteúdo de mídia recebido usando o hardware do cliente. O componente de reprodução de mídia 140 pode invocar um ou mais codecs para interpretar o recipiente dentro do qual o conteúdo de mídia é transportado e para descomprimir ou decodificar o conteúdo de mídia a partir de um formato comprimido para um formato cru (por exemplo, YV12, RGBA, ou amostras de áudio PCM ) prontos para reprodução. O componente de reprodução de mídia 140 pode então fornecer a matéria- prima formato de conteúdo de mídia a uma API do sistema operacional (por exemplo, Microsoft DirectX) para reprodução de som em locais do sistema de informática e hardware de vídeo, como uma tela e alto- falantes.
[00022] O componente de monitorização de QoS 150 analisa o sucesso de receber pacotes do servidor e adapta os pedidos do cliente com base em um conjunto de rede atuais e outras condições. Por exemplo, se o cliente é rotineiramente recebido por blocos de mídia final, então o componente 150 pode determinar que a largura de banda entre o cliente e o servidor é inadequada para a taxa de bit, e o cli- ente pode começar a pedir blocos de mídia a uma taxa de bits mais baixa. Monitoramento de QoS podem incluir medição de heurísticas, tais como taxa de tornar frame, tamanho da janela, tamanho do buffer, a freqüência de rebuffering, e assim por diante. Blocos de mídia para cada taxa de bits pode ter um URL distinto para que blocos de várias taxas de bits possam são armazenados em cache pela infra-estrutura de cache Internet. Observe que o servidor não controla o estado do cliente e não sabe qual a taxa de bit qualquer do cliente específico que está jogando atualmente. O servidor pode simplesmente fornecer o mesmo elemento de mídia em uma variedade de taxas de bits para satisfazer pedidos de clientes potenciais sob uma variedade de condições. Além disso, a inicial se manifesta e / ou metadados que o cliente recebe pode incluir informações sobre as taxas de bits e propriedades de codificação de outros disponíveis a partir do servidor, para que o cliente possa escolher a codificação que irá proporcionar uma experiência de cliente bom.
[00023] Note que ao mudar as taxas de bit, o cliente simplesmente começa solicitando a nova taxa de bits e reproduz os blocos novos da taxa de bits como o cliente recebe os blocos. O cliente não tem de enviarinformações de controle para o servidor e aguardar o servidor para adaptar o fluxo. A solicitação do cliente não pode mesmo chegar ao servidor devido a um esconderijo entre o cliente e o servidor satisfazer o pedido. Assim, o cliente é muito mais rápido a reagir do que os clientes nos meios de comunicação tradicionais dos sistemas de transmissão, e os encargos para o servidor têm clientes diferentes de ligação sob várias condições de corrente são reduzidos drasticamente. Além disso, devido as condições atuais tendem a ser localizado, é provável que muitos clientes em uma determinada região geográfica ou de um determinado fornecedor de serviços de Internet (ISP) vai experimentar condições similares e irá solicitar codificações similares de mídia (por exemplo, as taxas de bit). Porque caches também tendem a ser localizados,é provável que os clientes em uma determinada situação vai achar que o cache perto deles é "quente" com os dados de cada pedido, de modo que a latência experimentada por cada cliente será baixo.
[00024] O componente de sincronização do relógio 160 sincroniza os relógios do servidor e do cliente. Embora o tempo absoluto não é geralmente relevante para o cliente e servidor, sendo capaz de identificar um bloco particular e saber a taxa (ou seja, a cadência) em que a solicitação de blocos é relevante para o cliente.
[00025] Por exemplo, se os pedidos dos dados do cliente seja muito rapidamente, o servidor não terá ainda os dados e vai responder com respostas de erro (por exemplo, um HTTP 404 não encontrado de resposta de erro) a criação de muitos pedidos espúrios que consume desnecessariamente da largura de banda. Por outro lado, se os pedidos dos dados do cliente seja muito devagar, então o cliente pode não ter os dados em tempo para a reprodução que cria quebras de notável na mídia reproduzido para o usuário. Assim, o cliente e o servidor funcionam bem quando o cliente sabe a taxa na qual o servidor está produzindo novos blocos e sabe onde o bloco atual se encaixa no crono- grama geral. O componente de sincronização do relógio 160 fornece essas informações, permitindo que o servidor e o cliente tenham um valor de relógio semelhante em um determinado momento. O servidor também pode marcar cada bloco de mídia com o momento em que o servidor criou o bloco.
[00026] A sincronização do relógio também dá ao servidor uma referência comum em cada um dos codificadores. Por exemplo, o servidor pode codificar dados em taxas de bits múltiplos e usando vários codecs ao mesmo tempo. Cada codificador pode fazer referência a dados codificados de uma maneira diferente, mas a hora pode ser definida em comum em todos os codificadores. Desta forma, se um cliente solicita um bloco particular, o cliente terá de mídia que representa o mesmo período, independentemente da codificação que o cliente seleciona.
[00027] O dispositivo de computação em que o sistema é implementado pode incluir uma unidade de processamento central, memória, dispositivos de entrada (por exemplo, teclado e dispositivos apontadores), dispositivos de saída (por exemplo, dispositivos de vídeo), e dispositivos de armazenamento (por exemplo, unidades de disco ou outras organizações não- voláteis de mídia de armazenamento). Os dispositivos de memória e armazenamento são meios legíveis por computador de armazenamento que podem ser codificados com computadorexecutável de instruções (por exemplo, software) que imple-mentam ou ativam o sistema. Além disso, as estruturas de dados e estruturas de mensagens podem ser armazenados ou transmitidos através de um meio de transmissão de dados, como um sinal em um link de comunicação. Vários links de comunicação podem ser utilizadas, tais como a Internet, uma rede de área local, uma rede de área ampla, um ponto-a-ponto de conexão dial-up, uma rede celular, e assim por diante.
[00028] Manifestações do sistema pode ser implementado em diversos ambientes operacionais, que incluem computadores pessoais, servidores, dispositivos PC de mão ou laptop, sistemas multiprocessadores, sistemas com microprocessador, eletroeletrônicos programáveis,câmeras digitais, PCs de rede, microcomputadores, computadores de unidade de processamento, ambientes de computação distribuídos que inclui qualquer um dos sistemas acima ou dispositivos, e assim por diante. Os sistemas de computador podem ser telefones celulares, assistentes digitais pessoais, telefones inteligentes, computadores pessoais, dispositivos eletrônicos programáveis, câmeras digitais, e assim por diante.
[00029] O sistema pode ser descrito no contexto geral de computa-dorexecutável de instruções, como os módulos do programa, executado por um ou mais computadores ou outros dispositivos. Geralmente, os módulos do programa incluem rotinas, programas, objetos, componentes, estruturas de dados, e assim por diante que executam tarefas específicas ou implementam determinados tipos de dados abstratos. Normalmente, a funcionalidade dos módulos do programa podem ser combinados ou distribuídos como desejado em várias modalidades.
[00030] Figura 2 é um diagrama de blocos que ilustra um ambiente operacional do sistema de transmissão de variação única usando a Microsoft Windows e IIS, em uma modalidade. O ambiente geralmente inclui um cliente fonte 210, uma rede de distribuição de conteúdo 240, e uma rede externa 270. O cliente de origem é a fonte da mídia ou evento ao vivo. O cliente de origem inclui uma fonte de mídia 220 e um ou mais codificadores 230. As origens da mídia 220 câmeras podem incluir cada uma com vários ângulos de câmera, microfones capturam de áudio, apresentações de slides, texto (como o de um serviço de closed caption), imagens e outros tipos de mídia. Os 230 codificadores codificam os dados da fonte de mídia 220 em um ou mais formatos de codificação em paralelo. Por exemplo, os codificadores 230 podem produzir mídias codificadas em uma variedade de taxas de bits.
[00031] A rede de distribuição de conteúdo 240 inclui um ou mais servidores ingerindo 250 e um ou mais servidores de origem 260. As ingestões 250 de servidores recebem mídia de codificados em cada um dos formatos de codificação 230 codificadores criam um manifesto descrevendo os meios de comunicação codificada. Os servidores de ingestão 250 podem criar e armazenar os blocos de mídia aqui mencionados, ou pode criar os blocos on the fly como eles são solicitados. Os servidores de ingestão 250 podem receber dados empurrados, como através de um POST HTTP, a partir do 230 codificadores, ou através de solicitação de dados de codificadores 230. Os 230 servidores de codificadores e ingestão 250 podem ser conectados em uma variedade de configurações redundantes. Por exemplo, cada codificador pode enviar dados codificados de mídia para cada um dos servidores de ingestão 250, ou somente a uma ingestão do servidor até que ocorra uma falha. Os servidores de origem 260 são os servidores que respondem às solicitações do cliente para blocos de mídia. A origem 260 servidores também pode ser configurada em uma variedade de configurações redundantes.
[00032] A rede externa inclui 270 servidores de borda 280 e outras Internet (ou rede) de infra-estrutura e clientes 290. Quando um cliente faz um pedido de um bloco de mídia, o cliente dirige a solicitação aos servidores de origem 260. Devido ao design de cache de rede, se um dos servidores de borda 280 contém os dados, então, que servidor de borda pode responder ao cliente sem repassar a solicitação. No entanto, se os dados não estão disponíveis no servidor de borda, então o servidor de borda encaminha o pedido a um dos servidores de origem 260. Da mesma forma, se um dos servidores de origem 260 recebe uma solicitação de dados que não está disponível, o servidor de origem pode solicitar os dados de um dos servidores de ingestão 250.
[00033] Figura 3 é um diagrama que ilustra o fluxo de processamento do sistema de adaptação de fluxo em um cliente para a reprodução de mídia, em uma modalidade. Início no bloco 310, o sistema seleciona uma codificação inicial da solicitação de mídia codificada a partir do servidor. Por exemplo, o sistema pode, inicialmente, selecionar uma menor taxa de bit disponível. O sistema pode enviar um pedido ao servidor para descobrir as taxas de bits disponíveis e outras codificações disponíveis. Continuando no bloco 320, o sistema solicitará e jogará um bloco especial da mídia, como descrito mais com referênciaà Figura 4. Continuando no bloco 330, o sistema determina um serviço de qualidade métrica baseada na parcela solicitada. Por exemplo, o bloco pode incluir metadados para tantos blocos adicionais que o servidor está armazenando, que o cliente pode usar para determinar o quão rápido o cliente está solicitando blocos em relação à rapidez com que o servidor está produzindo blocos. Este processo é descrito em mais detalhes aqui.
[00034] Continuando no bloco decisão 340, se o sistema determina que a corrente de QoS métrica é muito baixa e a conexão do cliente para o servidor não pode lidar com a codificação atual, o sistema continua no bloco 350, mais o sistema de circuitos bloqueiam 320 a lidar com o próximo bloco. Continuando no bloco 350, o sistema seleciona uma codificação diferente da mídia, onde o sistema seleciona uma codificação diferente solicitando dados de uma URL diferente para blocossubseqüentes do servidor. Por exemplo, o sistema poderá selecionar uma codificação que consome metade da largura de banda da codificação atual. Do mesmo modo, o sistema pode determinar que as métricas de QoS indiquem que o cliente pode lidar com uma codifica-ção de maior taxa de bits, e o cliente pode solicitar uma maior taxa de bits para blocos subseqüentes. Desta forma, o cliente ajusta a taxa de bits para cima e para baixo com base nas condições atuais.
[00035] Embora a Figura 3 ilustre a determinação QoS como ocorrendoapós cada bloco, os versados na técnica vão reconhecer que outras implementações de QoS são comuns, como esperando um número fixo de pacotes ou blocos (por exemplo, cada maço 10) para fazer uma QoS determinação. Depois bloco 350, o sistema de circuitos para bloquear 320 lida com o próximo bloco, se disponíveis ou completas se não mídias mais disponíveis (não mostrado).
[00036] Figura 4 é um diagrama que ilustra o fluxo de processamento do sistema de adaptação de fluxo para lidar com um bloco único de mídia, em uma modalidade. Continuando no bloco 410, o siste- ma envia um pedido de um bloco do cliente para um servidor através de uma rede com base na taxa de bits selecionada inicial. Por exemplo, o sistema poderá selecionar um determinado URL em que a solicitação de dados com base na codificação selecionada (por exemplo, http://server/a.isml/quality/bitrate). Continuando no bloco 420, o sistema recebe o bloco solicitado no cliente. O sistema pode receber o bloco do servidor ou de um cache entre o servidor e o cliente na rede. Continuando no bloco 430, o sistema analisa o bloco em uma parte de metadados e uma porção de dados de mídia. Por exemplo, cada bloco pode conter metadados que descreve a codificação do bloco e os dados de suportes adequados para a reprodução utilizando um codec e hardware apropriado.
[00037] Continuando no bloco 440, o sistema adiciona os metadados do bloco de um manifesto de mídia contínua que descreve informações sobre um elemento de mídia maior para que cada um dos blocos de suportes de dados pertencentes. Por exemplo, o sistema pode armazenar um manifesto na memória que contém os metadados de cada bloco de um arquivo de mídia. Continuando no bloco 450, o sistema reproduz os dados de mídia utilizando um codec identificado pelo bloco de metadados e hardware do cliente. Os dados de mídia podem incluir vídeo, áudio e outros tipos de dados que o sistema reproduz em hardware, incluindo um monitor, alto-falantes, e assim por diante. Alternativa ou cumulativamente, os dados podem incluir não dados audi-ovisuais (por exemplo, texto) que é consumido de alguma outra forma de reprodução, caso em que o sistema age sobre os dados com base no tipo de dados. Após o bloqueio 450, concluir estes passos.
[00038] Em algumas modalidades, o sistema adaptativo de fluxo fornece gravador de vídeo digital (DVR)-como funcionalidade para transmissões ao vivo de mídia. Em outras palavras, os usuários podem pausar uma transmissão ao vivo, procurando dentro do fluxo ao vivo, e assim por diante, sem adição de trabalho ou o rastreamento de estado para o servidor. Em uma transmissão ao vivo, há vários cenários como uma cena perdida, uma pausa, juntando-se o evento final e pretendendo assistir desde o início, e assim por diante que são habilitados pelo sistema que permite ao usuário reproduzir blocos em várias ordens e por diversas vezes. Com base no manifesto reunidos aqui descritos, o sistema oferece ao usuário controle sobre como eles assistem a uma transmissão ao vivo. Esses controles estão disponíveis hoje, com TV através de um DVR. O sistema adaptativo de fluxo inclui controles de cliente para responder às ações do usuário e gerenciar a reprodução de uma transmissão ao vivo em um modo de não-viver procurando a vários locais no manifesto. Além disso, o cliente pode alternar entre visualização ao vivo e não vivo durante a reprodução.
[00039] Em algumas modalidades, o sistema de fluxo adaptativo opera dentro de um navegador web plug-in. Por exemplo, o sistema pode ser incluído em uma aplicação Microsoft Silverlight. Microsoft Sil- verlight recebe referências em páginas web para aplicações contidas em recipientes chamados de arquivos XAP. Microsoft Silverlight extrai o arquivo XAP e invoca a aplicação. Microsoft Silverlight fornece aplicativos com um ambiente seguro em que modo seguro para executar de modo que o sistema do computador do usuário é protegido do código do aplicativo malicioso ou errado. Microsoft Silverlight oferece APIs que os aplicativos podem chamar a reprodução de mídia de uma forma que o sistema protege o usuário do computador e hardware a partir de ações de aplicativos potencialmente prejudiciais. Assim, Microsoft Silverlight e browser outros plug-ins podem fornecer toda a funcionalidade de um ambiente em que o sistema adaptativo de fluxo espera para operar.
[00040] Em algumas modalidades, o sistema de fluxo adaptativo recebe metadados de blocos mais tarde, em um bloco atual. Por exemplo, o servidor pode segurar um bloco particular que está pronto até algum número de blocos adicionais (por exemplo, dois blocos) está disponível. Então, o servidor pode enviar o bloco junto com informações de metadados sobre os blocos seguintes. O cliente pode usar essas informações para saber o que está por vir e se adaptar de forma adequada. Isso permite que o cliente ajuste inteligentemente a taxa de solicitação. Por exemplo, se um cliente solicita um pedaço e não tem qualquer informação sobre blocos mais tarde, então o cliente sabe que está solicitando dados muito rápidos. Se o cliente pede um bloco e recebe informações sobre muitos blocos mais tarde, então o cliente pode estar solicitando informações muito lentas. Assim, o cliente pode adaptar-se usando os metadados de antecedência como uma dica.
[00041] Em algumas modalidades, o sistema adaptativo de fluxo fornece um plug-in modelo de heurística para determinar qual codificação de mídia pode ser usado em um momento particular. Por exemplo, o sistema pode permitir que um administrador possa escolher entre várias estratégias para determinar a taxa de bits em que a solicitação de blocos de mídia com base em uma condição particular (por exemplo, largura de banda, redução ou perda de pacotes maiores). Além disso, os provedores de conteúdo podem incluir suas próprias heurísticas para determinar a codificação de uso, e pode fornecer a heurística como módulos de aplicação ou módulos de dependência de aplicativos em um pacote de aplicativos (por exemplo, a Microsoft Silverlight XAP) downloads de arquivos que o cliente jogue a mídia ao provedor de conteúdo.
[00042] Em algumas modalidades, a adaptação do sistema de fluxo de lojas o manifesto reuniu aqui descritos para uso posterior, como a reprodução de um dia após o evento ao vivo. Durante um evento ao vivo, o cliente tenha solicitado blocos de várias codificações com base nas condições da rede. O navegador do cliente também pode conter esses blocos no cache do navegador. Se o usuário solicita para reproduzir a mídia, mais tarde, pode ser mais eficiente para tentar reproduzir a mídia a partir do cache local, o que geralmente significa que o cliente solicita os blocos exatamente ao mesmo que foram originalmente jogados. Ao armazenar o manifesto com os metadados de cada bloco que foi efetivamente recebido, o cliente pode reproduzir a mídia voltando continuamente usando as mesmas codificações que foram solicitadas anteriormente. Isto pode permitir que o usuário assista a mídia em cenários, como um avião, onde a conectividade com o servidor de origem pode estar indisponível.
[00043] Em algumas modalidades, o sistema adaptativo de fluxo fornece a lógica para sincronizar os fluxos relacionados com meios de comunicação. Por exemplo, um evento ao vivo audiovisual pode incluir um ou mais fluxos de vídeo (por exemplo, ângulos de câmera) e um ou mais fluxos de áudio (por exemplo, línguas). Como o cliente faz o download do áudio e vídeo separadamente em blocos, o sistema reproduz o áudio e conteúdo de mídia de vídeo em sincronia, alinhando a informação de tempo associado a cada bloco, como descrito mais aqui com referência a sincronização do relógio. O sistema pode também sincronizar outros tipos de dados, tais como slides de uma apre-sentação de slides, imagens, texto, e assim por diante.
[00044] Em algumas modalidades, o sistema adaptativo de fluxo do lado do cliente fornece a lógica para mudar para fluxos de jogos diferentes da taxa (por exemplo, jogar truque) fornecidos pelo servidor. Por exemplo, o servidor pode incluir 2X, velocidades de 5X, 0.5X, e outros de reprodução. O cliente pode mudar para um fluxo de uma taxa diferente para fornecer a aparência para o usuário que a mídia é o avanço rápido (por exemplo, 2X) ou rebobinar (por exemplo, 0.5 X). Para mudar, o cliente simplesmente solicita um pedaço de mídia dife- rente, por exemplo, em um URL diferente. O cliente pode facilmente alternar entre jogando blocos no ritmo atual e jogar os blocos em um ritmo diferente, continuando a jogar os blocos particulares que são recebidos. Isso proporciona uma experiência transparente para o usuário final com latência pouco entre a solicitação do usuário e as mudanças na reprodução de mídia. Isto também economiza banda de rede como o cliente não faz o download, por exemplo, duas vezes os dados para reproduzir mídia duas vezes mais rápida, mas sim uma codificação de downloads tamanho reduzido dos meios de comunicação que é codificada a uma taxa acelerada.
[00045] Em algumas modalidades, o sistema de fluxo adaptativo recebe os marcadores de destaque nos metadados. Um destaque pode incluir qualquer segmento interessante de mídia, como um ponto durante um evento esportivo em que um jogador marcou um gol. O cliente pode desempenhar um carretel do destaque depois de um evento concluído, jogando os blocos dos meios de comunicação com associados marcadores de destaque. Se o cliente não receber o evento ao vivo, o cliente pode solicitar o manifesto para a mídia e em seguida, solicitar apenas os blocos correspondentes aos destaques. Se um usuário quer ver mais dos meios de comunicação antes e depois do destaque (por exemplo, como indicado pelo usuário o avanço rápido ou rebobinar), então o cliente pode solicitar blocos adicionais para jogar as parcelas solicitadas da mídia.
[00046] Em algumas modalidades, o sistema adaptativo de fluxo suporta publicidade em linha e outros não-audiovisuais dados (por exemplo, legendas, comentários, e assim por diante). Para um evento ao vivo, pode ser desconhecido no início do evento, quando os intervalos comerciais ocorrerão. Um coordenador do evento pode apertar um botão durante a produção quando é hora para um comercial, fazendo com que o sistema possa inserir um marcador de publicidade nos me tadados do fluxo de mídia. Quando o cliente recebe o marcador de publicidade, o cliente pode solicitar e receber blocos associados com uma propaganda previamente identificada. Por exemplo, o servidor pode fornecer uma lista de anúncios potenciais em um manifesto inicial. O anúncio pode ser fornecido em partes semelhantes para outras mídias, e não podem ser armazenados no mesmo servidor que fornece o evento ao vivo. Ao encontrar um marcador de propaganda, o cliente interrompe a reprodução do fluxo principal, recupera e exibe o anúncio, e depois retoma a reprodução do fluxo principal.
[00047] Em algumas modalidades, o sistema adaptativo de fluxo determina quais codificações estão disponíveis com base em um modelo de assinatura ou outro pagamento. Por exemplo, um provedor de conteúdo pode cobrar mais por uma versão de alta definição (HD) de um evento ao vivo do que uma versão de definição padrão (SD) do evento. Neste caso, o cliente pode habilitar ou desabilitar a mudança para taxas de bits especiais com base em saber se as condições do modelo de pagamento têm sido cumpridas (por exemplo, a conta do usuário é o atual). O provedor de conteúdo pode oferecer algumas codificações livres, como uma baixa taxa de bits ou destacar somente mídia, durante o carregamento para os outros.
[00048] O sistema adaptativo de fluxo pode solicitar e receber conteúdo de mídia em uma variedade de codificações. Em algumas modalidades, o sistema adaptativo de fluxo usa caixas de MP4 personalizadas. A Motion Picture Experts Group (MPEG) versão 4 padrão prevê caixas dentro do formato que pode conter dados personalizados. A extensão MP4 é o formato de arquivo comumente associado com esta versão do conteúdo. O sistema pode alavancar caixas para incluir os metadados personalizados e pedaços de conteúdo de mídia. Outros formatos de mídia fornecem a personalização de conteúdo semelhante dentro de um recipiente e pode ser usado pelo sistema.
[00049] Em algumas modalidades, o sistema adaptativo de fluxo está em conformidade com as diretrizes da Transferência de Estado Representacional (REST) estilo de arquitetura de software para sistemashipermídias distribuídos. Um conceito em REST é que um aplicativo pode interagir com um recurso, sabendo apenas o identificador do recurso (por exemplo, um URI) e a ação solicitada (por exemplo, recuperação), e sem saber se existem caches, proxies, gateways, firewalls, túneis, ou qualquer outra coisa entre a aplicação e o servidor realmentedetém a informação. Seguindo as diretrizes REST permitem que o sistema de benefícios da infra-estrutura de Internet existentes e técnicaspré-existentes de recursos de conservação, como cache. Alguns princípios exemplo RESTful que o sistema implementa em algumas modalidades incluem: cada URI identifica exatamente uma resposta, cada pontos URI para um recurso de servidor que é stateless e cacheable, e cada URI é intuitivo e utiliza os substantivos (os verbos são verbos HTTP). Em particular, o sistema pode evitar fazer pedidos usando seqüências de consulta e poderá usar as teclas substancialmenteúnicas para os horários de início que são solicitados via URLs. [00050] Pelo exposto, será apreciado que modalidades específicas do sistema adaptativo de fluxo foram aqui descritos para fins de ilustração, mas que várias modificações podem ser feitas sem se desviar do espírito e escopo da invenção. Assim, a invenção não é limitada, exceto como pelas reivindicações anexadas.

Claims (20)

1. Método para reproduzir sem problemas a mídia em um cliente, o método caracterizado pelo fato de que compreende as etapas de: enviar a partir do cliente um pedido de um bloco de mídia para um servidor através de uma rede, em que o bloco compreende uma porção uniforme da mídia disponível a partir do servidor para vários clientes e em que o pedido compreende um pedido de protocolo de transferência de hipertexto padrão (HTTP) que não inclui intervalos de bytes, de modo que uma resposta correspondente pode ser armazenada em cache por um servidor de cache da Internet comum que não armazena em cache intervalos de bytes; receber no cliente o bloco solicitado; analisar o bloco em uma porção de metadados e uma porção de dados de mídia: em que um cabeçalho de resposta HTTP recebido com o bloco solicitado não inclui um codec com o qual a porção de dados de mídia do bloco é codificada; acrescentar o bloco de metadados de um manifesto de mí-diacontínua que descreve informações sobre um elemento de mídia maior ao qual o bloco de mídia pertence; e reproduzir os dados de mídia utilizando um codec identificado pelo bloco de metadados e hardware do cliente, em que as etapas anteriores são executadas por pelo menos um processador.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o cliente receber o bloco pedido compreende receber o bloco de um cache de internet antes que o pedido chegue ao servidor e armazene o bloco em um cache do cliente.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que analisar ainda compreende identificar metadados que descreve a codificação do bloco e os dados de mídia adequados para a reprodução utilizando um codec e hardware apropriado.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o cliente armazena um manifesto na memória que contém os metadados de cada bloco de um arquivo de mídia.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a porção do bloco de metadados inclui informações sobre pelo menos um bloco subsequente disponível a partir do servidor.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende determinar uma taxa de bit de um bloco subsequente ao pedido, em que a taxa de bits determinada é baseada em uma contagem de informações sobre blocos subsequentes na porção de metadados do bloco.
7. Sistema de computador para processamento de mídia sem problemas a partir de um evento ao vivo, o sistema caracterizado pelo fato de que compreende: um processador e memória configurados para executar as instruções de software; um componente de pedido de bloco configurado para fazer pedidos de um cliente para blocos de mídia individuais de um servidor de origem, em que os blocos representam porções de um arquivo de mídia disponíveis individualmente a partir do servidor, e em que cada pedido compreende um pedido de protocolo de transferência de hipertextopadrão (HTTP) que não inclui intervalos de bytes, de modo que uma resposta correspondente pode ser armazenada em cache por um servidor de cache da Internet comum que não armazena em cache intervalos de bytes; um componente de análise do bloco configurado para interpretar um formato de cada bloco de mídia recebido pelo componente de pedido do bloco e separar os blocos em suas partes componentes, em que um cabeçalho de resposta HTTP recebido com cada pedaço solicitado não inclui um codec com o qual uma porção de dados de mídia do bloco é codificada; um componente de montagem manifestada configurada para construir um manifesto que descreve um elemento de mídia para o qual pertencem os blocos de conteúdo de mídia recebidos; um componente de reprodução de mídia configurado para reproduzir blocos de conteúdo de mídia recebidos usando hardware do cliente; um componente de monitorização QoS configurado para analisar um resultado de pacotes recebidos do servidor e adaptar solicitações do cliente com base em um conjunto de condições atuais da rede; e um componente de sincronização do relógio configurado para sincronizar os relógios do servidor e do cliente para que o servidor e o cliente possam identificar blocos especiais com base no tempo.
8. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de pedido de bloco solicita que os blocos utilizem pedidos HTTP GET.
9. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de pedido do bloco determina um usuário associado com o pedido e solicita que os blocos sejam base em um nível de subscrição do usuário.
10. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o cliente e o servidor de origem não tem uma conexão baseada no estado entre si.
11. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente pedido do bloco identifica cada bloco por um Uniforme Recurso Localizador (URL) que, individualmente, identifica o bloco.
12. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de análise do bloco separa o bloco em uma porção de cabeçalho contendo metadados e uma porção de dados que contenham conteúdo de mídia e em que o componente de análise do bloco fornece os metadados para o componente de montagem manifesto e o conteúdo de mídia para o componente de reprodução de mídia e se o bloco contém dados não audiovisuais analisar o bloco e consumir os dados não audiovisuais.
13. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de montagem de manifesto é ainda configurado para incluir nas informações de manifesto que descrevem um codec e uma taxa de bits usada para codificar cada bloco.
14. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de montagem de manifesto é ainda configurado para receber solicitações para reproduzir uma porção do elemento de mídia outro que não seja uma posição atual ao vivo com base no manifesto.
15. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de reprodução de mídia é ainda configurado para invocar um ou mais codecs para interpretar um recipiente no qual o conteúdo de mídia é transportado e para descomprimir o conteúdo de mídia a partir de um formato comprimido contido em cada bloco de mídia.
16. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de monitoramento de QoS é ainda configurado para mudar as taxas de bits dos blocos solicitados, solicitando blocos de uma URL de servidor diferente.
17. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que o componente de sincronização do relógio é ainda configurado para manter uma cadência de solicitações do cliente para o servidor para blocos de mídia subsequentes.
18. Dispositivo de armazenamento legível por computador, com um método caracterizado pelo fato de que compreende: selecionar uma codificação inicial na qual solicitar mídia codificada de um servidor, em que cada solicitação compreende uma solicitação HTTP (HTTP) que não inclui intervalos de bytes, de modo que uma resposta correspondente possa ser armazenada em cache por um servidor de cache da Internet comum que não intervalos de bytes de cache; receber um bloco de mídia específico do servidor, em que um cabeçalho de resposta HTTP recebido com o bloco solicitado não inclui um codec com o qual uma porção de dados de mídia do bloco é codificada; reproduzir o bloco de mídia recebido; determinar uma métrica de qualidade de serviço (QoS) com base no bloco recebido; e ao determinar que a métrica de QoS está muito baixa e a conexão do cliente com o servidor não pode lidar com a codificação atual, selecionar uma segunda codificação da mídia codificada, em que a segunda codificação da mídia codificada é codificada a uma taxa de bits mais baixa que a codificação inicial.
19. Dispositivo, de acordo com a reivindicação 18, caracterizado pelo fato de que a seleção de uma taxa de bits inicial compreende selecionar inicialmente uma menor taxa de bits disponível.
20. Dispositivo, de acordo com a reivindicação 18, caracterizado pelo fato de que ainda compreende mediante a determinação que a métrica de QoS é alta, selecionar uma terceira codificação da mídia codificada, em que a terceira codificação é codificada com uma taxa de bits mais alta que a codificação inicial.
BRPI1007814-2A 2009-03-16 2010-03-09 Método para reproduzir sem problemas a mídia em um cliente, sistema de computador para processamento de mídia sem problemas a partir de um evento ao vivo e dispositivo de armazenamento legível por computador BRPI1007814B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/405,215 US8621044B2 (en) 2009-03-16 2009-03-16 Smooth, stateless client media streaming
US12/405.215 2009-03-16
PCT/US2010/026707 WO2010107625A2 (en) 2009-03-16 2010-03-09 Smooth, stateless client media streaming

Publications (2)

Publication Number Publication Date
BRPI1007814A2 BRPI1007814A2 (pt) 2017-01-17
BRPI1007814B1 true BRPI1007814B1 (pt) 2021-08-17

Family

ID=42731571

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1007814-2A BRPI1007814B1 (pt) 2009-03-16 2010-03-09 Método para reproduzir sem problemas a mídia em um cliente, sistema de computador para processamento de mídia sem problemas a partir de um evento ao vivo e dispositivo de armazenamento legível por computador

Country Status (8)

Country Link
US (1) US8621044B2 (pt)
CN (1) CN102356605B (pt)
BR (1) BRPI1007814B1 (pt)
CA (1) CA2750544C (pt)
IN (1) IN2011CN06326A (pt)
MX (1) MX2011009164A (pt)
RU (1) RU2543568C2 (pt)
WO (1) WO2010107625A2 (pt)

Families Citing this family (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US20230023917A1 (en) * 2001-03-09 2023-01-26 Oliver Wendel Gamble Method and System for Selective broadcasting of Instructions or Media Content to Targeted Electronic Devices Using a Modular Format
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2348640B1 (en) 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
KR101183843B1 (ko) 2003-10-06 2012-09-19 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러정정 다중-스테이지 코드 생성기 및 디코더
EP2202888A1 (en) 2004-05-07 2010-06-30 Digital Fountain, Inc. File download and streaming system
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
AU2008298602A1 (en) 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
CA2749170C (en) 2009-01-07 2016-06-21 Divx, Inc. Singular, collective and automated creation of a media guide for online content
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US20100281224A1 (en) * 2009-05-01 2010-11-04 International Buisness Machines Corporation Prefetching content from incoming messages
US8499059B2 (en) * 2009-05-04 2013-07-30 Rovi Solutions Corporation System and methods for buffering of real-time data streams
AU2009345847B2 (en) * 2009-05-05 2015-06-11 Telefonaktiebolaget L M Ericsson (Publ) P2P for mobile providers
EP2280521A1 (en) * 2009-07-30 2011-02-02 Alcatel Lucent Method of switching media content for a mobile apparatus
WO2011022405A2 (en) 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8527647B2 (en) * 2009-10-06 2013-09-03 Unwired Planet, Inc. Managing network traffic using intermediate flow control
US8914835B2 (en) * 2009-10-28 2014-12-16 Qualcomm Incorporated Streaming encoded video data
US9002881B2 (en) * 2009-10-29 2015-04-07 Microsoft Technology Licensing, Llc Assembling streamed content for on-demand presentation
KR101777347B1 (ko) * 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
KR101750049B1 (ko) * 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
KR101786050B1 (ko) * 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
JP5723888B2 (ja) 2009-12-04 2015-05-27 ソニック アイピー, インコーポレイテッド 基本ビットストリーム暗号材料伝送システムおよび方法
US20110296048A1 (en) * 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
EP2375680A1 (en) * 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
WO2011127312A1 (en) 2010-04-07 2011-10-13 Apple Inc. Real-time or near real-time streaming
WO2011125041A2 (en) 2010-04-08 2011-10-13 Vasona Networks Managing streaming bandwidth for multiple clients
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9838450B2 (en) * 2010-06-30 2017-12-05 Brightcove, Inc. Dynamic chunking for delivery instances
US8904027B2 (en) * 2010-06-30 2014-12-02 Cable Television Laboratories, Inc. Adaptive bit rate for data transmission
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120034550A (ko) 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US9467493B2 (en) 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
US8645562B2 (en) 2010-09-06 2014-02-04 Electronics And Telecommunications Research Institute Apparatus and method for providing streaming content
US9143838B2 (en) 2010-09-06 2015-09-22 Vasona Networks Inc. Device and method for quality assessment of encrypted streaming media flows
US9369512B2 (en) * 2010-10-06 2016-06-14 Electronics And Telecommunications Research Institute Apparatus and method for providing streaming content
KR101206698B1 (ko) * 2010-10-06 2012-11-30 한국항공대학교산학협력단 스트리밍 콘텐츠 제공 장치 및 방법
US20120117261A1 (en) * 2010-11-05 2012-05-10 Nokia Corporation Method and Apparatus for Rate Adaptation for Adaptive HTTP Streaming
EP2638682A4 (en) * 2010-11-12 2014-07-23 Realnetworks Inc TRAFFIC MANAGEMENT IN ADAPTIVE STREAMING PROTOCOLS
CN102045351B (zh) * 2010-12-03 2013-06-19 中国联合网络通信集团有限公司 流媒体发布平台及方法
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
WO2011150657A1 (zh) * 2010-12-31 2011-12-08 华为技术有限公司 流媒体中播放时间点跳转后的处理方法及装置
US20120173754A1 (en) * 2011-01-04 2012-07-05 Michael Dalrymple System and method for interfacing content playback devices with network sites to supplement content playback
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
GB2491574B (en) 2011-06-02 2013-11-20 Nds Ltd Content insertion in adaptive streams
US9661104B2 (en) * 2011-02-07 2017-05-23 Blackberry Limited Method and apparatus for receiving presentation metadata
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8775664B2 (en) * 2011-02-16 2014-07-08 Sony Corporation Method and apparatus for use in tracking playback of media streams while in stand-by mode
US20120215890A1 (en) 2011-02-22 2012-08-23 International Business Machines Corporation Network-aware structured content downloads
US8849950B2 (en) * 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
FR2975555A1 (fr) * 2011-05-18 2012-11-23 Thomson Licensing Methode d'adaptation dynamique du debit de reception et recepteur associe
US8843586B2 (en) 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
US8856283B2 (en) * 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
TW201251429A (en) * 2011-06-08 2012-12-16 Hon Hai Prec Ind Co Ltd System and method for sending streaming of desktop sharing
CN102821309A (zh) * 2011-06-08 2012-12-12 鸿富锦精密工业(深圳)有限公司 基于桌面分享的流媒体传送系统及方法
US20170041649A1 (en) * 2011-06-14 2017-02-09 Watchwith, Inc. Supplemental content playback system
US12212791B2 (en) * 2011-06-14 2025-01-28 Comcast Cable Communications, Llc Metadata delivery system for rendering supplementary content
US9762967B2 (en) 2011-06-14 2017-09-12 Comcast Cable Communications, Llc System and method for presenting content with time based metadata
US20130191745A1 (en) * 2012-01-10 2013-07-25 Zane Vella Interface for displaying supplemental dynamic timeline content
US8751807B2 (en) 2011-06-23 2014-06-10 Azuki Systems Inc. Method and system for secure over-the-top live video delivery
US8924580B2 (en) * 2011-08-12 2014-12-30 Cisco Technology, Inc. Constant-quality rate-adaptive streaming
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US9591361B2 (en) 2011-09-07 2017-03-07 Qualcomm Incorporated Streaming of multimedia data from multiple sources
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US20130091207A1 (en) * 2011-10-08 2013-04-11 Broadcom Corporation Advanced content hosting
US9055136B2 (en) * 2011-10-13 2015-06-09 Qualcomm Incorporated Controlling streaming delay in networks
US10397294B2 (en) * 2011-12-15 2019-08-27 Dolby Laboratories Licensing Corporation Bandwidth adaptation for dynamic adaptive transferring of multimedia
US8234350B1 (en) 2011-12-19 2012-07-31 Seachange International, Inc. Systems and methods for generating targeted manifest files
US8977704B2 (en) 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
US9401968B2 (en) 2012-01-20 2016-07-26 Nokia Techologies Oy Method and apparatus for enabling pre-fetching of media
US20150026711A1 (en) * 2012-02-27 2015-01-22 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for video content distribution
US20130254417A1 (en) * 2012-03-21 2013-09-26 Jason Nicholls System method device for streaming video
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
US9246741B2 (en) 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
US9712887B2 (en) * 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
MY166917A (en) * 2012-04-26 2018-07-24 Qualcomm Inc Enhanced block-request streaming system for handling low-latency streaming
US8813117B1 (en) * 2012-04-27 2014-08-19 Google Inc. Content subset conditional access framework
EP2661045A1 (en) * 2012-05-04 2013-11-06 Thomson Licensing Method and apparatus for providing a plurality of transcoded content streams
US9088463B1 (en) * 2012-05-11 2015-07-21 Amazon Technologies, Inc. Container contract for data dependencies
US20130318252A1 (en) * 2012-05-24 2013-11-28 Rovi Corporation Systems, methods, and computer products for elementary streams broadcasting
US9301021B2 (en) * 2012-06-22 2016-03-29 Vubiquity, Inc. Workflow optimization in preparing C3 broadcast content for dynamic advertising
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
CN109618185A (zh) * 2012-07-10 2019-04-12 Vid拓展公司 由wtru执行的方法、wtru及编码设备
WO2014015110A1 (en) 2012-07-18 2014-01-23 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US9118744B2 (en) 2012-07-29 2015-08-25 Qualcomm Incorporated Replacing lost media data for network streaming
US9131251B2 (en) * 2012-09-20 2015-09-08 Google Technology Holdings LLC Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
US9462021B2 (en) 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US9544344B2 (en) * 2012-11-20 2017-01-10 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
US9344472B2 (en) 2012-12-28 2016-05-17 Microsoft Technology Licensing, Llc Seamlessly playing a composite media presentation
US8904457B2 (en) 2012-12-28 2014-12-02 Microsoft Corporation Archiving a live media presentation
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9426196B2 (en) * 2013-01-04 2016-08-23 Qualcomm Incorporated Live timing for dynamic adaptive streaming over HTTP (DASH)
KR20150077461A (ko) * 2013-01-16 2015-07-07 후아웨이 테크놀러지 컴퍼니 리미티드 적응형 스트리밍에 있어서 url 파라미터의 삽입과 추가
JP6221142B2 (ja) * 2013-01-18 2017-11-01 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メディアコンテンツに適応ストリーミングを実行するための方法及び装置
US9432426B2 (en) * 2013-02-04 2016-08-30 Qualcomm Incorporated Determining available media data for network streaming
EP2954683B1 (en) * 2013-03-15 2018-07-11 ARRIS Enterprises LLC Enhanced playlist definition and delivery for fast channel change with http adaptive streaming
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US20160057192A1 (en) * 2013-04-08 2016-02-25 Thomson Licensing Device and method for adapting a manifest sent by at least one server
US9973559B2 (en) * 2013-05-29 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for presenting content streams to a client device
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
EP2819379A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
EP2822287A1 (en) * 2013-07-01 2015-01-07 Thomson Licensing Method and apparatus for frame accurate advertisement insertion
US9386308B2 (en) 2013-07-16 2016-07-05 Cisco Technology, Inc. Quality optimization with buffer and horizon constraints in adaptive streaming
JP6465541B2 (ja) * 2013-08-06 2019-02-06 キヤノン株式会社 通信装置、再生装置、及びその方法、並びにプログラム
JP2015043486A (ja) * 2013-08-26 2015-03-05 ソニー株式会社 プロキシサーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム
CN105556922B (zh) * 2013-09-17 2019-06-28 瑞典爱立信有限公司 网络中的dash表示自适应
US9444856B2 (en) * 2013-09-25 2016-09-13 Ericsson Ab System and method for managing adjacent channels in an adaptive streaming environment
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
EP2876890A1 (en) 2013-11-21 2015-05-27 Thomson Licensing Method and apparatus for frame accurate synchronization of video streams
EP2890075B1 (en) * 2013-12-26 2016-12-14 Telefonica Digital España, S.L.U. A method and a system for smooth streaming of media content in a distributed content delivery network
US20160352857A1 (en) * 2014-01-07 2016-12-01 Thomson Licensing Method for adapting the behavior of a cache, and corresponding cache
US9538120B2 (en) * 2014-01-29 2017-01-03 Google Inc. Method for improving offline content playback
JP6393776B2 (ja) * 2014-03-26 2018-09-19 ティヴォ ソリューションズ インコーポレイテッド マルチメディアのパイプライン機構
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9722903B2 (en) 2014-09-11 2017-08-01 At&T Intellectual Property I, L.P. Adaptive bit rate media streaming based on network conditions received via a network monitor
US10142386B2 (en) 2014-10-29 2018-11-27 DLVR, Inc. Determining manifest file data used in adaptive streaming video delivery
US9794604B2 (en) * 2014-11-14 2017-10-17 Panopto, Inc. Systems and methods for transmitting segment-quality units of a streaming video session
US9813477B2 (en) * 2015-01-26 2017-11-07 T-Mobile Usa, Inc. Adjusting quality level of media streaming
US10270989B2 (en) * 2015-04-22 2019-04-23 Lg Electronics Inc. Broadcasting signal transmission device, broadcasting signal reception device, broadcasting signal transmission method, and broadcasting signal reception method
KR102353492B1 (ko) * 2015-12-14 2022-01-20 삼성전자주식회사 스트리밍 서비스를 위한 장치 및 방법
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10178171B2 (en) * 2016-04-21 2019-01-08 Samsung Electronics Company, Ltd. Content management system for distribution of content
WO2017210027A1 (en) * 2016-06-01 2017-12-07 Amazon Technologies, Inc. Catching up to the live playhead in live streaming
US10432690B1 (en) 2016-06-03 2019-10-01 Amazon Technologies, Inc. Manifest partitioning
US10116719B1 (en) 2016-06-03 2018-10-30 Amazon Technologies, Inc. Customized dash manifest
US10104143B1 (en) * 2016-06-03 2018-10-16 Amazon Technologies, Inc. Manifest segmentation
GB2552220B (en) * 2016-07-15 2018-09-05 Openwave Mobility Inc A method for detecting a live adaptive BIT rate stream
US10218986B2 (en) * 2016-09-26 2019-02-26 Google Llc Frame accurate splicing
US10063612B2 (en) * 2016-09-30 2018-08-28 Amazon Technologies, Inc. Request-based encoding for streaming content portions
US10476943B2 (en) * 2016-12-30 2019-11-12 Facebook, Inc. Customizing manifest file for enhancing media streaming
US10440085B2 (en) 2016-12-30 2019-10-08 Facebook, Inc. Effectively fetch media content for enhancing media streaming
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10349136B2 (en) * 2017-03-22 2019-07-09 Opentv, Inc. User-initiated transitioning between media content versions
WO2018195440A1 (en) 2017-04-21 2018-10-25 Zenimax Media Inc. Systems and methods for rendering & pre-encoded load estimation based encoder hinting
CN110945494B (zh) * 2017-07-28 2024-06-21 杜比实验室特许公司 向客户端提供媒体内容的方法和系统
CN112369042B (zh) 2018-06-28 2022-12-09 杜比实验室特许公司 用于自适应流传输对齐的帧转换
US12238353B2 (en) 2018-10-03 2025-02-25 Qualcomm Incorporated Service description for streaming media data
JP7150631B2 (ja) * 2018-10-17 2022-10-11 エヌ・ティ・ティ・コミュニケーションズ株式会社 制御装置、サービス提供システム、制御方法、及びプログラム
FR3098074B1 (fr) * 2019-06-27 2021-10-08 Tdf Procédé de transmission d’un contenu audio dans un récepteur hybride en recevant des manifestes émis par un serveur manageur, récepteur et serveur manageur associé
US10887366B1 (en) * 2019-07-08 2021-01-05 Cbs Interactive Inc. Systems, methods, and storage media for managing encoder instances in a serverless content distribution platform
US11477522B2 (en) * 2019-12-11 2022-10-18 Arris Enterprises Llc Trick play and trick rate support for HLS
CN115152241B (zh) * 2020-02-04 2024-11-29 杜比国际公司 用于媒体内容的自适应播放的方法和设备
US10958947B1 (en) * 2020-03-12 2021-03-23 Amazon Technologies, Inc. Content delivery of live streams with playback-conditions-adaptive encoding
CN113543222B (zh) * 2020-04-22 2024-06-18 华为技术有限公司 媒体报文的传输方法、装置及系统
EP3920539B1 (en) * 2020-06-04 2025-03-05 MK Systems USA Inc. Systems and methods for providing audio-video streams with alternative content
CN114205344B (zh) * 2020-08-31 2023-02-28 华为技术有限公司 媒体文件传输的方法及装置
US11962482B2 (en) * 2022-07-14 2024-04-16 Rovi Guides, Inc. Systems and methods for maintaining video quality using digital twin synthesis
US12407651B2 (en) * 2023-02-16 2025-09-02 Palo Alto Networks, Inc. Inline inspection cybersecurity enforcement of multipart file transmissions
US20240340467A1 (en) * 2023-04-06 2024-10-10 Netflix, Inc. Techniques for caching media content when streaming live events

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001056266A2 (en) * 2000-01-28 2001-08-02 Ibeam Broadcasting Corporation Method and apparatus for encoder-based distribution of live video and other streaming content
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7085842B2 (en) 2001-02-12 2006-08-01 Open Text Corporation Line navigation conferencing system
US20030018978A1 (en) 2001-03-02 2003-01-23 Singal Sanjay S. Transfer file format and system and method for distributing media content
US7478164B1 (en) * 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
US20030014488A1 (en) * 2001-06-13 2003-01-16 Siddhartha Dalal System and method for enabling multimedia conferencing services on a real-time communications platform
MXPA04002722A (es) * 2001-09-26 2005-11-04 Interact Devices Inc Sistema y metodo para comunicar senales de medios.
US7212574B2 (en) * 2002-04-02 2007-05-01 Microsoft Corporation Digital production services architecture
US7912920B2 (en) * 2002-12-13 2011-03-22 Stephen Loomis Stream sourcing content delivery system
US7409145B2 (en) * 2003-01-02 2008-08-05 Microsoft Corporation Smart profiles for capturing and publishing audio and video streams
JP2006514806A (ja) * 2003-06-07 2006-05-11 サムスン エレクトロニクス カンパニー リミテッド マルチメディアデータの提供装置及びその提供方法並びにその方法を記録した記録媒体
US7602908B2 (en) * 2003-12-22 2009-10-13 Aol Llc System and method for using a streaming protocol
US20050251832A1 (en) * 2004-03-09 2005-11-10 Chiueh Tzi-Cker Video acquisition and distribution over wireless networks
KR20070085203A (ko) 2004-06-07 2007-08-27 슬링 미디어 인코퍼레이티드 퍼스널 미디어 브로드캐스팅 시스템
US20060184697A1 (en) 2005-02-11 2006-08-17 Microsoft Corporation Detecting clock drift in networked devices through monitoring client buffer fullness
US20060287912A1 (en) 2005-06-17 2006-12-21 Vinayak Raghuvamshi Presenting advertising content
US20070162487A1 (en) * 2005-12-30 2007-07-12 Razorstream, Llc Multi-format data coding, managing and distributing system and method
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
WO2007117730A2 (en) * 2006-01-13 2007-10-18 Dilithium Networks Pty Ltd. Interactive multimedia exchange architecture and services
US7860825B2 (en) 2006-05-08 2010-12-28 Palm, Inc. Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks
US7783773B2 (en) * 2006-07-24 2010-08-24 Microsoft Corporation Glitch-free media streaming
CA2675595C (en) 2007-01-17 2016-10-25 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
US8719375B2 (en) * 2007-03-22 2014-05-06 Microsoft Corporation Remote data access techniques for portable devices
US20080256514A1 (en) 2007-04-10 2008-10-16 Microsoft Corporation Side-by-side application manifests for single-purpose applications
US7881335B2 (en) * 2007-04-30 2011-02-01 Sharp Laboratories Of America, Inc. Client-side bandwidth allocation for continuous and discrete media
CN101163238B (zh) 2007-07-20 2010-12-01 中兴通讯股份有限公司 一种平滑实现实时转播/直播的流媒体服务方法
US8370520B2 (en) * 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US20100226444A1 (en) * 2009-03-09 2010-09-09 Telephoto Technologies Inc. System and method for facilitating video quality of live broadcast information over a shared packet based network

Also Published As

Publication number Publication date
RU2543568C2 (ru) 2015-03-10
WO2010107625A3 (en) 2011-01-13
CA2750544A1 (en) 2010-09-23
IN2011CN06326A (pt) 2015-08-28
WO2010107625A2 (en) 2010-09-23
US20100235472A1 (en) 2010-09-16
CA2750544C (en) 2016-05-03
CN102356605B (zh) 2014-02-19
RU2011137994A (ru) 2013-04-20
CN102356605A (zh) 2012-02-15
US8621044B2 (en) 2013-12-31
MX2011009164A (es) 2011-09-28
BRPI1007814A2 (pt) 2017-01-17

Similar Documents

Publication Publication Date Title
BRPI1007814B1 (pt) Método para reproduzir sem problemas a mídia em um cliente, sistema de computador para processamento de mídia sem problemas a partir de um evento ao vivo e dispositivo de armazenamento legível por computador
US9237387B2 (en) Low latency cacheable media streaming
US10257587B2 (en) Integrating continuous and sparse streaming data
US8909806B2 (en) Delivering cacheable streaming media presentations
US8392748B2 (en) Reliable media streaming
CA2807157C (en) Manifest file updates for network streaming of coded video data
KR102303582B1 (ko) 웹 콘텐츠에 대한 파일 트랙들을 사용하여 미디어 데이터를 프로세싱
US9749676B2 (en) Virtual playback speed modification
Bentaleb et al. Toward one-second latency: Evolution of live media streaming
JP2016511575A (ja) ネットワークストリーミングのための利用可能なメディアデータの決定
CN105264826A (zh) 低等待时间流式传输
Peltotalo et al. RTSP‐based Mobile Peer‐to‐Peer Streaming System
WO2026020261A1 (en) Exchanging common media client data (cmcd) metrics for media streaming session over radio access network
TW202606282A (zh) 透過無線電存取網路交換用於媒體串流對話的通用媒體客戶端資料(cmcd)度量
TW202548556A (zh) 使用經串流媒體資料的服務描述傳訊組態更新

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B15K Others concerning applications: alteration of classification

Ipc: H04L 29/08 (2006.01), H04L 29/06 (2006.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 29/08 , H04L 29/06

Ipc: H04L 29/06 (2006.01), H04L 29/08 (2006.01)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 09/03/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.