BR112012001671B1 - Método e sistema de distribuição de conteúdo digital - Google Patents

Método e sistema de distribuição de conteúdo digital Download PDF

Info

Publication number
BR112012001671B1
BR112012001671B1 BR112012001671-7A BR112012001671A BR112012001671B1 BR 112012001671 B1 BR112012001671 B1 BR 112012001671B1 BR 112012001671 A BR112012001671 A BR 112012001671A BR 112012001671 B1 BR112012001671 B1 BR 112012001671B1
Authority
BR
Brazil
Prior art keywords
cdn
content
digital content
list
playback device
Prior art date
Application number
BR112012001671-7A
Other languages
English (en)
Other versions
BR112012001671A2 (pt
Inventor
Anthony Neal Park
Neil D. Hunt
Neil D Hunt
Wei Wei
Original Assignee
Netflix, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netflix, Inc. filed Critical Netflix, Inc.
Publication of BR112012001671A2 publication Critical patent/BR112012001671A2/pt
Publication of BR112012001671B1 publication Critical patent/BR112012001671B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)

Abstract

método e sistema de distribuição de conteúdo digital uma modalidade da presente invenção apresenta uma técnica para selecionar uma rede de distribuição de conteúdo (cdn) compreendendo ao menos um servidor de conteúdo, a partir de uma pluralidade de cdns, e um arquivo de conteúdo digital de reprodução a partir da cdn em um dispositivo de reprodução de conteúdo. a seleção da cdn se baseia em uma ordem de classificação das cdns, um valor de peso atribuído para cada cdn, e uma largura de banda medida entre o dispositivo de reprodução de conteúdo e cada cdn. vantajosamente, um dispositivo de reprodução de conteúdo determinado pode selecionar uma cdn com base nas condições predominantes de carregamento de cdn e rede, aumentando assim a robustez global e a confiabilidade ao baixar arquivo de conteúdo digital a partir de uma cdn.

Description

MÉTODO E SISTEMA DE DISTRIBUIÇÃO DE CONTEÚDO DIGITAL
REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
Esse pedido reivindica o benefício do Pedido de
Patente dos Estados Unidos N° de Série 12/504.528, 5 depositado em 16 de julho de 2009, o qual é aqui incorporado mediante referência.
ANTECEDENTES DA INVENÇÃO
Campo da Invenção
Modalidades da presente invenção se referem geralmente aos meios digitais e, mais especificamente, a um sistema e método de distribuição de conteúdo digital.
Descrição da Técnica Relacionada
Sistemas de distribuição de conteúdo digital
incluem convencionalmente um servidor de conteúdo, um
15 dispositivo de reprodução de conteúdo e uma rede de
comunicações conectando o servidor de conteúdo ao
dispositivo de reprodução de conteúdo. 0 dispositivo de
reprodução de conteúdo pode ser configurado para reproduzir arquivos de conteúdo digital, tais como músicas, filmes ou 20 programas de televisão digitalmente codificados, para citar apenas uns poucos. Um determinado arquivo de conteúdo digital pode ser baixado a partir do servidor de conteúdo para o dispositivo de reprodução de conteúdo por intermédio da rede de comúnicação. O dispositivo de reprodução de 25 conteúdo pode baixar e armazenar ao menos uma parte do arquivo de conteúdo digital para facilitar a reprodução ininterrupta do título. O conteúdo pode ser reproduzido por intermédio de um sistema de áudio, um sistema de vídeo, ou uma combinação dos mesmos. O servidor de conteúdo 30 compreende um sistema de computador configurado para armazenar um conjunto específico de títulos e facilitar a transferência dos arquivos de conteúdo digital para um ou mais dispositivos de reprodução de conteúdo.
Em cenários práticos, um ou mais servidores de conteúdo podem ser configurados em conjunto dentro de uma rede de comunicações para formar uma rede de distribuição de conteúdo. Cada rede de distribuição de conteúdo inclui um ou mais servidores de conteúdo e um ou mais sistemas de comunicação de rede configurados para interconectar os servidores de conteúdo e os dispositivos de reprodução de conteúdo. Cada rede de distribuição de conteúdo pode hospedar vários arquivos de conteúdo digital. Um servidor de diretório de conteúdo compreende um sistema de computador configurado para prover uma listagem dos nomes de título de arquivos de conteúdo digital, e para associar uma rede de distribuição de conteúdo com cada título por intermédio de um mecanismo de referência, tal como um localizador universal de recursos (URL). Quando um dispositivo de reprodução de conteúdo precisa reproduzir um título específico, o dispositivo de reprodução de conteúdo primeiramente posta uma solicitação para o servidor de diretório de conteúdo para uma referência a uma rede de distribuição de conteúdo configurada para hospedar o título. O dispositivo de reprodução de conteúdo então baixa e reproduz o título a partir da rede de distribuição de conteúdo especificada na referência provida pelo servidor de diretório de conteúdo.
O dispositivo de reprodução de conteúdo pode estar localizado em uma região da rede de comunicações, enquanto que a rede de distribuição de conteúdo pode estar disposta em uma diferente região da rede de comunicação. Sistemas de funcionamento em rede tais como roteadores e comutadores são convencionalmente configurados para interligar o dispositivo de reprodução de conteúdo com a rede de distribuição de conteúdo. Em certos cenários de muito tráfego, congestionamento dentro da rede de comunicações pode limitar a largura de banda entre certos pontos de extremidade, tal como entre o dispositivo de reprodução de conteúdo e a rede de distribuição de conteúdo. Além disso, os sistemas de funcionamento em rede entre o dispositivo de reprodução de conteúdo e a rede de distribuição de conteúdo pode falhar sem aviso, criando problemas de confiabilidade. A composição de problemas de confiabilidade, servidores de conteúdo e sistemas de funcionamento em rede dentro da rede de distribuição de conteúdo também pode falhar ou se tornar sobrecarregada sem aviso. Como resultado, o dispositivo de reprodução de conteúdo pode ser incapaz de baixar e reproduzir de forma confiável os arquivos de conteúdo solicitados por um usuário.
Como ilustrado pelo precedente, o que é necessário na técnica é uma abordagem para baixar arquivos de conteúdo digital para um dispositivo de reprodução de conteúdo que seja mais robusta e confiável do que as abordagens da técnica anterior.
SUMÁRIO DA INVENÇÃO
Uma modalidade da presente invenção apresenta um método para baixar um arquivo de conteúdo digital a partir de uma rede de distribuição de conteúdo (CDN) residindo dentro de um sistema de distribuição de conteúdo. O método incluí as etapas de receber uma lista de CDN a partir de um servidor de diretório de conteúdo que inclui uma ou mais CDNs residindo dentro do sistema de distribuição de conteúdo e também inclui uma graduação e um peso para cada uma da uma ou mais CDNs, e selecionar uma CDN a partir da lista de CDN a partir da qual baixar o arquivo de conteúdo digital com base em um teste de largura de banda, onde a CDN selecionada é capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo em uma taxa de bits mais elevada associada com a máquina de dispositivo de reprodução de conteúdo ou tem uma largura de banda ponderada maior do que ou igual à largura de banda ponderada associada com qualquer outra CDN incluída na lista de CDN. 0 método também inclui as etapas de lançar um fluxo de execução de armazenamento temporário configurado para baixar conteúdo digital associado com o arquivo de conteúdo digital a partir da CDN e armazenar o conteúdo digital em um armazenador temporário de conteúdo, e lançar um fluxo de execução de reprodução configurado para reproduzir o conteúdo digital armazenado no armazenador temporário de conteúdo.
Uma vantagem do método revelado é que cada dispositivo de reprodução de conteúdo dentro do sistema de distribuição de conteúdo é capaz de facilitar a reprodução de conteúdo confiável, apesar de certas falhas dentro da rede de comunicação e certas outras falhas de CDN. O dispositivo de reprodução de conteúdo é capaz de reestabelecer a reprodução sob condições de falha grave e selecionar vantajosamente uma boa CDN para baixar um arquivo de conteúdo digital em condições amplas de sistema subótimo.
Outras modalidades incluem, sem limitação, um meio legível por computador que inclui instruções que possibilitam que uma unidade de processamento implemente um ou mais aspectos dos métodos revelados assim como um sistema configurado para implementar um ou mais aspectos dos métodos revelados.
BREVE DESCRIÇÃO DOS DESENHOS
Para que a forma na qual as características citadas acima da presente invenção possam ser entendidas em detalhe, uma descrição mais específica da invenção, resumida brevemente acima, pode ser tida mediante referência às modalidades, algumas das quais são ilustradas nos desenhos anexos. Deve-se observar, contudo, que os desenhos anexos ilustram apenas modalidades típicas desta invenção e, portanto, não devem ser considerados como limitadores de seu escopo, uma vez que a invenção pode admitir outras modalidades igualmente eficazes.
A Figura 1 ilustra um sistema de distribuição de conteúdo configurado para implementar um ou mais aspectos da presente invenção;
A Figura 2 é uma vista mais detalhada do dispositivo de reprodução de conteúdo da Figura 1, de acordo com uma modalidade da invenção;
A Figura 3A é um diagrama de fluxo das etapas de método para baixar um arquivo de conteúdo digital a partir de uma rede de distribuição de conteúdo dentro do sistema de distribuição de conteúdo, de acordo com uma modalidade da invenção;
A Figura 3B é um diagrama de fluxo de etapas de método para selecionar uma rede de distribuição de conteúdo dentro de um sistema de distribuição de conteúdo a partir do qual baixar um arquivo de conteúdo digital específico, de acordo com uma modalidade da invenção;
A Figura 3C é um diagrama de fluxo das etapas de método para armazenar temporariamente um arquivo de conteúdo digital baixado a partir de uma rede de distribuição de conteúdo, de acordo com uma modalidade da invenção; e
A Figura 3D é um diagrama de fluxo de etapas de método para reproduzir um arquivo de conteúdo digital armazenado temporariamente em um armazenador temporário de conteúdo dentro de um dispositivo de reprodução de conteúdo, de acordo com uma modalidade da invenção.
DESCRIÇÃO DETALHADA
Na descrição seguinte, vários detalhes específicos são apresentados para prover um entendimento mais completo da presente invenção. Contudo, será evidente para aqueles versados na técnica que a presente invenção pode ser praticada sem um ou mais desses detalhes específicos. Em outros casos, características bem conhecidas não foram descritas para evitar obscurecer a presente invenção.
A Figura 1 ilustra um sistema de distribuição de conteúdo 100 configurado para implementar um ou mais aspectos da presente invenção. Conforme mostrado, o sistema de distribuição de conteúdo 100 inclui, sem limitação, um dispositivo de reprodução de conteúdo 110 configurado para selecionar um arquivo de conteúdo digital para reprodução a partir de uma de uma pluralidade de redes de distribuição de conteúdo 14 0. Um servidor de diretório de conteúdo 120 é configurado para prover o dispositivo de reprodução de conteúdo 110 com uma lista de redes de distribuição de conteúdo hospedando o arquivo de conteúdo digital. Uma rede de comunicação 150, tal como a rede de comunicação de Internet conhecida, proporciona estrutura de comunicação para possibilitar a comunicação entre o dispositivo de reprodução de conteúdo 110, servidor de diretório de conteúdo 12 0, e as redes de distribuição de conteúdo 140.
O dispositivo de reprodução de conteúdo 110 pode compreender um sistema de computador, um conversor de sinal de frequência, um dispositivo móvel tal como um telefone móvel, ou qualquer outra plataforma de computação tecnicamente praticável que tenha conectividade de rede e seja acoplada ao dispositivo de exibição ou inclua um dispositivo de exibição. Cada rede de distribuição de conteúdo (CDN) 140 compreende ao menos um sistema de computador configurado para atender solicitações de transferência para arquivos de conteúdo digital a partir do dispositivo de reprodução de conteúdo 110. O arquivo de conteúdo digital pode compreender qualquer tipo de conteúdo (dados) digital codificado ou não codificado incluindo, sem limitação, conteúdo de filme, conteúdo de programa de televisão ou conteúdo de áudio. Os arquivos de conteúdo digital podem residir em um sistema de armazenamento de massa que pode ser acessado pelo sistema de computador incluindo, sem limitação, meio de armazenamento anexado direto, meio de armazenamento de arquivos anexados de rede ou meio de armazenamento de nível de bloco anexado de rede. Os arquivos de conteúdo digital podem ser formatados e armazenados no sistema de armazenamento de massa utilizando qualquer técnica tecnicamente praticável. Qualquer protocolo de transferência de dados, tal como um protocolo de transferência de arquivo convencional (FTP) ou protocolo de transferência de hipertexto convencional (HTTP), pode ser usado para baixar arquivos de conteúdo digital a partir da CDN 14 0 para o dispositivo de reprodução de conteúdo 110 .
Em um cenário prático, vários dispositivos de reprodução de conteúdo 110 se conectam a uma pluralidade de CDNs 140. Um servidor de diretório de conteúdo 120 pode ser usado para guiar um dispositivo de reprodução de conteúdo determinado 110 para uma CDN específica 140 a partir da qual baixar um arquivo de conteúdo digital específico. O servidor de diretório de conteúdo 120 deve residir em um endereço de rede que é conhecido dos vários dispositivos de reprodução de conteúdo 110. O endereço de rede pode compreender um endereço de protocolo Internet (IP) específico ou um localizador universal de recursos (URL) específico, ou qualquer outro endereço de rede tecnicamente praticável.
A rede de comunicações 150 pode incluir uma pluralidade de sistemas de comunicação de rede, tais como roteadores e comutadores, configurados para facilitar a comunicação de dados entre o dispositivo de reprodução de conteúdo 110 e a pluralidade de redes de distribuição de conteúdo 140. Aqueles versados na técnica reconhecerão que existem muitas técnicas tecnicamente praticáveis para construir o sistema de comunicações 150, incluindo tecnologias praticadas no emprego da rede de comunicações sem fio bem conhecida.
Em um cenário de operação, o dispositivo de reprodução de conteúdo 110 pode transmitir uma solicitação de consulta de título 112 para o servidor de diretório de conteúdo 120. A solicitação de consulta de título 112 pode incluir um nome de título específico de um arquivo de conteúdo digital específico, tal como Gone with the Wind. Em resposta à solicitação de consulta de título 112, ο servidor de diretório de conteúdo 120 gera e transmite uma lista CDN 122 para o dispositivo de reprodução de conteúdo 110. A lista de CDN 122 especifica uma ou mais CDNs 140 cada uma das quais hospeda uma cópia do arquivo de conteúdo digital citado na solicitação de consulta de título 112. Para um determinado título, cada lista de CDN 122 pode ser diferente para cada dispositivo de reprodução de conteúdo 110, e um determinado dispositivo de reprodução de conteúdo 110 pode receber uma lista de CDN diferente 122 para cada título solicitado diferente.
Em uma modalidade, a lista de CDN 122 também declara uma graduação e peso para cada CDN 140. A classificação pode ser deduzida de acordo com a ordem da lista de CDN 122 ou declarado explicitamente como um número associado a uma determinada CDN 140. O peso é declarado explicitamente como um número associado com a determinada CDN 140. Em uma modalidade, cada CDN 140 dentro da lista de CDN 122 inclui uma lista de URLs de servidores de conteúdo individuais dentro da CDN 140. A Tabela 1 ilustra uma lista de CDN exemplar 122.
TABELA 1
CDN 1: Graduação = 1
Peso = 140
Fluxo = URL1, URL2
CDN 2 : Graduação = 2
Peso = 120
Fluxo = URL3, URL4, URL5
CDN 3: Graduação = 3
Peso = 100
Fluxo = URL6, URL7, URL8
Conforme mostrado, três CDNs são relacionadas, CDN1 a CDN3, correspondendo a CDN 140-1 até CDN 140-3 da Figura 1. Cada CDN 140 inclui um campo de graduação, um campo de peso e um campo de fluxo, que são usados para especificar um ou mais servidores de conteúdo configurados para baixar arquivos de conteúdo digital para o dispositivo de reprodução 110. Cada URL1 a URL8 pode ser da forma http://network-address-name, onde a URL especifica um protocolo de transferência de hipertexto (HTTP) como o protocolo de transferência de dados.
A ordem das classificações associadas com as diferentes CDNs 14 0 dentro das várias listas de CDN 122 é usada para gerenciar o tráfego entre os dispositivos de reprodução de conteúdo 110 e as CDNs 140 dentro do sistema de distribuição de conteúdo 100. A ordem das classificações associadas com as diferentes CDNs 14 0 para um determinado dispositivo de reprodução de conteúdo 110 pode ser selecionada utilizando qualquer técnica tecnicamente praticável com base em fatores tais como, sem limitação, número de identificação do cliente, número de identificação de título, número de identificação de provedor de serviço Internet, localização geográfica do dispositivo de reprodução de conteúdo 110, histórico de cliente, ou carga de servidor predominante, ou qualquer combinação dos mesmos.
Por exemplo, uma operação de módulo cem pode ser realizada na identificação de cliente (um número singular atribuído a um cliente) para um determinado dispositivo de reprodução de conteúdo para gerar o valor de módulo de cliente que varia de 0 a 99. Um dispositivo de reprodução de conteúdo 110 com um valor de módulo associado a partir de 0 até 69 pode receber uma lista de CDN 122 classificando em primeiro lugar a CDN 1, enquanto que um dispositivo de reprodução de conteúdo 110 com um valor de módulo associado a partir de 70 até 99 pode receber uma lista de CDN 122 classificando em primeiro lugar a CDN 2. Em tal cenário, a CDN 1 deve ter em média 70% de largura de banda de transferência total porque aproximadamente 70% de números de identificação de cliente estão 0 e 69, enquanto que a CDN 2 deve ter em média 3 0% da largura de banda de transferência total porque aproximadamente 30% dos números de identificação de cliente estão compreendidos entre 70 e 99.
Um valor de peso também é associado a cada CDN 140 incluída na lista de CDN 122. Conforme descrito em maior detalhe aqui, no caso de nenhuma das CDNs 140 incluídas na lista de CDN 122 ser capaz de transmitir um fluxo de transferência de taxa de bits mais alta para o dispositivo de reprodução de conteúdo 110, o valor de peso serve como uma preferência a afinidade para o dispositivo de reprodução de conteúdo 110 selecionar uma das CDNs 140 incluídas na lista de CDN 122 a partir da qual baixar um arquivo de conteúdo digital específico. Conforme aqui usado, a taxa de bits mais alta corresponde à taxa de bits média máxima suportada pelo dispositivo de reprodução de conteúdo 110. Em adição à taxa de bits mais alta, o dispositivo de reprodução de conteúdo 110 suporta tipicamente ao menos uma taxa de bits média mais baixa.
A partir do recebimento da lista de CDN 122, o dispositivo de reprodução de conteúdo 110 seleciona uma CDN 140 a partir da qual transferir o arquivo de conteúdo digital citado na solicitação de consulta de título 112. 0 dispositivo de reprodução de conteúdo 110 então prossegue para baixar e reproduzir o arquivo de conteúdo digital citado na solicitação de consulta de título 112. Em uma modalidade, o dispositivo de reprodução de conteúdo 110 estabelece um fluxo de solicitação 114 para solicitar porções específicas do arquivo de conteúdo digital associado com a solicitação de consulta de título 112 assim como um fluxo de transferência de dados 144 configurado para baixar as porções específicas do arquivo de conteúdo digital para o dispositivo de reprodução de conteúdo 110.
Embora, na descrição acima, o sistema de distribuição de conteúdo 100 seja mostrado com um dispositivo de reprodução de conteúdo 110 e três CDNs 140, aqueles versados na técnica reconhecerão que a arquitetura da Figura 1 considera apenas uma modalidade exemplar da invenção. Outras modalidades podem incluir qualquer número de dispositivos de reprodução de conteúdo 110 e/ou CDNs
140. Assim, a Figura 1 de forma alguma pretende limitar o escopo da presente invenção.
A Figura 2 é uma vista mais detalhada do dispositivo de reprodução de conteúdo 110 da Figura 1, de acordo com uma modalidade da invenção. Conforme mostrado, o dispositivo de reprodução de conteúdo 110 inclui, sem limitação, uma unidade central de processamento (CPU) 210, um subsistema gráfico 212, uma interface de dispositivo de entrada/saída (I/O) 214, uma interface de rede 218, uma interconexão 220, e um subsistema de memória 230. O dispositivo de reprodução de conteúdo 110 também pode incluir uma unidade de armazenamento de massa 216.
A unidade central de processamento (CPU) 210 é configurada para recuperar e executar instruções de programação armazenadas em um subsistema de memória 230. A CPU 210 recupera as instruções de programação a partir do subsistema de memória 230 por intermédio de uma interconexão 220. A CPU 210 é configurada para armazenar e recuperar os dados no subsistema de memória 230 por intermédio da interconexão 220.
O subsistema gráfico 212 é configurado para gerar quadros de dados de vídeo, tal como uma sequência de imagens gráficas, e transmitir os quadros de dados de vídeo para o dispositivo de exibição 250. O subsistema gráfico 212 é acoplado à CPU 210 por intermédio da interconexão 220. Em uma modalidade, o subsistema gráfico 212 é integrado em um circuito integrado junto com a CPU 210. O dispositivo de exibição 250 pode compreender qualquer meio tecnicamente praticável para gerar uma imagem para exibição. Por exemplo, o dispositivo de exibição 250 pode ser fabricado utilizando tecnologia de exibição de cristal líquido (LCD), tecnologias de raios catódicos, e tecnologia de exibição de diodo de emissão de luz (LED) (quer seja orgânico ou inorgânico) para produzir uma representação visual dos quadros de dados de vídeo. Uma interface de dispositivo de entrada/saída (I/O) 214 é configurada para receber dados de entrada a partir dos dispositivos I/O de usuário 252 e transmitir os dados de entrada para a CPU 210 por intermédio da interconexão 220. Por exemplo, os dispositivos I/O de usuário 252 podem compreender um ou mais botões, um teclado, e um mouse ou outro dispositivo indicador. A interface de dispositivo I/O 214 também inclui uma unidade de saída de áudio configurada para gerar um sinal elétrico de saída de áudio. Dispositivos I/O de usuário 252 incluem um altofalante configurado para gerar uma saída acústica em resposta ao sinal elétrico de saída de áudio. Em modalidades alternativas, o dispositivo de exibição 250 pode incluir um altofalante. Uma televisão é um exemplo de um dispositivo conhecido na técnica que pode exibir quadros de vídeo e gerar uma saída acústica. Uma unidade de armazenamento de massa 216, tal como uma unidade de disco rígido ou unidade de armazenamento de memória instantânea, é configurada para armazenar dados não voláteis. A unidade de armazenamento de massa 216 é acoplada à CPU 210 por intermédio da interconexão 220. Uma interface de rede 218 é configurada para transmitir e receber pacotes de dados por intermédio da rede de comunicação 150. Em uma modalidade, a interface de rede 218 é configurada para comunicação utilizando o padrão Ethernet bem conhecido. A interface de rede 218 é acoplada à CPU 210 por intermédio da interconexão 220.
subsistema de memória 230 inclui instruções de programação e dados que compreendem um sistema operacional 232. O sistema operacional 232 realiza funções de gerenciamento de sistema tais como gerenciamento dos dispositivos de hardware incluindo a interface de rede 218, unidade de armazenamento de massa 216, interface de dispositivo I/O 214, e subsistema gráfico 212. 0 sistema operacional 232 também proporciona modelos de gerenciamento de memória e processo para uma interface de usuário 234 e um aplicativo de reprodução 236. A interface de usuário 234 proporciona uma estrutura específica, tal como uma metáfora de objeto e janela, para interação de usuário com o dispositivo de reprodução de conteúdo 110. Aqueles versados na técnica reconhecerão os vários sistemas operacionais e interfaces de usuário que são bem conhecidos na técnica e adequados para incorporação no dispositivo de reprodução de conteúdo 110.
aplicativo de reprodução 236 é configurado para recuperar um arquivo de conteúdo digital a partir de uma CDN 140 por intermédio da interface de rede 218 e reproduzir o arquivo de conteúdo digital por intermédio do subsistema gráfico 212 e dispositivo de exibição 250. O aplicativo de reprodução 236 solicita uma lista de CDN 240, tal como a lista de CDN 122 da Figura 1, a partir do servidor de diretório de conteúdo 120. O aplicativo de reprodução 236 seleciona uma CDN a partir da lista de CDN 240, conforme descrito em mais detalhe abaixo na Figura 3B. O aplicativo de reprodução 236 então prossegue para baixar e armazenar temporariamente o arquivo de conteúdo digital a partir de uma CDN 140. O aplicativo de reprodução 236 gera uma renderização visualizável do arquivo de conteúdo digital para um usuário durante um processo de reprodução, conforme descrito em maior detalhe abaixo nas Figuras 3A, 3B, 3C e 3D.
Um dispositivo de armazenamento temporário de áudio 242 pode ser usado para armazenar os dados de áudio a partir de uma peça de conteúdo digital baixada a partir da CDN selecionada 140. Em uma modalidade, um decodificador de áudio 244 é usado para decodificar os dados armazenados no dispositivo de armazenamento de áudio 242 em uma ou mais trilhas de áudio. Um dispositivo de armazenamento de vídeo 24 6 é usado para armazenar os dados de vídeo a partir de uma peça de conteúdo digital baixada a partir da CDN 14 0. Um decodificador de vídeo 248 é usado para decodificar e renderizar os dados armazenados no dispositivo de armazenamento de vídeo 242 em uma ou mais sequências de quadros de vídeo visualizáveis. Em uma modalidade, um armazenador temporário de conteúdo 245 compreende uma estrutura de armazenador temporário, unificada incluindo o armazenador temporário de áudio 242 e o armazenador temporário de vídeo 246. Nessa modalidade, os dados de áudio e os dados de vídeo são estruturados em um único fluxo. Em uma modalidade alternativa, o armazenador temporário de conteúdo 245 compreende o armazenador temporário de áudio 242 e o armazenador temporário de vídeo 246 configurados como armazenadores temporários separados que podem ser acessados independentemente para adicionar ou remover dados.
A Figura 3A é um diagrama de fluxo de etapas de método 300 para baixar um arquivo de conteúdo digital a partir de uma rede de distribuição de conteúdo 14 0 com o sistema de distribuição de conteúdo 100, de acordo com uma modalidade da invenção. Embora as etapas de método sejam descritas em conjunto com os sistemas das Figuras 1 e 2, aqueles versados na técnica entenderão que qualquer sistema configurado para realizar as etapas de método, em qualquer ordem, está dentro do escopo da invenção. Em uma modalidade, as etapas de método 300 executam como um fluxo de execução de gerenciamento de dispositivo de reprodução de conteúdo dentro do aplicativo de reprodução 236.
método começa na etapa 310, o aplicativo de reprodução 236 recebe uma solicitação de usuário para reproduzir um título de conteúdo digital selecionado. Por exemplo, o usuário pode introduzir uma seleção utilizando um ou mais dos dispositivos I/O de usuário 252 da Figura 2, tal como um teclado ou mouse. Na etapa 312, o aplicativo de reprodução 236 solicita uma lista CDN 122 para o arquivo de conteúdo digital selecionado a partir do servidor de diretório de conteúdo 120 por intermédio de uma solicitação de consulta de título 112. Em uma modalidade, o servidor de diretório de conteúdo 120 reside em uma rede de comunicação em um local, tal como um URL, conhecido do dispositivo de reprodução de conteúdo 110. Na etapa 314, o aplicativo de reprodução 236 recebe uma lista de CDN 122 a partir do servidor de diretório de conteúdo 120, e a lista de CDN 122 é armazenada como lista de CDN 240 dentro do subsistema de memória 230. Outra vez, a Tabela 1 previamente descrita aqui mostra uma estrutura exemplar para a lista de CDN 240.
Na etapa 320, o aplicativo de reprodução 236 seleciona uma CDN 140 dentro do sistema de distribuição de conteúdo 100 a partir da lista de CDN 240 a partir da qual o arquivo de conteúdo digital selecionado deve ser baixado. 0 algoritmo para selecionar aquela CDN 140 é descrito em maior detalhe abaixo em conjunto com a Figura 3B. Um resultado da etapa 320 é que, na etapa 324, uma porção do conteúdo digital associada ao arquivo de conteúdo digital selecionado é armazenada no armazenador temporário de conteúdo 245. Consequentemente, o conteúdo digital associado com o arquivo de conteúdo digital selecionado pode ser acéssado para reprodução mais rapidamente, desse modo reduzindo o retardo associado ao processo de reprodução. Na etapa 326, o aplicativo de reprodução 236 pré-armazena temporariamente uma quantidade adicional de conteúdo digital associado ao arquivo de conteúdo digital selecionado antes do início da reprodução.
Na etapa 33 0, o aplicativo de reprodução 23 6 lança um fluxo de execução de armazenamento temporário, como descrito em maior detalhe na Figura 3C. O fluxo de execução de armazenamento temporário é configurado para continuar a baixar conteúdo digital adicionado associado ao arquivo de conteúdo digital selecionado a partir da CDN 140 e armazenar temporariamente esses dados no dispositivo de armazenamento de conteúdo 245. Na etapa 335, o aplicativo de reprodução 236 lança um fluxo de execução de reprodução. O fluxo de execução de reprodução é configurado para ler os dados de áudio e vídeo a partir do armazenador temporário de conteúdo 245 e gerar um fluxo correspondente de áudio e vídeo para reprodução para o usuário.
Na etapa 33 8, o aplicativo de reprodução 23 6 espera que o fluxo de execução de reprodução lançado na etapa 335 termine. Na etapa 390, o aplicativo de reprodução 236 determina se o arquivo de conteúdo digital selecionado foi reproduzido até o fim com base em uma condição de saída do fluxo de execução de reprodução. Se, na etapa 3 90, o arquivo de conteúdo digital selecionado não tiver sido reproduzido até o fim, então o método 3 00 retorna para a etapa 320 descrita acima. Tal cenário ocorre quando o fluxo de execução de reprodução encontra uma execução insuficiente de armazenador temporário e precisa ser reiniciado. Um marcador de tempo pode ser armazenado para indicar onde o arquivo de conteúdo digital selecionado deve começar a executar a partir da reinicialização. Se, contudo, na etapa 390, o arquivo de conteúdo digital selecionado tiver sido reproduzido até o fim, então o método termina na etapa 392.
A Figura 3B é um diagrama de fluxo das etapas de método 322 para selecionar uma CDN 140 dentro do sistema de distribuição de conteúdo 100 a partir do qual baixar o arquivo de conteúdo digital selecionado, de acordo com uma modalidade da invenção. Embora as etapas de método sejam descritas em conjunto com os sistemas das Figuras 1 e 2 aqueles versados na técnica entenderão que qualquer sistema configurado para realizar as etapas de método, em qualquer ordem, está dentro do escopo da invenção. Em resumo, as etapas de método 322 determinam a CDN específica 140 a partir da qual o arquivo de conteúdo digital selecionado deve ser baixado com base nas exigências de desempenho de transferência especificadas pelo dispositivo de reprodução de conteúdo 110 assim como as preferências de CDN designadas para o dispositivo de reprodução de conteúdo 110 refletidas na lista de CDN 240. Outra vez, as etapas de método 322 descrevem a ètapa 32 0 da Figura 3A em maior detalhe e, em uma modalidade, são realizadas pelo fluxo de execução de gerenciamento de dispositivo de reprodução de conteúdo dentro do aplicativo de reprodução 236.
O método começa na etapa 340, onde o aplicativo de reprodução 236 seleciona as CDNs 140 incluídas na lista de CDN 240 com base nas classificações associadas às CDNs 14 0 para gerar uma lista de CDNs selecionadas. A cada CDN 140 na lista de CDNs selecionadas é atribuída uma graduação correspondente, conforme ilustrado na Tabela 1. Em uma modalidade, a primeira CDN 14 0 na lista de CDNs selecionadas tem uma graduação de um (1) e cada CDN subsequente na lista de CDN escolhida tem uma graduação crescente. Uma variável CDN_Count é estabelecida para refletir uma contagem das CDNs 140 dentro da lista de CDNs selecionadas.
Na etapa 342, o aplicativo de reprodução 236 inicializa um i variável para zero. O i variável determina qual CDN 140 dentro da lista de CDNs selecionadas está sendo atualmente avaliada. Na etapa 344, o aplicativo de reprodução 236 compara o valor de i com o número total de CDNs 14 0 dentro da lista de CDNs selecionadas. Se o valor de i for menor do que CDN_Count, que reflete o número total de CDNs 14 0 dentro da lista de CDNs selecionadas, então o método prossegue para a etapa 346. Na etapa 346, o aplicativo de reprodução 236 realiza um teste de largura de banda em CDN[i], isto é, a CDN 140 atualmente sendo avaliada. Para realizar o teste de largura de banda, uma porção do arquivo de conteúdo digital selecionado é baixada a partir da CDN[i] para o dispositivo de reprodução de conteúdo 110 para avaliar a quantidade de largura de banda disponível entre CDN[i] e o dispositivo de reprodução de conteúdo 110. A largura de banda disponível nesse contexto inclui largura de banda instantânea entre CDN[i] e o dispositivo de reprodução de conteúdo 110 através da rede de comunicações 150 e também considera a carga atual total em CDN[i] . Quando a rede de comunicação 150 está congestionada entre CDN[i] e o dispositivo de reprodução de conteúdo 110, a quantidade de largura de banda disponível é tipicamente reduzida devido ao congestionamento. Similarmente, quando CDN[i] é intensamente carregada com solicitações de transferência, a quantidade de largura de banda disponível normalmente é reduzida porque CDN[i] não é capaz de atender tão rapidamente às solicitações de transferência.
Na etapa 348, o aplicativo de reprodução 236 armazena a quantidade de largura de banda disponível entre CDN[i] e o dispositivo de reprodução de conteúdo 110, referido como valor de largura de banda, em um arranjo Bandwidth[i] residindo dentro do subsistema de memória 230. Na etapa 350, o aplicativo de reprodução 236 armazena os dados de transferência, referidos como dados de teste de largura de banda, no armazenador temporário de conteúdo 245 .
Na etapa 352, o aplicativo de reprodução 236 determina se CDN[i] pode transferir dados para o dispositivo de reprodução de conteúdo 110 na taxa de bits mais alta associada ao dispositivo de reprodução de conteúdo 110. Outra vez, a taxa de bits mais alta é a taxa de bits média máxima suportada pelo dispositivo de reprodução de conteúdo 110. Se CDN[i] não pode transferir dados na taxa de bits mais alta (significando que o valor de largura de banda medido para CDN[i] na etapa 346 é menor do que a taxa de bits mais alta associada ao dispositivo de reprodução de conteúdo 110), então o método prossegue para a etapa 354, onde'o aplicativo de reprodução 236 computa um valor de largura de banda ponderada para CDN[i]. O valor de largura de banda ponderada para CDN[i] é igual à largura de banda medida para CDN[i] na etapa 346 multiplicado pelo valor de peso incluído na lista de CDNs selecionadas associadas ao CDN[i]. Na etapa 356, o aplicativo de reprodução 236 incrementa a variável i em um antes de o método retornar à etapa 344, conforme descrito acima.
Ao retornar à etapa 344, o aplicativo de reprodução 23 6 compara outra vez o valor de i com o número total de CDNs 14 0 dentro da lista de CDNs selecionadas. Se o valor de i não for menor do que CDN_Count, então a largura de banda de cada CDN 140 dentro da lista de CDNs selecionadas foi testada, e um valor de largura de banda ponderada foi computado para cada CDN 140 dentro da lista de CDNs selecionadas. O método então prossegue para a etapa 360, onde o aplicativo de reprodução 236 seleciona a CDN 140 que tem o maior valor de largura de banda ponderada como a CDN 14 0 a partir da qual baixar o arquivo de conteúdo digital selecionado. Se duas ou mais CDNs 140 tiverem valores ponderados de largura de banda iguais ao valor ponderado mais elevado de largura de banda, então o aplicativo de reprodução 23 6 seleciona a CDN 14 0 tendo a graduação relativa mais baixa entre aquelas duas ou mais CDNs 140 conforme apresentado na lista de CDNs selecionadas, como a CDN 14 0 a partir da qual baixar o arquivo de conteúdo digital selecionado. O método então termina na etapa 364.
Retornando agora à etapa 352, se CDN[i] pode baixar dados na taxa de bits mais alta (significando que a largura de banda medida para CDN[i] na etapa 346 é maior do que ou igual à taxa de bits mais alta associada ao dispositivo de reprodução de conteúdo 110), então o método prossegue para a etapa 362, onde o aplicativo de reprodução 236 seleciona CDN[i] como a CDN 140 a partir da qual baixar o arquivo de conteúdo digital selecionado. Nesse cenário, nenhum teste adicional é necessário porque a CDN atualmente testada 140 satisfaz às exigências de desempenho de transferência do dispositivo de reprodução de conteúdo 110. Outra vez, o método termina na etapa 364.
Conforme será reconhecido por aqueles versados na técnica, em um cenário onde ao menos uma CDN 14 0 pode prover uma transferência de arquivo de conteúdo digital na mais alta taxa de bits suportada, a ordem de graduação das CDNs 140 dentro da lista de CDNs selecionadas determina qual CDN 140 deve fornecer o arquivo de conteúdo digital ao dispositivo de reprodução de conteúdo 110. Em um cenário onde nenhuma 140 dentro da lista de CDNs selecionadas pode fornecer uma transferência do arquivo de conteúdo digital na mais alta taxa de bits suportada, o valor de largura de banda ponderada para cada CDN 140 na lista de CDNs selecionadas é usado para selecionar uma CDN 140 a partir da qual baixar o arquivo de conteúdo digital selecionado, conforme apresentado acima. Em uma modalidade, uma CDN de mais alta graduação (número de graduação mais baixo) é selecionada quando uma pluralidade das CDNs 140 de produto de peso por largura de banda igual estiver disponível.
A Figura 3C é um diagrama de fluxo das etapas de método 332 para armazenar temporariamente um arquivo de conteúdo digital baixado a partir de uma rede de distribuição de conteúdo 140, de acordo com uma modalidade da invenção. Embora as etapas de método sejam descritas em conjunto com os sistemas das Figuras 1 e 2, aqueles versados na ' técnica entenderão que qualquer sistema configurado para realizar as etapas de método, em qualquer ordem, está dentro do escopo da invenção.
O método começa na etapa 3 70, onde o fluxo de execução de armazenamento temporário lançado na etapa 330 da Figura 3A começa a execução. A inicialização exigida para uma determinada implementação de fluxo de execução pode ser realizada nessa etapa. Certos parâmetros podem ser passados para o fluxo de execução de armazenamento temporário, incluindo, sem limitação, qual CDN 140 foi selecionada na etapa 320 da Figura 3A, e um marcador de tempo usado pelo fluxo de execução de armazenamento temporário para determinar um tempo de início para armazenamento temporário. O marcador de tempo é importante em um cenário onde uma nova CDN 140 precisa ser selecionada devido a um armazenador temporário anterior em execução.
Na etapa 372, o fluxo de execução de armazenamento temporário determina se um sinal de desistência é recebido. Aqueles versados na técnica reconhecerão que um sinal compreende um mecanismo de comunicação entre processos para transmitir mensagens entre fluxos de execução em andamento. Nesse contexto, o sinal de desistência é um sinal específico enviado pelo fluxo de execução de reprodução para o fluxo de execução de armazenamento temporário exigindo que o fluxo de execução de armazenamento temporário termine a execução. O sinal de desistência é gerado pelo fluxo de execução de reprodução quando o fluxo de execução de reprodução encontra um problema crítico, tal como uma execução insuficiente de armazenador temporário. Conforme refletido na Figura 3A, uma condição de execução insuficiente de armazenador temporário faz com que o fluxo de execução de gerenciamento de dispositivo de reprodução de conteúdo executando dentro do aplicativo de reprodução 236 selecione uma nova CDN 140 a partir da qual baixar o arquivo de conteúdo digital. Quando for feita uma determinação para selecionar uma nova CDN 140, o fluxo de execução de armazenamento temporário tentando baixar o arquivo de conteúdo digital a partir da CDN antiga 140 termina.
Se, na etapa 372, um sinal de desistência não for recebido, então o método prossegue para a etapa 374 onde o fluxo de execução de armazenamento temporário recupera e armazena temporariamente o conteúdo digital adicional associado com o arquivo de conteúdo digital selecionado a partir da CDN 140 selecionada na etapa 320 da Figura 3A. Na etapa 376, o fluxo de execução de armazenamento temporário termina se uma execução insuficiente de armazenador temporário tiver ocorrido no armazenador temporário de conteúdo 245. Uma execução insuficiente de armazenador temporário ocorre quando o fluxo de execução de armazenamento temporário tiver falhado em adicionar dados suficientes ao armazenador temporário de conteúdo 245 para acompanhar o fluxo de execução de reprodução atuando para consumir os dados a partir do armazenador temporário de conteúdo 245 enquanto executando uma reprodução do arquivo de conteúdo digital. 0 fluxo de execução de armazenamento temporário pode falhar em acrescentar dados suficientes por razões incluindo, sem limitação, falhas temporárias dentro da rede de comunicações 150, falha da CDN selecionada 140, carregamento excessivo da CDN selecionada 140. Quando ocorre execução insuficiente de armazenador temporário no armazenador de conteúdo 245, reprodução de conteúdo em tempo real pelo dispositivo de reprodução de conteúdo 110 é interrompida. Uma nova CDN 14 0 a partir da qual baixar o arquivo de conteúdo digital selecionado pode então ser selecionada, conforme descrito acima.
Se, na etapa 376, não tiver ocorrido uma execução insuficiente do armazenador temporário, então o método prossegue para a etapa 378. Na etapa 378, o fluxo de execução de armazenamento temporário determina se o fluxo (arquivo de conteúdo digital) foi completamente baixado a partir a CDN selecionada 140. Se, na etapa 378, o fluxo não tiver acabado de baixar a partir da CDN selecionada 140, então o método retorna para a etapa 372, descrita acima, onde dados adicionais são baixados para o armazenador temporário de conteúdo 245. Se, contudo, na etapa 378, o fluxo (arquivo de conteúdo digital) estiver acabado de baixar a partir da CDN selecionada 140, então o método termina na etapa 394. Nesse ponto, o fluxo de execução de armazenamento temporário baixou de forma bem-sucedida o arquivo de conteúdo digital para o armazenador temporário de conteúdo 245.
Com referência de volta à etapa 376, se tiver ocorrido uma execução insuficiente de armazenador temporário no armazenador temporário de conteúdo 245, então o método termina na etapa 394. Similarmente, na etapa 372, se um sinal de desistência for recebido, então o método também termina na etapa 394.
A Figura 3D é um diagrama de fluxo de etapas de método 336 para reproduzir conteúdo digital armazenado temporariamente no armazenador temporário de conteúdo 245 dentro do dispositivo de reprodução de conteúdo 110, de acordo com uma modalidade da invenção. Embora as etapas de método sejam descritas em conjunto com os sistemas das Figuras 1 e 2, aqueles versados na técnica entenderão que qualquer sistema configurado para realizar as etapas de método, em qualquer ordem, está dentro do escopo da invenção.
O método começa na etapa 380, onde o fluxo de execução de reprodução lançado na etapa 335 da Figura 3A é inicializado de acordo com uma determinada implementação de fluxo de execução. Outra vez, certos parâmetros podem ser passados para o fluxo de execução de reprodução, incluindo, sem limitação, um marcador de tempo. Na etapa 381, o fluxo de execução de reprodução tenta recuperar as amostras de conteúdo (dados de fluxo de áudio e vídeo) a partir do armazenador temporário de conteúdo 245. Na etapa 382, o fluxo de execução de reprodução determina se o armazenador temporário de conteúdo 245 está vazio. Se, na etapa 382, o armazenador temporário de conteúdo 245 não estiver vazio, então o fluxo de execução de reprodução prossegue para a etapa 384, onde o fluxo de execução de reprodução reproduz uma certa quantidade (um certo período de tempo ou contagem de bytes) de amostras de conteúdo a partir do armazenador
temporário de conteúdo 245 . 0 método então retorna para a
etapa 381.
Se, contudo, na etapa 382, o armazenador
temporário de conteúdo 245 estiver vazio, então o método
prossegue para a etapa 3 86. Na etapa 3 86, o fluxo de execução de reprodução determina se o fim de um fluxo foi encontrado e o arquivo de conteúdo digital foi reproduzido até uma conclusão normal. Se, na etapa 380, um erro de fluxo não tiver sido encontrado, então o método prossegue para a etapa 388, onde um sinal de desistência é transmitido para o fluxo de execução de armazenamento temporário da Figura 3C. 0 método então termina na etapa 3 96, onde o fluxo de reprodução retorna um status de não término de fluxo para o fluxo de execução de gerenciamento de dispositivo de reprodução de conteúdo da Figura 3A. contudo, se na etapa 386, um fim de fluxo tiver sido encontrado, então o método termina na etapa 398, onde o fluxo de reprodução retorna um status de fim de fluxo para o fluxo de execução de gerenciamento de dispositivo de reprodução de conteúdo da Figura 3A.
Uma modalidade da invenção pode ser implementada como um produto de programa armazenado em ao menos um meio de armazenamento legível por computador residindo dentro do dispositivo de reprodução de conteúdo 110. Em tal modalidade, o dispositivo de reprodução de conteúdo 110 compreende uma plataforma integrada de computador tal como um conversor de sinais de frequência, e o produto de programa armazenado possibilita que os métodos das Figuras 3A-3D sejam implementados pelo dispositivo de reprodução de conteúdo 110. Em uma modalidade alternativa, um produto de programa pode ser baixado para uma memória dentro de um dispositivo de computador. Por exemplo, o produto de programa baixado pode ser instruções executáveis embutidas em um sítio de rede da Internet. Em tal modalidade, o dispositivo de reprodução de conteúdo 110 compreende o dispositivo de computador, e o produto de programa baixado possibilita que os métodos das Figuras 3A-3D sejam implementados pelo dispositivo de reprodução de conteúdo 110 .
Em resumo, é revelada uma técnica para reproduzir arquivo de conteúdo digital em um dispositivo de reprodução de conteúdo 110. A técnica envolve receber uma lista de redes de distribuição de conteúdo (CDNs) 140 associadas a um arquivo de conteúdo digital solicitado, selecionar uma das redes de distribuição de conteúdo, baixar o arquivo de conteúdo digital para um armazenador temporário de conteúdo 245, e reproduzir o arquivo de conteúdo digital a partir do armazenador temporário de conteúdo 245. O processo de selecionar uma CDN 140 envolve selecionar uma lista de CDNs 240 em uma lista de CDNs selecionadas e testar a largura de banda para ao menos uma CDN 140. Se uma CDN 140 na lista de CDNs selecionadas pode prover largura de banda adequada para o fluxo com mais alta de bits, então a CDN 14 0 é selecionada. Se uma CDN 14 0 não for encontrada que possa proporcionar o fluxo de mais alta taxa de bits, então uma CDN 14 0 é selecionada com base em um produto de peso por largura de banda.
Uma vantagem dos sistemas e métodos revelados é que cada dispositivo de reprodução de conteúdo 110 dentro do sistema de distribuição de conteúdo 100 é capaz de facilitar a reprodução de conteúdo confiável, apesar de certas falhas dentro da rede de comunicações 150 e certas outras falhas de CDN 140. O dispositivo de reprodução de conteúdo 110 é capaz de restabelecer a reprodução sob condições de graves falhas e selecionar de forma vantajosa uma boa CDN para baixar um arquivo de conteúdo digital em condições subótimas por todo o sistema. Em comparação, soluções da técnica anterior tendem a experimentar falhas catastróficas de reprodução quando submetidas à falha de rede de comunicação e falha de servidor de conteúdo. Outra vantagem é que a presente invenção possibilita seleção ótima de CDN, mesmo quando existirem condições normais de operação por todo o sistema de distribuição de conteúdo.
Embora o precedente seja dirigido às modalidades da presente invenção, outras e adicionais modalidades da invenção podem ser concebidas sem se afastar de seu escopo básico. Por exemplo, aspectos da presente invenção podem ser implementados em hardware ou software ou em uma combinação de hardware e software. Uma modalidade da invenção pode ser implementada como um produto de programa para uso com um sistema de computador. O programa (s) do produto de programa define funções das modalidades (incluindo os métodos aqui descritos) e pode ser contido em uma variedade de meios de armazenamento legíveis por computador. Meios de armazenamento legíveis por computador ilustrativos incluem, mas não são limitados a: (i) meios de armazenamento não graváveis (por exemplo, dispositivos de memória de leitura dentro de um computador tais como discos de CD-ROM legíveis por uma unidade de CD-ROM, memória instantânea, chips ROM ou qualquer tipo de memória de 5 semicondutor não volátil de estado sólido) nas quais informação é permanentemente armazenada; e (ii) meios de armazenamento graváveis (por exemplo, disquetes dentro de uma unidade de disquete ou unidade de disco rígido ou qualquer tipo de memória de semicondutor de acesso 10 aleatório de estado sólido) nas quais informação que pode ser alterada é armazenada. Tais meios de armazenamento legíveis por computador, quando carregando instruções legíveis por computador que guiam as funções da presente invenção, são modalidades da presente invenção.
Em virtude do precedente, o escopo da presente invenção é determinado pelas reivindicações a seguir.

Claims (14)

  1. REIVINDICAÇÕES
    1. Método para baixar um arquivo de conteúdo digital a partir de uma rede de distribuição de conteúdo (CDN) (140) residindo dentro de um sistema de distribuição de conteúdo, o método caracterizado pelo fato de que compreende:
    receber (314) uma lista de CDN (122) a partir de um servidor de diretório de conteúdo (120) que inclui uma ou mais CDNs residindo dentro do sistema de distribuição de conteúdo e inclui também uma graduação e um peso para cada uma ou mais CDNs;
    selecionar (320) uma CDN a partir da lista de CDN a partir da qual baixar o arquivo de conteúdo digital com base em um teste de largura de banda, em que a CDN selecionada é uma CDN com graduação mais alta da lista de CDN em que é determinado a partir do teste de largura de banda para ser capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo (110) em uma média máxima de taxa de bits suportada pela a máquina de dispositivo de reprodução de conteúdo ou, no caso de o teste de largura de banda não identificar a CDN capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo (110) pela dita média máxima de taxa de bits suportada pela a máquina de dispositivo de reprodução de conteúdo, é a CDN que tem uma largura de banda ponderada maior do que ou igual à largura de banda ponderada associada com qualquer outra CDN incluída na lista de CDN, a largura de banda ponderada para uma CDN sendo calculada usando a largura de banda determinada
    Petição 870190106357, de 21/10/2019, pág. 11/30 durante o teste de largura de banda e o peso da lista de CDN;
    lançar (330) um fluxo de execução de armazenamento temporário configurado para baixar conteúdo digital associado ao arquivo de conteúdo digital a partir da CDN selecionada e armazenar o conteúdo digital em um armazenador temporário de conteúdo; e lançar (335) um fluxo de execução de reprodução configurado para reproduzir o conteúdo digital armazenado no armazenador temporário de conteúdo.
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de selecionar compreende as etapas de:
    computar, para uma primeira CDN (140) na lista de CDN (122), uma primeira taxa de bits na qual a primeira CDN pode baixar a porção do arquivo de conteúdo digital para a máquina de dispositivo de reprodução de conteúdo (110); e determinar se a primeira taxa de bits é igual à media máxima da taxa de bits associada à máquina de dispositivo de reprodução de conteúdo.
  3. 3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira taxa de bits é igual à média máxima da taxa de bits associada à máquina de dispositivo de reprodução de conteúdo (110), e a etapa de selecionar compreende ainda a etapa de selecionar a primeira CDN (140).
  4. 4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira taxa de bits não é igual à média máxima da taxa de bits associada à máquina de dispositivo de reprodução de conteúdo (110), e a etapa
    Petição 870190106357, de 21/10/2019, pág. 12/30 de selecionar compreende ainda as etapas de:
    computar, para uma segunda CDN (140) na lista de CDN (122), uma segunda taxa de bits na qual a segunda CDN pode baixar a porção do arquivo de conteúdo digital para a máquina de dispositivo de reprodução de conteúdo; e determinar se a segunda taxa de bits é igual à média máxima da taxa de bits associada à máquina de dispositivo de reprodução de conteúdo.
  5. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que nenhuma CDN (140) na lista de CDN (122) é capaz de baixar a porção do arquivo de conteúdo digital para a máquina de dispositivo de reprodução de conteúdo (110) na média máxima da taxa de bits, e a etapa de selecionar compreende as etapas de:
    para cada CDN incluída na lista de CDN, computar uma taxa de bits na qual a porção do arquivo de conteúdo digital pode ser baixada para a máquina de dispositivo de reprodução de conteúdo; e para cada CDN incluída na lista de CDN, computar (354) uma largura de banda ponderada igual ao produto da taxa de bits na qual a CDN pode baixar a porção do arquivo
    de conteúdo digital para a máquina de dispositivo de reprodução de conteúdo e o peso incluído na lista de CDN para a CDN. 6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que uma primeira CDN (140) na
    lista de CDN (122) tem uma largura de banda ponderada que é maior do que a largura de banda ponderada associada a qualquer outra CDN incluída na lista de CDN, e a etapa de selecionar compreende ainda a etapa de selecionar a
    Petição 870190106357, de 21/10/2019, pág. 13/30 primeira CDN.
  6. 7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que duas ou mais CDNs (140) na lista de CDN (122) têm a mesma largura de banda ponderada, e a etapa de selecionar compreende ainda a etapa de selecionar uma primeira CDN das duas ou mais CDNs que têm a mais alta graduação relativa apresentada na lista de CDN.
  7. 8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o fluxo de execução de armazenamento temporário é configurado ainda para continuar a baixar e armazenar (374) o conteúdo digital associado ao arquivo de conteúdo digital até que o fluxo de execução de armazenamento temporário encontre um sinal de desistência indicando que ocorreu uma condição de execução insuficiente de armazenador temporário ou um sinal de término de fluxo indicando que o arquivo de conteúdo digital inteiro foi baixado e reproduzido.
  8. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o fluxo de execução de reprodução é configurado para:
    continuar a reprodução (384) do conteúdo digital armazenado no armazenador temporário de conteúdo até determinar que o armazenador temporário de conteúdo está vazio; e enviar (388) o sinal de desistência para o fluxo de execução de armazenamento temporário, se o arquivo de conteúdo digital inteiro não tiver sido reproduzido, ou enviar (398) o sinal de término de fluxo para um fluxo de execução de gerenciamento de dispositivo de reprodução de conteúdo, se o arquivo de conteúdo digital
    Petição 870190106357, de 21/10/2019, pág. 14/30 inteiro tiver sido reproduzido.
  9. 10. Meio legível por comutador incluindo instruções que, quando executadas por uma unidade de processamento, fazem com que a unidade de processamento baixe um arquivo de conteúdo digital a partir de uma rede de distribuição de conteúdo (CDN) (140) residindo dentro de um sistema de distribuição de conteúdo, caracterizado pelo fato de que compreende as etapas de:
    receber (312) uma lista de CDN (122) a partir de um servidor de diretório de conteúdo (120) que inclui uma ou mais CDNs residindo dentro do sistema de distribuição de conteúdo e inclui também uma graduação e um peso para cada uma da uma ou mais CDNs;
    selecionar (320) uma CDN a partir de uma lista de CDN a partir da qual baixar o arquivo de conteúdo digital com base em um teste de largura de banda, em que a CDN selecionada é uma CDN com graduação mais alta da lista de CDN em que é determinado a partir do teste de largura de banda para ser capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo (110) em uma média máxima da taxa de bits suportada pela máquina de dispositivo de reprodução de conteúdo ou, no caso de o teste de largura de banda não identificar a CDN capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo (110) pela dita média máxima de taxa de bits suportada pela a máquina de dispositivo de reprodução de conteúdo, é a CDN que tem uma largura de banda ponderada maior do que ou igual à largura de banda ponderada associada com qualquer outra CDN incluída na
    Petição 870190106357, de 21/10/2019, pág. 15/30 lista de CDN, a largura de banda ponderada para uma CDN sendo calculada usando a largura de banda determinada durante o teste de largura de banda e o peso da lista de CDN;
    lançar (330) um fluxo de execução de armazenamento temporário configurado para baixar conteúdo digital associado ao arquivo de conteúdo digital a partir da CDN selecionada e armazenar o conteúdo digital em um armazenador temporário de conteúdo; e lançar (335) um fluxo de execução de reprodução configurado para reproduzir o conteúdo digital armazenado no armazenador temporário de conteúdo.
  10. 11. Meio legível por computador, de acordo com a reivindicação 10, caracterizado pelo fato de que a etapa de selecionar compreende as etapas de:
    computar, para uma primeira CDN (140) na lista de CDN (122), uma primeira taxa de bits na qual a primeira CDN pode baixar a porção do arquivo de conteúdo digital para a máquina de dispositivo de reprodução de conteúdo (110); e determinar se a primeira taxa de bits é igual à média máxima da taxa de bits associada à máquina de dispositivo de reprodução de conteúdo.
  11. 12. Meio legível por computador, de acordo com a reivindicação 10, caracterizado pelo fato de nenhum CDN na lista de CDN (122) ser capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo (110) pela média máxima da taxa de bits, e a etapa de selecionar compreende as etapas de:
    para cada CDN incluída na lista de CDN, computar a taxa de bits na qual a porção do arquivo de conteúdo
    Petição 870190106357, de 21/10/2019, pág. 16/30 digital pode ser baixado para a máquina de dispositivo de reprodução de conteúdo; e para cada CDN incluída na lista de CDN, computar (354) uma largura de banda ponderada igual ao produto da taxa de bits na qual a CDN pode baixar a porção do arquivo de conteúdo digital para a máquina de dispositivo de reprodução de conteúdo e o peso incluído na lista de CDN para a CDN.
  12. 13. Meio legível por computador, de acordo com a reivindicação 12, caracterizado pelo fato de que a primeira CDN (140) na lista de CDN (122) tem uma largura de banda ponderada que é maior do que a largura de banda ponderada associada com qualquer outra CDN incluída na lista de CDN, e a etapa de selecionar compreende ainda a etapa de selecionar a primeira CDN.
  13. 14. Meio legível por computador, de acordo com a reivindicação 10, caracterizado pelo fato de que o fluxo de execução de armazenamento é configurado ainda para continuar a baixar e armazenar (374) o conteúdo digital associado ao arquivo de conteúdo digital até que o fluxo de execução de armazenamento temporário encontre um sinal de desistência indicando que ocorreu uma condição de execução insuficiente de armazenador temporário ou um sinal de término de fluxo indicando que o arquivo de conteúdo digital inteiro foi baixado e reproduzido.
  14. 15. Dispositivo de reprodução de conteúdo (110) configurado para baixar um arquivo de conteúdo digital a partir de uma rede de distribuição de conteúdo (CDN) (140) residindo dentro de um sistema de distribuição de conteúdo, o dispositivo de reprodução de conteúdo caracterizado pelo
    Petição 870190106357, de 21/10/2019, pág. 17/30 fato de que compreende:
    uma memória (230) que inclui um armazenador temporário de conteúdo para armazenar conteúdo digital baixado; e uma unidade de processamento (210) acoplada à memória e configurada para:
    receber (314) uma lista de CDN (122) a partir de um servidor de diretório de conteúdo (120) que inclui uma ou mais CDNs residindo dentro do sistema de distribuição de conteúdo e inclui também uma graduação e um peso para cada uma da uma ou mais CDNs, selecionar (320) uma CDN a partir da lista de CDN a partir da qual baixar o arquivo de conteúdo digital com base em um teste de largura de banda, em que a CDN selecionada é uma CDN com graduação mais alta da lista de CDN em que é determinado a partir do teste de largura de banda para ser capaz de baixar uma porção do arquivo de conteúdo digital para o dispositivo de reprodução de conteúdo em uma média máxima da taxa de bits suportado pelo o dispositivo de reprodução de conteúdo ou, no caso de o teste de largura de banda não identificar a CDN capaz de baixar uma porção do arquivo de conteúdo digital para uma máquina de dispositivo de reprodução de conteúdo (110) pela dita média máxima de taxa de bits suportada pela a máquina de dispositivo de reprodução de conteúdo, é a CDN que tem uma largura de banda ponderada (354) maior do que ou igual à largura de banda ponderada associada a qualquer outra CDN incluída na lista de CDN, a largura de banda ponderada para uma CDN sendo calculada usando a largura de banda determinada durante o teste de largura de banda e o peso da
    Petição 870190106357, de 21/10/2019, pág. 18/30 lista de CDN, lançar (330) um fluxo de execução de armazenamento temporário configurado para baixar conteúdo digital associado ao arquivo de conteúdo digital a partir 5 da CDN selecionada e armazenar o conteúdo digital no armazenador temporário de conteúdo, e lançar (335) um fluxo de execução de reprodução configurado para reproduzir o conteúdo digital armazenado no armazenador temporário de conteúdo em um dispositivo de 10 exibição acoplado ao dispositivo de reprodução de conteúdo.
BR112012001671-7A 2009-07-16 2010-07-15 Método e sistema de distribuição de conteúdo digital BR112012001671B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/504,528 US8433814B2 (en) 2009-07-16 2009-07-16 Digital content distribution system and method
US12/504,528 2009-07-16
PCT/US2010/042174 WO2011008984A1 (en) 2009-07-16 2010-07-15 A digital content distribution system and method

Publications (2)

Publication Number Publication Date
BR112012001671A2 BR112012001671A2 (pt) 2016-04-12
BR112012001671B1 true BR112012001671B1 (pt) 2020-06-02

Family

ID=43449804

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012001671-7A BR112012001671B1 (pt) 2009-07-16 2010-07-15 Método e sistema de distribuição de conteúdo digital

Country Status (11)

Country Link
US (1) US8433814B2 (pt)
EP (1) EP2454680B1 (pt)
JP (1) JP5298331B2 (pt)
BR (1) BR112012001671B1 (pt)
CA (1) CA2768361C (pt)
CL (1) CL2012000136A1 (pt)
CO (1) CO6491079A2 (pt)
DK (1) DK2454680T3 (pt)
IN (1) IN2012DN00716A (pt)
MX (1) MX2012000747A (pt)
WO (1) WO2011008984A1 (pt)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10862994B1 (en) * 2006-11-15 2020-12-08 Conviva Inc. Facilitating client decisions
US9549043B1 (en) 2004-07-20 2017-01-17 Conviva Inc. Allocating resources in a content delivery environment
US8483616B1 (en) 2005-11-01 2013-07-09 At&T Intellectual Property Ii, L.P. Non-interference technique for spatially aware mobile ad hoc networking
US8355410B2 (en) 2007-08-17 2013-01-15 At&T Intellectual Property I, L.P. Location-based mobile gaming application and method for implementing the same using a scalable tiered geocast protocol
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
US9264780B1 (en) 2006-11-15 2016-02-16 Conviva Inc. Managing synchronized data requests in a content delivery network
US8874725B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US8874964B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Detecting problems in content distribution
US9124601B2 (en) 2006-11-15 2015-09-01 Conviva Inc. Data client
US8751605B1 (en) 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US9177313B1 (en) * 2007-10-18 2015-11-03 Jpmorgan Chase Bank, N.A. System and method for issuing, circulating and trading financial instruments with smart features
CN105072454B (zh) 2009-01-07 2019-04-19 索尼克Ip股份有限公司 针对在线内容的媒体指南的特定化、集中式、自动化创建
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
US9203913B1 (en) 2009-07-20 2015-12-01 Conviva Inc. Monitoring the performance of a content player
US9118428B2 (en) 2009-11-04 2015-08-25 At&T Intellectual Property I, L.P. Geographic advertising using a scalable wireless geocast protocol
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
WO2011136703A1 (en) * 2010-04-26 2011-11-03 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for playing out a media object
US10016684B2 (en) * 2010-10-28 2018-07-10 At&T Intellectual Property I, L.P. Secure geographic based gaming
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
US8589996B2 (en) 2011-03-16 2013-11-19 Azuki Systems, Inc. Method and system for federated over-the-top content delivery
US8849950B2 (en) * 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
US9161158B2 (en) 2011-06-27 2015-10-13 At&T Intellectual Property I, L.P. Information acquisition using a scalable wireless geocast protocol
US9319842B2 (en) 2011-06-27 2016-04-19 At&T Intellectual Property I, L.P. Mobile device configured point and shoot type weapon
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
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
US8744419B2 (en) 2011-12-15 2014-06-03 At&T Intellectual Property, I, L.P. Media distribution via a scalable ad hoc geographic protocol
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
US9071451B2 (en) 2012-07-31 2015-06-30 At&T Intellectual Property I, L.P. Geocast-based situation awareness
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US9699519B2 (en) * 2012-10-17 2017-07-04 Netflix, Inc. Partitioning streaming media files on multiple content distribution networks
US9456253B2 (en) 2012-12-04 2016-09-27 Virtual Marketing Incorporated Internet protocol television streaming methods and apparatus
US9660745B2 (en) 2012-12-12 2017-05-23 At&T Intellectual Property I, L.P. Geocast-based file transfer
US20140337472A1 (en) * 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
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
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
US8973073B2 (en) * 2013-05-20 2015-03-03 Telefonaktiebolaget L M Ericsson (Publ) Weighted ingest policy management in a content distribution network
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
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
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
US10178043B1 (en) 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
CN108076117B (zh) * 2016-11-14 2020-08-25 腾讯科技(深圳)有限公司 一种数据下载方法及用户终端
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
JP7003705B2 (ja) * 2018-02-06 2022-01-21 日本電信電話株式会社 サーバ選択装置、サーバ選択方法及びプログラム
CN111064997B (zh) * 2018-10-16 2021-11-16 深圳市云帆加速科技有限公司 一种资源预分发方法及装置
JP6884845B1 (ja) * 2019-12-06 2021-06-09 アクセリア株式会社 コンテンツ取得再生装置、コンテンツ取得プログラム及びcdn監視装置
US11784840B2 (en) * 2021-12-20 2023-10-10 Zoom Video Communications, Inc. Receiving data for presentation during a conference
US11848975B2 (en) 2021-12-20 2023-12-19 Zoom Video Communications, Inc. United states sharing data for presentation during a conference

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299291B1 (en) * 2000-05-18 2007-11-20 Akamai Technologies, Inc. Client-side method for identifying an optimum server
MY147018A (en) * 2001-01-04 2012-10-15 Thomson Licensing Sa A method and apparatus for acquiring media services available from content aggregators
JP3698073B2 (ja) * 2001-06-13 2005-09-21 日本電信電話株式会社 サーバ選択装置、方法、プログラム及び該プログラムを記録した記録媒体
JP4040292B2 (ja) * 2001-11-30 2008-01-30 日本電信電話株式会社 サーバ選択方法、サーバ選択装置、サーバ選択プログラム、および、記録媒体
US20030135863A1 (en) * 2002-01-17 2003-07-17 Koninklijke Philips Electronics N.V. Targeted scalable multicast based on client bandwidth or capability
JP2003223378A (ja) * 2002-01-29 2003-08-08 Fujitsu Ltd コンテンツデリバリネットワークサービス方法及びシステム
JP2003256310A (ja) * 2002-03-05 2003-09-12 Nec Corp サーバ負荷分散システム、サーバ負荷分散装置、コンテンツ管理装置、及びサーバ負荷分散プログラム
JP4176363B2 (ja) * 2002-03-22 2008-11-05 富士通株式会社 コンテンツ送信方法
US7987491B2 (en) * 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US20040024900A1 (en) * 2002-07-30 2004-02-05 International Business Machines Corporation Method and system for enhancing streaming operation in a distributed communication system
US7849159B2 (en) * 2002-11-22 2010-12-07 Realnetworks, Inc. Method and apparatus for distributing binary presentations within digital media content files
JP2004336309A (ja) * 2003-05-06 2004-11-25 Nippon Telegr & Teleph Corp <Ntt> コンテンツのネットワーク配信方法、システム、コンテンツ検索・選択サーバ、ロケーション選択サーバ
JP3922575B2 (ja) * 2003-06-20 2007-05-30 日本電信電話株式会社 SIPセッション制御によるCDNにおけるQoS保証方法とQoS保証システムおよび端末装置とコンテンツ配信サブシステムとSIPセッション制御サブシステムならびにプログラム
US20050027862A1 (en) * 2003-07-18 2005-02-03 Nguyen Tien Le System and methods of cooperatively load-balancing clustered servers
JP2005218049A (ja) * 2004-02-02 2005-08-11 Nec Corp コンテンツ配信サーバ選択システム、サーバ及び配信サーバ選択プログラム
US7676590B2 (en) * 2004-05-03 2010-03-09 Microsoft Corporation Background transcoding
JP2006109099A (ja) * 2004-10-05 2006-04-20 Sony Corp コンテンツ配信システム,コンテンツ配信装置,利用者端末,およびコンピュータプログラム
JP2007074356A (ja) * 2005-09-07 2007-03-22 Hitachi Ltd ホームネットワークシステム
JP4944484B2 (ja) * 2006-04-20 2012-05-30 キヤノン株式会社 再生装置、再生方法及びプログラム
US9996627B2 (en) * 2007-03-30 2018-06-12 Excalibur Ip, Llc Point of presence distribution mechanism for digital content objects
JP2011508916A (ja) * 2007-12-03 2011-03-17 ベロシツクス・リミテツド デジタルデータを配信するための方法および装置
GB2456026A (en) * 2007-12-26 2009-07-01 Contendo Inc CDN balancing and sharing platform

Also Published As

Publication number Publication date
JP2012533938A (ja) 2012-12-27
DK2454680T3 (en) 2018-12-10
EP2454680A4 (en) 2015-06-17
MX2012000747A (es) 2012-05-08
CA2768361C (en) 2015-11-17
US8433814B2 (en) 2013-04-30
WO2011008984A1 (en) 2011-01-20
CL2012000136A1 (es) 2012-08-24
CO6491079A2 (es) 2012-07-31
US20110016225A1 (en) 2011-01-20
EP2454680B1 (en) 2018-08-15
BR112012001671A2 (pt) 2016-04-12
JP5298331B2 (ja) 2013-09-25
EP2454680A1 (en) 2012-05-23
CA2768361A1 (en) 2011-01-20
IN2012DN00716A (pt) 2015-06-19

Similar Documents

Publication Publication Date Title
BR112012001671B1 (pt) Método e sistema de distribuição de conteúdo digital
US20170034233A1 (en) Pre-Buffering Audio Streams
US10326810B2 (en) Parallel streaming
US8825790B2 (en) Caching of fragmented streaming media
US11303844B2 (en) Media resource storage and management
JP5302463B2 (ja) デジタルコンテンツの配布のための適応型ストリーミング
CN105573667B (zh) 一种数据读取方法和存储服务器
BR112013013944B1 (pt) Método e sistema para transferir conteúdo de vídeo digital
US20140143301A1 (en) Multi-cdn digital content streaming
US20110055386A1 (en) Network analytics management
US8566442B2 (en) Test environment for audio/video playback
BRPI0406531B1 (pt) método para transmissão de conteúdo de mídia em streaming e meio legível por computador correspondente
CN105847941A (zh) 一种基于hls协议的音视频流直播方法
DK2834746T3 (en) PIPELINE TREATMENT FOR PARALLEL NETWORK CONNECTIONS FOR TRANSMISSION OF A DIGITAL CONTENT POWER
WO2020155959A1 (zh) 切换清晰度的方法、装置、计算机设备及可读存储介质
BR102021003482A2 (pt) Pré-armazenamento em cache seletivo de fluxos de mídia
WO2021073539A1 (zh) 一种hls播放方法、客户端、服务器及存储介质
US10284894B2 (en) Methods and apparatus for naming video content chunks
WO2014150965A1 (en) Profile generation for bandwidth management
BR112021004423A2 (pt) métodos, sistemas e mídia para liberar conteúdo de mídia de transmissão por streaming sem manifesto
CN115065859B (zh) 视频数据获取方法、装置、设备及介质
CN114422831B (zh) 媒体播放方法及装置、电子设备和可读存储介质
CN117651195A (zh) 一种基于网络环境的虚拟礼物资源播放方法、设备和介质
CN115065862A (zh) 视频数据获取方法、装置、设备及介质

Legal Events

Date Code Title Description
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]
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 15/07/2010, OBSERVADAS AS CONDICOES LEGAIS.