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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 11
- 238000003860 storage Methods 0.000 title claims description 5
- 238000013024 troubleshooting Methods 0.000 title 2
- 230000004044 response Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 230000003044 adaptive effect Effects 0.000 abstract description 26
- 230000006978 adaptation Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H04L65/4092—
-
- H04L65/602—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H04L67/2842—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing 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
[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.
[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.
[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.
[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.
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)
| 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)
| 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 |
-
2009
- 2009-03-16 US US12/405,215 patent/US8621044B2/en active Active
-
2010
- 2010-03-09 RU RU2011137994/08A patent/RU2543568C2/ru active
- 2010-03-09 CN CN201080012702.1A patent/CN102356605B/zh active Active
- 2010-03-09 MX MX2011009164A patent/MX2011009164A/es active IP Right Grant
- 2010-03-09 CA CA2750544A patent/CA2750544C/en not_active Expired - Fee Related
- 2010-03-09 BR BRPI1007814-2A patent/BRPI1007814B1/pt active IP Right Grant
- 2010-03-09 IN IN6326CHN2011 patent/IN2011CN06326A/en unknown
- 2010-03-09 WO PCT/US2010/026707 patent/WO2010107625A2/en not_active Ceased
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. |