BRPI0923917B1 - Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real - Google Patents

Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real Download PDF

Info

Publication number
BRPI0923917B1
BRPI0923917B1 BRPI0923917-0A BRPI0923917A BRPI0923917B1 BR PI0923917 B1 BRPI0923917 B1 BR PI0923917B1 BR PI0923917 A BRPI0923917 A BR PI0923917A BR PI0923917 B1 BRPI0923917 B1 BR PI0923917B1
Authority
BR
Brazil
Prior art keywords
media files
playlist file
updated
playlist
file
Prior art date
Application number
BRPI0923917-0A
Other languages
English (en)
Inventor
David Biderman
William May, JR.
Alan Tseng
Roger Pantos
James David Batson
Original Assignee
Apple 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
Priority claimed from US12/479,732 external-priority patent/US8099476B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of BRPI0923917A2 publication Critical patent/BRPI0923917A2/pt
Publication of BRPI0923917B1 publication Critical patent/BRPI0923917B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/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
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

transmissão contínua em tempo real ou próximo ao tempo real. a presente invenção refere-se a métodos e aparelhos para transmissão contínua em tempo real ou quase tempo real utilizando protocolos de transferência tais como um produto compatível ao http. em uma modalidade, um método inclui dividir um transmissão contínua de dados, representando conteúdos de programas com base emtempos contíguos (por exemplo uma transmissão de vídeo ao vivo), em uma pluralidade de arquivos de mídia distintos, e gerar um arquivo de lista de reprodução que tem uma pluralidade de caracteres e indicadores de recursos universais que indicam uma ordem de apresentação da pluralidade de arquivos de mídia distintos. a pluralidade de arquivos de mídia e o arquivo de lista de reprodução podem ser feitos disponíveis para a transmissão para um dispositivo do cliente que possa recuperar os arquivos de mídia usando o arquivo de lista de reprodução.

Description

PEDIDOS RELACIONADOS
[001] Este pedido reivindica o benefício das datas de arquiva mento dos seguintes pedidos provisórios norte-americano: (1) Pedido No 61/142.110 arquivado em 31 de dezembro de 2008 (Súmula No P7437Z); (2) Pedido No 61/160.693 arquivado em 16 de março de 2009 (Súmula No P7437Z2); (3) Pedido No 61/161.036 arquivado em 17 de março 2009 (Súmula No P7437Z3); (4) Pedido No 61/167.524 arquivado em 7 de abril 2009 (Súmula No P7437Z4); (5) Pedido No 61/240.648 arquivado em 8 de setembro 2009 (Súmula No P7437Z5); e (6) Pedido No 61/288.828 arquivado em 21 de dezembro de 2009 (Súmula No P7437Z6). Todos estes pedidos provisórios norte- americanos são incorporados aqui como referência até o ponto em que os mesmos são consistentes com esta descrição.
[002] O presente Pedido de Patente norte-americano está relaci onado com os seguintes Pedidos de Patentes norte-americanos, cada um do qual está incorporado aqui como referência: (1) Pedido No 12/479.690 (Súmula No P7437US1), arquivado em 5 de junho de 2009, intitulado "TRANSMISSÃO CONTÍNUA EM TEMPO REAL OU PRÓXIMO AO TEMPO REAL;" (2) Pedido No 12/479.698 (Súmula No P7437US2), arquiva- do em 5 de junho de 2009, intitulado " TRANSMISSÕES CONTÍNUAS VARIANTES PARA TRANSMISSÃO CONTÍNUA EM TEMPO REAL OU PRÓXIMO AO TEMPO REAL;" (3) Pedido No 12/479.732 (Súmula No P7437US3), arquivado em 5 de junho de 2009, intitulado "TRANSMISSÃO CONTÍNUA EM TEMPO REAL OU PRÓXIMO AO TEMPO REAL ATUALIZÁVEL;" e (4) Pedido No 12/479.735 (Súmula No P7437US4), arquivado em 5 de junho de 2009, intitulado "LISTAS DE REPRODUÇÃO PARA TRANSMISSÃO CONTÍNUA EM TEMPO REAL OU PRÓXIMO AO TEMPO REAL."
CAMPO TÉCNICO
[003] A presente invenção refere-se a técnicas de transmissão de dados. Mais particularmente, modalidades da invenção relacionadas a técnicas que permitem transmissão contínua de dados usando protocolos de transmissão não contínua tais como, por exemplo, Protocolo de Transferência de Hipertexto (HTTP).
ANTECEDENTES
[004] A transmissão contínua de conteúdos geralmente refere-se a conteúdos de multimídia que são constantemente transmitidos a partir de um dispositivo de servidor e recebidos por um dispositivo de cliente. O conteúdo é geralmente apresentado a um usuário final enquanto é entregue pelo servidor de transmissão contínua. O nome refere-se ao método de entrega do meio ao invés de o próprio meio.
[005] Os serviços de transmissão contínua atuais geralmente pre cisam de servidores especializados a fim de distribuir conteúdo "ao vivo" para usuários finais. Em qualquer distribuição em larga escala, isto pode resultar em alto custo, e precisa de habilidades especializadas para preparar e executar. Isto resulta em uma biblioteca de conteúdos disponível para transmissão contínua menos do que desejável.
SUMÁRIO DA DESCRIÇÃO
[006] Em uma modalidade, um dispositivo de servidor armazena pelo menos uma parte dos conteúdos a ser transmitido continuamente. O conteúdo é tipicamente uma transmissão contínua de imagens ou áudio (por exemplo, sons ou música) ou ambos com base temporal; um exemplo de uma transmissão contínua de base temporal é um filme no qual a ordem e apresentação de imagens é baseada em tempo, e dali o mesmo pode ser considerado uma transmissão contínua de base temporal. O servidor inclui um agente de segmento a fim de decompor o conteúdo a ser transmitido continuamente em segmentos a serem transmitidos via pacotes de acordo com um protocolo de rede e um agente indexador a fim de gerar um ou mais arquivos de lista de reprodução que possam facilitar um cliente ao apresentar os dados do usuário segmentados. Um dispositivo de cliente é acoplado com o dispositivo de servidor (ou outro servidor que armazena os segmentos e listas de reprodução e os transmite, mas não os geram) via uma rede. O dispositivo de cliente possui um agente compilador para receber o um ou mais arquivos de lista de reprodução e facilitar recuperação dos arquivos de mídia segmentados no conteúdo, de acordo com o um ou mais arquivos de lista de reprodução. O dispositivo de cliente pode também ter um agente gerador de saída para produzir o conteúdo via um ou mais componentes de saída do dispositivo de cliente.
[007] Em uma modalidade, o dispositivo de servidor adquire da dos a serem transmitidos para o dispositivo de cliente. O dispositivo de servidor divide os dados a serem transmitidos em múltiplos arquivos de mídia com um agente de segmento. O dispositivo de servidor também armazena os múltiplos segmentos como arquivos de mídia individual em uma memória. O dispositivo de servidor ainda gera um ou mais arquivos de lista de reprodução que possuem referências aos múltiplos arquivos de mídia. Em resposta às solicitações para os dados vindos do dispositivo de cliente, o dispositivo de servidor (ou outro dispositivo de servidor) transmite o um ou mais arquivos de lista de reprodução e pelo menos um subconjunto dos múltiplos arquivos de mídia sobre uma rede para o dispositivo de cliente. Os múltiplos arquivos de mídia podem ser transmitidos usando um protocolo de transferência de transmissão não contínua em resposta a solicitações vindas do dispositivo de cliente; este protocolo pode ser, por exemplo, HTTP.
[008] Em uma modalidade, o dispositivo de cliente pode receber e armazenar o um ou mais arquivos de lista de reprodução. O cliente pode então solicitar os arquivos de mídia segmentados identificados no(s) arquivo(s) da lista de reprodução e descarregar os arquivos de mídia encadeados. O dispositivo de cliente (ou outro dispositivo de cliente) pode então gerar uma emissor de áudio e/ou vídeo que representa a transmissão contínua do conteúdo.
[009] Em uma modalidade, uma lista de reprodução atualizada pode ser dinamicamente gerada por um servidor e então recuperada por um cliente. A lista de reprodução atualizada pode incluir material autônomo (por exemplo, propagandas em uma barra lateral da interface do usuário, conteúdo relacionado, versões alternativas, etc.) mostrado em adição ao programa na lista de reprodução original ou pode incluir partes adicionais do programa (por exemplo, a segunda metade de um programa que está além da primeira metade identificado na lista de reprodução original). Em uma implementação, um servidor pode usar um método de rolagem, descrito aqui, para atualizar a lista de reprodução que é então recuperada pelo cliente como uma lista de reprodução atualizada.
[0010] Em uma modalidade, a lista de reprodução pode especificar uma pluralidade de transmissões contínuas alternativas que representam o mesmo conteúdo; estas transmissões contínuas alternativas podem ser os mesmos programas transmitidos em resoluções visuais diferentes (e dali transmitidos em taxas de bit diferentes) ou com outros atributos diferentes. Um servidor pode gerar múltiplas listas de re- produção, cada uma para uma das transmissões contínuas alternativas e pode gerar uma lista de reprodução variante que se refere a ou especificar de outra forma as transmissões contínuas alternativas. O servidor (ou outro servidor) pode então transmitir a lista de reprodução variante para um dispositivo de cliente, e o dispositivo de cliente pode decidir, baseado em condições de rede atuais (por exemplo, a taxa de rendimento atual em uma rede usada para transferir os arquivos de mídia), qual lista de reprodução selecionar a partir da lista de reprodução variante, e o dispositivo de cliente pode descarregar a lista de reprodução selecionada (e ainda descarregar os arquivos de mídia especificados por aquela lista de reprodução selecionada).
[0011] Em uma modalidade, um dispositivo de cliente pode alter nar de uma primeira lista de reprodução na lista de reprodução variante para uma segunda lista de reprodução naquela lista de reprodução variante enquanto recebe e apresenta conteúdo. Por exemplo, um dispositivo de cliente pode receber um programa, usando a primeira lista de reprodução, e uma primeira taxa de bit e pode determinar através de medições da taxa de rendimento da rede que a mesma pode receber conteúdo do mesmo programa em uma segunda taxa de bit maior, sendo o conteúdo especificado pela segunda lista de reprodução. Neste caso, o dispositivo de cliente pode solicitar a segunda lista de reprodução, receber a segunda lista de reprodução e começar a recuperar os arquivos de mídia especificados na segunda lista de reprodução enquanto continua a apresentar o conteúdo especificado pela primeira lista de reprodução. O dispositivo de cliente pode armazenar os arquivos de mídia e o conteúdo descompactado resultante em memória temporária para ambas as listas de reprodução, e o dispositivo de cliente pode desempenhar uma operação automática a fim de determinar quando e como alternar ou transição entre as duas versões do conteúdo. Por exemplo, um dispositivo de cliente pode usar modelo de comparação do conteúdo de áudio nas duas versões do conteúdo para encontrar um ponto de comparação nas duas versões e então causar uma troca após identificar uma transição no novo conteúdo da segunda lista de reprodução.
[0012] Em uma modalidade, um método inclui fornecer múltiplos locais redundantes que fornecem conteúdo de mídia para dispositivo de clientes usando transmissões contínuas alternativas. Para implementar a proteção failover, um primeiro dispositivo de servidor ou primeiro serviço de distribuição de conteúdo cria uma transmissão contínua, ou múltiplas transmissões contínuas de largura de banda alternativas e gera arquivo(s) de lista de reprodução. Um segundo dispositivo de servidor ou segundo serviço de distribuição de conteúdo cria uma transmissão contínua paralela, ou conjunto de transmissões contínuas. Um cliente tenta descarregar o(s) arquivo(s) da lista de reprodução de um primeiro localizador uniforme de recursos (URL) usando uma primeira transmissão contínua associada com um primeiro dispositivo de servidor ou o primeiro serviço de distribuição de conteúdo. Se um cliente está impossibilitado de descarregar o(s) arquivo(s) da lista de reprodução do primeiro URL, o cliente tenta alternar para uma transmissão contínua alternativa associada com outro URL.
[0013] Em uma modalidade, um método inclui fornecer uma solici tação para uma lista de reprodução e especificar a solicitação que a lista de reprodução pode ser compactada, e recebe, em resposta à solicitação, a lista de reprodução em um formato compactado se um servidor pode fornecer a lista de reprodução no formato compactado (de outra forma, a lista de reprodução pode ser fornecida pelo servidor em formatos descompactada). A lista de reprodução pode ser compactada (também referida como codificado) usando uma técnica de compactação ou formatos suportada por uma técnica de compactação padrão HTTP existente tal como deflate ou gzip. O envio e recebimento da lista de reprodução em um formato compactado pode reduzir signi-ficativamente o tamanho dos dados a serem transmitidos e recebidos, especialmente quando a lista de reprodução cresce ao longo do tempo (por exemplo a lista de reprodução é para um jogo de baseball longo). Em uma modalidade, o uso de compactação para uma lista de reprodução pode ser opcional para tanto o cliente (o sistema solicita a lista de reprodução) quanto o servidor (o sistema responde à solicitação ao enviar a lista de reprodução). O uso de uma compactação técnica ou formatos que é parte do Padrão HTTP permite que qualquer servidor web compatível seja capaz de fornecer uma lista de reprodução compactada e qualquer cliente compatível irá também ser capaz de descompactar e usar a lista de reprodução.
BREVE DESCRIÇÃO DOS DESENHOS
[0014] A invenção é ilustrada através de exemplos, e não através de limitações, nas figuras dos desenhos em anexo nos quais numerais de referência similares referem-se a elementos similares.
[0015] A figura 1 é um diagrama de bloco de uma modalidade de um servidor e clientes que podem enviar e receber conteúdo em tempo real, ou próximo ao tempo real.
[0016] A figura 2A é um diagrama de transmissão contínua de uma modalidade de uma técnica para um ou mais dispositivos de servidor para suportar conteúdo de mídia usando protocolos de transmissão não contínua.
[0017] A figura 2B é um diagrama de transmissão contínua de uma modalidade de uma técnica para um ou mais dispositivos de servidor para fornecer listas de reprodução dinamicamente atualizadas para um ou mais dispositivos de cliente.
[0018] A figura 2C é um diagrama de transmissão contínua de uma modalidade de uma técnica para um ou mais dispositivos de servidor para fornecer conteúdo de mídia para dispositivos de cliente usando múltiplas taxas de bits.
[0019] A figura 3A é um diagrama de transmissão contínua de uma modalidade de uma técnica para um dispositivo de cliente para suportar transmissão contínua de conteúdo usando protocolos de transmissão não contínua.
[0020] A figura 3B é um diagrama de transmissão contínua de uma modalidade de uma técnica para um dispositivo de cliente para suportar transmissão contínua de conteúdo usando múltiplas taxas de bits.
[0021] A figura 4 é um diagrama de bloco de uma modalidade de um agente de servidor de transmissão contínua.
[0022] A figura 5 é um diagrama de bloco de uma modalidade de um agente de transmissão contínua do cliente.
[0023] A figura 6 ilustra em modalidade, de um arquivo de lista de reprodução com múltiplos marcadores.
[0024] A figura 7 é um diagrama de transmissão contínua de uma modalidade de uma técnica de reprodução para transmissões contínuas montadas, conforme descrito aqui.
[0025] A figura 8 é um diagrama de bloco de uma modalidade de um sistema eletrônico.
[0026] A figura 9A é um fluxograma que mostra um exemplo sobre como um dispositivo de cliente pode alternar entre conteúdos alternativos em uma lista de reprodução variante.
[0027] A figura 9B é ainda um fluxograma que mostra como um dispositivo de cliente pode alternar entre conteúdos em duas listas de reprodução.
[0028] A figura 9C é ainda um fluxograma que mostra um exemplo de como um dispositivo de cliente pode alternar entre conteúdos usando comparação de modelos de áudio.
[0029] A figura 9D mostra diagramaticamente como o método da figura 9C é implementado com a comparação de modelos de áudio.
[0030] A figura 10 é um diagrama de transmissão contínua de uma modalidade de uma técnica para fornecer múltiplos locais redundantes que fornecem conteúdo de mídia para dispositivos de cliente usando transmissões contínuas alternativas.
[0031] A figura 11 ilustra uma rede na qual um cliente 1102 comu nica-se bidirecionalmente com um ou mais URLs, de acordo com uma modalidade.
DESCRIÇÃO DETALHADA
[0032] Na seguinte descrição, diversos detalhes específicos são apresentados. Entretanto, modalidades da invenção podem ser praticadas sem estes detalhes específicos. Em outros casos, circuitos, estruturas e técnicas bem-conhecidas não foram mostradas em detalhe de forma a não obscurecer o entendimento desta descrição.
[0033] A presente descrição inclui material protegido por direitos autorais, tais como ilustrações da interface gráfica das imagens do usuário. Os proprietários dos direitos autorais, incluindo o depositante da presente invenção, reservam aqui seus direitos, incluindo direitos autorais, nestes materiais. O proprietário dos direitos autorais não faz objeção alguma à reprodução do documento de patente ou da descrição de patente por fax, feita por qualquer pessoa, conforme consta nos arquivos ou registros da Repartição de Patentes e Marcas, reservando-se contudo todo e qualquer direito autoral. Copyright Apple Inc. 2009.
[0034] Em uma modalidade, técnicas e componentes descritos aqui podem incluir mecanismos para comunicar experiência de transmissão contínua usando protocolos de transmissão não contínua (por exemplo, HTTP) e outras tecnologias (por exemplo, transmissões contínuas de Grupo de Especialistas com Imagens em Movimento (MPEG)). Por exemplo, uma experiência de transmissão contínua próximo ao tempo real pode ser fornecida usando HTTP para difundir um musical "ao vivo" ou evento esportivo, notícias ao vivo, uma alimentação da câmera da Web, etc. Em uma modalidade, um protocolo pode segmentar dados de mídia recebida em múltiplos arquivos de mídia e armazenar tais arquivos de mídia segmentados em um servidor. O protocolo pode também construir um arquivo da lista de reprodução que inclui Identificadores Uniforme de Recursos (URIs) que direcionam o cliente para os arquivos de mídia segmentados armazenados em um servidor. Quando os arquivos de mídia segmentados são reproduzidos de acordo com o(s) arqui- vo(s) da lista de reprodução, o cliente pode fornecer o usuário com a difusão "ao vivo" próximo ao tempo real de um evento. Conteúdo pré- gravado pode ser fornecido de maneira similar.
[0035] Em uma modalidade, o servidor pode dinamicamente intro duzir conteúdo de mídia suplementar ou alternativo (por exemplo, pro-pagandas, estatísticas relacionadas a um evento esportivo, conteúdo de mídia adicional à apresentação principal) na difusão evento. Por exemplo, durante a reprodução de cliente de evento de mídia, o servidor pode acrescentar URIs adicionais para o arquivo da lista de reprodução, os URIs podem identificar um local a partir do qual um cliente pode descarregar um arquivo de mídia suplementar. O cliente pode ser instruído a periodicamente resgatar a partir do servidor um ou mais arquivo(s) da lista de reprodução atualizada a fim de acessar qualquer conteúdo de mídia suplementar ou adicional (ou ambos) que o servidor introduziu.
[0036] Em uma modalidade, o servidor pode operar tanto em modo cumulativo quanto em modo de rolagem. No modo cumulativo, o servidor pode criar um arquivo da lista de reprodução e anexar identificadores de arquivo de mídia para o fim do arquivo da lista de reprodução. O cliente então tem acesso a todas as partes da transmissão contínua a partir de um único arquivo da lista de reprodução (por exemplo, um usuário pode começar no meio de um show) quando descarregado. No modo de rolagem, o servidor pode limitar a disponibilidade de arquivos de mídia ao remover identificadores de arquivo de mídia do início do arquivo da lista de reprodução em uma base de rolagem, com isso fornecendo uma janela deslizante do conteúdo de mídia acessível a um dispositivo de cliente. O servidor pode também acrescentar identificadores de arquivo de mídia para a lista de reprodução e, no modo de rolagem, o servidor pode limitar a disponibilidade dos arquivos de mídia para aqueles que foram recentemente adicionados à lista de reprodução. O cliente então descarregar repetidamente cópias atualizadas do arquivo da lista de reprodução para continuar a visualização. A base de rolagem para o descarregamento da lista de reprodução pode ser útil quando o conteúdo é potencialmente ilimitado ao longo do tempo (por exemplo conteúdo de uma webcam operada continuamente). O cliente pode continuar a solicitar repetidamente a lista de reprodução no modo de rolagem até que encontra um marcador final na lista de reprodução.
[0037] Em uma modalidade, o mecanismo suporta taxa de bit al ternando por fornecimento de transmissões contínuas variáveis da mesma apresentação. Por exemplo, diversas versões de uma apresentação a ser servida pode ser armazenada no servidor. Cada versão pode ter substancialmente o mesmo conteúdo mas é codificado em diferentes taxas de bits. Isto pode permitir o dispositivo de cliente de alternar entre taxas de bits dependendo, por exemplo, de uma detecção da largura de banda disponível, sem comprometer a continuidade da reprodução.
[0038] Em uma modalidade, características de proteção podem ser fornecidas para proteger o conteúdo contra uso não autorizado. Por exemplo, numeração não sequencial de arquivo de mídia pode ser usada para prevenir a predição. Criptografia de arquivos de mídia podem ser usados. Listas de arquivo de mídia parciais podem ser usadas. Características de proteção adicionais e/ou diferentes podem também ser fornecidas.
[0039] A figura 1 é um diagrama de bloco de uma modalidade de um servidor e clientes que pode enviar e receber conteúdo em tempo real, ou próximo ao tempo real. O exemplo da figura 1 fornece uma simples conexão servidor-cliente com dois clientes acoplados com um servidor via uma rede. Qualquer número de clientes pode ser suportado utilizando as técnicas e mecanismos descritos aqui. Ainda, múltiplos servidores podem fornecer conteúdo e/ou podem operar juntos para fornecer conteúdo de acordo com as técnicas e mecanismos descritos aqui. Por exemplo, um servidor pode criar o conteúdo, criar as listas de reprodução e criar as múltiplas mídias (por exemplo, arquivos) e outros servidores armazenam e transmitem o conteúdo criado.
[0040] A rede 110 pode ser qualquer tipo de rede seja com fio, sem fio (por exemplo, IEEE 802.11, 802.16) ou qualquer combinação das mesmas. Por exemplo, a rede 100 pode ser a Internet ou uma intranet. Como outro exemplo, a rede 110 pode ser uma rede de celular (por exemplo, 3G, CDMA). Em uma modalidade, dispositivos de cliente 150 e 180 podem ser capazes de se comunicarem através de múltiplos tipos de rede (por exemplo cada dispositivo pode se comunicar através de uma LAN sem fio WiFi e também através de uma rede de telefone celular sem fio). Por exemplo, dispositivos de cliente 150 e 180 podem ser telefones do tipo SmartPhone ou assistentes digitais pessoais habilitados para telefone celular que podem comunicar-se através de redes celulares de radiotelefonia assim como redes de dados. Estes dispositivos podem ser capazes de utilizar os mecanismos de transmissão contínua descritos aqui através de qualquer tipo de rede ou mesmo alternar entre redes conforme necessário.
[0041] O servidor 120 pode operar como um servidor HTTP de qualquer maneira conhecida pela técnica. Isto é, o servidor 120 inclui um agente do servidor HTTP 145 que fornece conteúdo usando protocolos HTTP. Enquanto o exemplo da figura 1 é descrito em termos de HTTP, outros protocolos podem ser utilizados de maneira similar. O segmentador 130 e o indexador 135 são agentes que residem no servidor 120 (ou múltiplos servidores) a fim de fornecer conteúdo em arquivos de mídia com um arquivo da lista de reprodução, conforme descrito aqui. Estes arquivos de mídia e arquivos de lista de reprodução podem ser fornecidos através da rede 110 via agente do servidor HTTP 145 (ou via outros servidores) usando protocolos HTTP. Agentes como os discutidos aqui podem ser implementados como hardware, software, firmware ou uma combinação dos mesmos.
[0042] O segmentador 130 pode funcionar para dividir a transmis são contínua de dados de mídia em múltiplos arquivos de mídia que podem ser transmitidos via protocolos HTTP. O indexador 135 pode funcionar para criar um arquivo da lista de reprodução que correspondem aos arquivos de mídia segmentados de forma que os dispositivos de cliente podem reagrupar os arquivos de mídia a fim de fornecer transmissão do conteúdo em tempo real, ou próximo ao tempo real, fornecida pelo servidor 120. Em resposta a uma ou mais solicitações de um dispositivo de cliente, o agente do servidor HTTP 145 (ou outros servidores) pode transmitir um ou mais arquivos de lista de reprodução conforme gerados pelo indexador 135 e arquivos de mídia do conteúdo conforme gerados pelo segmentador 130. O servidor 120 pode ainda incluir um agente de segurança opcional 140 que fornece uma ou mais das funções de segurança (por exemplo criptografia) discutidas aqui. O servidor 120 pode também incluir componentes adicionais não ilustrados na figura 1.
[0043] Os dispositivos de cliente 150 e 180 podem receber os ar quivos de lista de reprodução e arquivos de mídia do servidor 120 através da rede 110. Os dispositivos de cliente podem ser qualquer tipo de dispositivo eletrônico, isto é, capaz de receber dados transmitidos através de uma rede e gerar emissor utilizando os dados recebi- dos via rede, por exemplo, dispositivos móveis sem fio, PDAs, dispositivos de entretenimento, dispositivos eletrônicos para consumidores, etc. O emissor pode ser qualquer tipo de mídia ou combinação dos tipos de mídia, incluindo, por exemplo, áudio, vídeo ou qualquer combinação dos mesmos.
[0044] O dispositivo de cliente 150 pode incluir um agente compi lador 160 e um agente gerador de saída 165. Similarmente, o dispositivo de cliente 180 pode incluir um agente compilador 190 e um agente gerador de saída 195. Agentes compiladores 160 e 180 recebem os arquivos de lista de reprodução do servidor 120 e usam os arquivos de lista de reprodução para acessar e descarregar arquivos de mídia do servidor 120. Os agentes geradores de saída 165 e 195 usam os arquivos de mídia descarregados para gerar emissores dos dispositivos de cliente 150 e 160, respectivamente. O emissor pode ser fornecido de um ou mais alto-falantes, um ou mais tela de exibição, uma combinação de alto-falantes e tela de exibição ou qualquer outro dispositivo de entrada ou saída. Os dispositivos de cliente podem também incluir memória (por exemplo memória rápida ou DRAM, etc.) para agir como uma memória temporária para armazenar os arquivos de mídia (por exemplo arquivos de mídia compactados ou arquivos de mídia des-compactados) conforme os mesmos são recebidos; a memória temporária pode fornecer o equivalente a muitos segundos de conteúdo apresentável além do tempo do conteúdo sendo apresentado no momento de forma que o conteúdo em memória temporária pode mais tarde ser exibido enquanto novo conteúdo está sendo descarregado. Esta memória temporária pode fornecer conteúdo apresentável enquanto o dispositivo de cliente tenta resgatar o conteúdo através de uma rede de conexão lenta de forma intermitente e assim a memória temporária pode ocultar a latência da rede ou problemas de conexão.
[0045] Os dispositivos de cliente 150 e 180 podem ainda incluir opcionais de agentes de segurança 170 e 185, respectivamente que fornecem uma ou mais das funções de segurança discutidas aqui. Os dispositivos de cliente 150 e 180 podem também incluir componentes adicionais, não ilustrados na figura 1.
[0046] Em uma modalidade, as técnicas que são descritas neste pe dido de patente podem ser usadas para transmitir uma ilimitada transmissão contínua de dados de multimídia através de um protocolo de transmissão não contínua (por exemplo, HTTP). As modalidades podem também incluir criptografia de dados de mídia e/ou provisões de versões alternativas de uma transmissão contínua (por exemplo, a fim de fornecer taxas de bits alternativas). Como dados de mídia podem ser transmitidos logo após a criação, os dados podem ser recebidos próximo ao tempo real. Exemplos de formatos de dados para arquivos assim como ações a serem tomadas por um servidor (emissor) e um cliente (receptor) da transmissão contínua de dados de multimídia são fornecidos; entretanto, outros formatos podem também ser suportados.
[0047] Uma apresentação de mídia que pode ser transmitida como transmissão contínua de tempo real simulado (ou próximo à transmissão contínua em tempo real) é especificada por um Indicador de Recursos Universal (URI) que indica um arquivo da lista de reprodução. Em uma modalidade, o arquivo da lista de reprodução é uma lista ordenada de URIs adicionais. Cada URI no arquivo da lista de reprodução refere-se a um arquivo de mídia, isto é, um segmento de uma transmissão contínua, que pode ser uma única transmissão contínua de dados de mídia contíguo para um programa particular.
[0048] A fim de reproduzir a transmissão contínua de dados da mídia, o dispositivo de cliente obtém o arquivo da lista de reprodução a partir do servidor. O cliente também obtém e reproduz cada arquivo de dados de mídia indicados pelo arquivo da lista de reprodução. Em uma modalidade, o cliente pode dinamicamente ou repetidamente recarre- gar o arquivo da lista de reprodução para descobrir segmentos de mídias adicionais e/ou diferentes.
[0049] Os arquivos de lista de reprodução podem ser, por exemplo, arquivos de lista de reprodução M3U estendidos. Em uma modalidade, marcadores adicionais que efetivamente estende os formatos M3U são usados. M3U refere-se à Camada de Áudio de Grupo de Especialistas em Imagem com Movimento 3 Localizador de Recursos Uniforme (MP3 URL) e é um formato usado para armazenar listas de reprodução multimídia. Um arquivo M3U é um arquivo de texto que contém as localizações de um ou mais arquivos de mídia para reprodutor de mídia para reproduzir.
[0050] O arquivo da lista de reprodução, em uma modalidade, é um arquivo de texto Estendido formatado em M3U que consiste em linhas individuais. As linhas podem ser terminadas por tanto um único marcador LF ou um marcador CR seguido de um marcador LF. Cada linha pode ser uma URI, uma linha em branco, ou começar com um marcador de comentário (por exemplo ‘#’). URIs identificam arquivos de mídia a serem reproduzidos. Linhas em branco podem ser ignoradas.
[0051] Linhas que começam com o marcador de comentário po dem ser tanto comentários ou marcadores. Marcadores podem começar com #EXT, enquanto que linhas de comentário podem começar com #. Linhas de comentário são normalmente ignoradas pelo servidor e cliente. Em uma modalidade, arquivos de lista de reprodução são codificados em formatos UTF-8. UTF-8 (Formato de Transformação Unicode de 8-bits) é um formato de codificação de marcador de comprimento variável. Em modalidades alternativas, outros formatos de codificação de marcadores podem ser usados.
[0052] Nos exemplos que seguem, um formato M3U Estendido utilizado inclui dois marcadores: EXTM3U e EXTINF. Um arquivo M3U Estendido pode ser distinguido de um arquivo M3U básico pela primei- ra linha que inclui "#EXTM3U".
[0053] EXTINF é um marcador de registro que descreve o arquivo de mídia identificado pelo URI que acompanha o marcador. Em uma modalidade, cada arquivo de mídia URI é precedido de um marcador EXTINF, por exemplo: #EXTINF: <duração>,<título>
[0054] em que "duração" especifica a duração do arquivo de mídia e "título" é o título do arquivo de mídia de destino.
[0055] Em uma modalidade, os seguintes marcadores podem ser usados para gerenciar a transferência e reprodução dos arquivos de mídia: EXT-X-TARGETDURATION EXT-X-MEDIA-SEQUENCE EXT-X-KEY EXT-X-PROGRAM-DATE-TIME EXT-X-ALLOW-CACHE EXT-X-STREAM-INF EXT-X-ENDLIST
[0056] Estes marcadores serão cada um descritos em maiores de talhes abaixo. Enquanto formatos específicos e atributos são descritos com respeito a cada novo marcador, modalidades alternativas podem também ser suportados com atributos diferentes, nomes, formatos, etc.
[0057] O marcador EXT-X-TARGETDURATION pode indicar a du ração aproximada do próximo arquivo de mídia que será adicionado na apresentação. O mesmo pode ser incluso no arquivo de reprodução e o formato pode ser: #EXT-X-TARGETDURATION:<seconds>
[0058] em que "seconds" indica a duração do arquivo de mídia. Em uma modalidade, a duração real pode diferir levemente da duração de destino indicada pelo marcador. Em uma modalidade, todo URI que indica um segmento será associado com uma duração aproximada do segmento; por exemplo, o URI para um segmento pode ser prefixado com um marcador que indica a duração aproximada deste segmento.
[0059] Cada arquivo de mídia URI em um arquivo da lista de re produção pode ter um número de sequência exclusivo. O número de sequência, se presente, de um URI é igual ao número de sequência do URI que o precedeu, mais um em uma modalidade. O marcador EXT- X-MEDIA-SEQUENCE pode indicar o número de sequência do primeiro URI que aparece em um arquivo da lista de reprodução e o formato pode ser: #EXT-X-MEDIA-SEQUENCE:<number>
[0060] em que "number" é o número de sequência do URI. Se o arquivo da lista de reprodução não incluir um marcador #EXT-X- MEDIA-SEQUENCE, o número de sequência do primeiro URI na lista de reprodução pode ser considerado 1. Em uma modalidade, a numeração da sequência pode ser não sequencial; por exemplo, numeração de sequência não sequencial tal como 1, 5, 7, 17, etc. pode tornar difícil a predição do próximo número em uma sequência e isto pode ajudar a proteger o conteúdo de ser pirateado. Outra opção para ajudar a proteger o conteúdo é revelar somente partes da lista de reprodução a qualquer momento.
[0061] Alguns arquivos de mídia podem ser criptografados. O mar cador EXT-X-KEY fornece informações que podem ser usadas para descriptografar arquivos de mídia que o seguem e o formato pode ser: #EXT-X-KEY:METHOD=<method>[,URI="<URI>"]
[0062] O parâmetro METHOD especifica o método de criptografia e o parâmetro URI, se presente, especifica como obter a chave.
[0063] Um método de criptografia de NONE indica nenhuma crip tografia. Diversos métodos de criptografia podem ser usados, por exemplo AES-128, o que indica criptografia usando a criptografia Padrão de Criptografia Avançada (Advance Encryption Standard) com uma chave 128-bit e preenchimento PKCS7 [vide RFC3852]. Um novo marcador EXT-X-KEY prevalece sobre qualquer marcador EXT-X-KEY anterior.
[0064] Um marcador EXT-X-KEY com um parâmetro URI identifica o arquivo chave. Um arquivo chave pode conter a chave de criptografia, isto é, pode ser usado para descriptografar arquivos de mídia subsequentes listados no arquivo da lista de reprodução. Por exemplo, o método de criptografia AES-128 usa chaves 16-octetos. O formato do arquivo chave pode ser uma matriz compactada de 16 octetos em formatos binários.
[0065] O uso do AES-128 normalmente precisa que o mesmo ve tor de inicialização (IV) de 16-octetos seja fornecido no momento de criptografar e descriptografar. Uma variação do IV pode ser usada para incrementar a força da criptografia. Ao usar criptografia AES-128, o número de sequência do arquivo de mídia pode ser usado como o IV ao criptografar ou descriptografar arquivos de mídia.
[0066] O marcador EXT-X-PROGRAM-DATE-TIME pode associar o início do próximo arquivo de mídia com uma data e/ou hora absoluta e pode incluir ou indicar um fuso horário. Em uma modalidade, a re-presentação da data/hora é ISO/IEC 8601:2004. O formato do marcador pode ser: EXT-X-PROGRAMA-DATE-TIME:<YYYY-MM- DDThh:mm:ssZ>
[0067] O marcador EXT-X-ALLOW-CACHE pode ser usado para indicar se o cliente pode ocultar os arquivos de mídia descarregados para reprodução tardia. O formato de marcador pode ser: EXT-X-ALLOW-CACHE:<YES|NO>
[0068] O marcador EXT-X-ENDLIST indica em uma modalidade que nenhum outro arquivo de mídia será adicionado ao arquivo da lista de reprodução. O formato de marcador pode ser: EXT-X-ENDLIST
[0069] Em uma modalidade, se uma lista de reprodução contém o segmento final ou arquivo de mídia então a lista de reprodução terá o marcador EXT-X-ENDLIST.
[0070] O marcador EXT-X-STREAM-INF pode ser usado para in dicar que o próximo URI no arquivo da lista de reprodução identifica outro arquivo da lista de reprodução. O formato do marcador pode ser, em uma modalidade: EXT-X-STREAM- INF:[attribute=value][,attribute=value]*<URI>
[0071] em que o seguinte atributo pode ser usado. O atributo BAN- DWIDTH=<n> é um limite superior aproximado da transmissão contínua da taxa de bit expresso conforme o número de bits por segundo. O atributo PROGRAMA-ID=<i> é um número que identifica exclusivamente uma apresentação particular dentro do escopo do arquivo da lista de reprodução. Um arquivo da lista de reprodução pode incluir múltiplos EXT-X-STREAM-INF URIs com o mesmo PROGRAM-ID para descrever transmissões contínuas variáveis da mesma apresentação. Transmissões contínuas variáveis e listas variantes de reprodução são descritas ainda nesta descrição (por exemplo vide figuras 9A-9D).
[0072] Os marcadores antecedentes e atributos podem ser usados pelo dispositivo de servidor para organizar, transmitir e processar os ar-quivos de mídia que representam o conteúdo de mídia original. Os dispo-sitivos de cliente usam esta informação para reorganizar e apresentar os arquivos de mídia de uma maneira a fim de fornecer uma experiência de transmissão contínua em tempo real, ou próximo ao tempo real (por exemplo visualização de uma transmissão ao vivo tal como uma música ou evento esportivo) para um usuário do dispositivo de cliente.
[0073] Cada arquivo de mídia URI em um arquivo da lista de reprodução identifica um arquivo de mídia, isto é, um segmento da apresentação original (ou seja, conteúdo de mídia original). Em uma modalidade, cada arquivo de mídia é formatado como uma transmissão contínua de transporte MPEG-2, uma transmissão contínua de programa MPEG-2, ou uma transmissão contínua elementar de áudio MPEG-2. O formato pode ser especificado ao especificar um CODEC, e a lista de reprodução pode especificar um formato ao especificar um CODEC. Em uma modalidade, todos os arquivos de mídia em uma apresentação possuem os mesmos formatos; entretanto, múltiplos formatos podem ser suportados em outras modalidades. Um arquivo de transmissão contínua de transporte deve, em uma modalidade, conter um único programa MPEG-2, e deve haver uma Tabela de Associação de Programa (Program Association Table) e uma Tabela de Mapa de Programa (Program Map Table) no início de cada arquivo. Um arquivo que contém vídeo DEVE ter pelo menos um quadro chave e informação suficiente para inicializar completamente um decodificador de vídeo. Clientes DEVEM ser preparados para lidar com múltiplas faixas de um tipo particular (por exemplo áudio ou vídeo) ao escolher um subconjunto razoável. Clientes devem, em uma modalidade, ignorar transmissões contínuas privadas dentro de Transmissões contínuas de Transporte (Transport Streams) que os mesmos não reconhecem. Os parâmetros de codificação para amostras dentro de uma transmissão contínua em um arquivo de mídia e entre transmissões contínuas correspondentes através de múltiplos arquivos de mídia DEVEM continuar consistentes. Entretanto clientes DEVEM lidar com mudanças de codifica-ções conforme as mesmas são encontradas, por exemplo ao dimensionar um conteúdo de vídeo para acomodar uma mudança de resolução.
[0074] A figura 2A é um diagrama de transmissão contínua de uma modalidade de uma técnica para um ou mais dispositivos de servidor para suportar conteúdo de mídia usando protocolos de transmissão não contínua. O exemplo da figura 2A é fornecido em termos de HTTP; entretanto, outros protocolos de transmissão não contínua podem ser utilizados de maneira similar. O exemplo da figura 2A é fornecido em termos de um único servidor desempenhando certas tarefas. Entretanto, qualquer número de servidores pode ser utilizado. Por exemplo, o servidor que fornece arquivos de mídia para dispositivos de cliente pode ser um dispositivo diferente do que um servidor que segmenta o conteúdo em múltiplos arquivos de mídia.
[0075] O dispositivo de servidor recebe conteúdo a ser fornecido em operação 200. O conteúdo pode representar áudio e/ou vídeo ao vivo (por exemplo, um evento esportivo, notícias ao vivo, uma alimentação da câmera da Web). O conteúdo pode também representar conteúdo pré-gravado (por exemplo, um concerto que foi gravado, um programa de treinamento, etc.). O conteúdo pode ser recebido pelo servidor de acordo com qualquer formato e protocolo conhecido pela técnica, seja transmitido continuamente ou não. Em uma modalidade, o conteúdo é recebido pelo servidor na forma de uma transmissão contínua MPEG-2; entretanto, outros formatos podem também ser suportados.
[0076] O servidor pode então armazenar temporariamente pelo menos partes do conteúdo em operação 210. O conteúdo ou pelo menos partes do conteúdo pode ser armazenado temporariamente, por exemplo, em um dispositivo de armazenamento (por exemplo, disco rígido em uma Rede de Área de Armazenamento - Storage Area Network, etc.) ou em memória. Alternativamente, o conteúdo pode ser recebido via um meio de armazenamento (por exemplo, disco compacto, unidade rápida) a partir da qual o conteúdo pode ser transferido pa ra um dispositivo de armazenamento ou memória. Em uma modalidade, o servidor possui um codificador que converte, se necessário, o conteúdo para um ou mais transmissões contínuas (por exemplo, MPEG-2). Esta conversão pode ocorrer sem armazenar permanentemente o conteúdo recebido, e em algumas modalidades, a operação de armazenamento 210 pode ser omitida ou a mesma pode ser um armazenamento de longo período (por exemplo um armazenamento de arquivamento) em outras modalidades.
[0077] O conteúdo a ser fornecido é segmentado em múltiplos ar quivos de mídia em operação 220. Em uma modalidade, o servidor converte uma transmissão contínua em arquivos de mídia separados e distintos (ou seja, segmentos) que podem ser distribuídos usando um servidor da web padrão. Em uma modalidade, o servidor segmenta a transmissão contínua de mídia em pontos que suportam decodificação eficaz dos arquivos de mídia individuais (por exemplo, em limites de pacote e quadro chave tais como limites de pacote PES e limites iframe). Os arquivos de mídia podem ser partes da transmissão contínua original com duração aproximadamente igual. O servidor também cria um URI para cada arquivo de mídia. Estes URIs permitem dispositivos de cliente de acessar os arquivos de mídia.
[0078] Devido ao fato de os segmentos serem fornecidos com o uso de servidores de HTTP, os quais entregam arquivos inteiros, o servidor deve ter um arquivo de mídia segmentado completo disponível antes de ser fornecido aos clientes. Assim, o cliente pode retardar (em tempo) a difusão através de pelo menos um comprimento de arquivo de mídia. Em uma modalidade, o tamanho do arquivo de mídia é baseado em um equilíbrio entre o tempo de retardo e ter muitos arquivos.
[0079] Em uma modalidade, dois tipos de sessões (sessão ao vivo e sessão de evento) são suportados. Para uma sessão ao vivo, apenas uma parte de tamanho fixa da transmissão contínua é conservada. Em uma modalidade, os arquivos de mídia de conteúdo que estão desatua-lizados são removidos do arquivo de lista de reprodução de programa e podem ser removidos do servidor. O segundo tipo de sessão é uma sessão de evento, onde o cliente pode sintonizar em qualquer ponto da difusão (por exemplo, começar do início, começar de um ponto médio). Esse tipo de sessão pode ser usado para a redifusão, por exemplo.
[0080] Os arquivos de mídia são armazenados na memória do ser vidor na operação 230. Os arquivos de mídia podem ser protegidos por um recurso de segurança, como criptografia, antes do armazenamento dos arquivos na operação 230. Os arquivos de mídia são armazenados como arquivos que estão prontos para a transmissão com o uso do protocolo de rede (por exemplo, HTTP ou HTTPS) suportados pela aplicação do servidor Web no dispositivo de servidor (ou suportados por outro dispositivo que faça a transmissão).
[0081] Um ou mais arquivos de lista de reprodução são gerados para indicar a ordem na qual os arquivos de mídia devem ser montados para recriar o conteúdo original na operação 240. O(s) arquivo(s) de lista de reprodução podem utilizar os marcadores M3U Estendida e os marcadores descritas no presente documento para fornecer informações a um dispositivo de cliente para acessar e remontar os arquivos de mídia a fim de fornecer uma experiência de transmissão contínua no dispositivo de cliente. Um URI para cada arquivo de mídia é incluído no(s) arquivo(s) de lista de reprodução na ordem na qual os arquivos de mídia devem ser reproduzidos. O servidor também pode criar um ou mais URIs para o(s) arquivo(s) de lista de reprodução para permitir que os dispositivos de cliente acessem o(s) arquivo(s) de lista de reprodução.
[0082] O(s) arquivo(s) de lista de reprodução pode ser armazenado no servidor na operação 250. Apesar de a criação e armazenamento de arquivos de mídia e arquivo(s) de lista de reprodução serem apre- sentados em uma ordem particular na figura 2A, uma ordem diferente também pode ser usada. Por exemplo, o(s) arquivo(s) de lista de reprodução pode ser criado antes de os arquivos de mídia serem criados ou armazenados. De acordo com outro exemplo, o(s) arquivo(s) de lista de reprodução e arquivos de mídia podem ser criados antes de ambos serem armazenados.
[0083] Se arquivos de mídia tiverem que ser criptografados, o(s) arquivo(s) de lista de reprodução poderá definir um URI que dispositivos de cliente autorizados obtenham uma chave de criptografia para descriptografar os arquivos de mídia. Uma chave de criptografia pode ser transmitida com o uso de uma conexão segura (por exemplo, HTTPS). Conforme outro exemplo, o(s) arquivo(s) de lista de reprodução pode ser transmitido com o uso de HTTPS. Conforme um exemplo adicional, os arquivos de mídia podem ser dispostos em uma ordem imprevisível, de modo que o cliente não possa recriar a transmissão contínua sem o(s) arquivo(s) de lista de reprodução.
[0084] Se o método de criptografia for AES-128, a criptografia AES-128 CBC, por exemplo, pode ser aplicada em arquivos de mídia individuais. Em uma modalidade, o arquivo inteiro é criptografado. O encadeamento de bloco de cifra não é normalmente aplicado através dos arquivos de mídia em uma modalidade. A sequência dos arquivos de mídia é usada como a IV conforme descrito acima. Em uma modalidade, o servidor adiciona um marcador EXT-X-KEY com a chave URI ao final do arquivo de lista de reprodução. O servidor, então, criptografa todos os arquivos de mídia subsequentes com aquela chave até que uma alteração na configuração de criptografia seja feita.
[0085] Para comutar para uma nova chave de criptografia, o servi dor pode tornar a nova chave disponível por meio de um novo URI que é diferente de todos os URIs de chave anteriores usados na apresentação. O servidor também adiciona um marcador EXT-X-KEY com o novo URI de chave ao final de um arquivo de lista de reprodução e criptogra- fa todos os arquivos de mídia subsequentes com a nova chave.
[0086] Para terminar a criptografia, o servidor pode adicionar um marcador EXT-X-KEY com o método de criptografia NONE ao final do arquivo de lista de reprodução. O marcador (com "NONE" como o método) não inclui um parâmetro de URI em uma modalidade. Todos os arquivos de mídia subsequentes não são criptografados até que uma alteração na configuração de criptografia seja feita conforme descrito acima. O servidor não remove um marcador EXT-X-KEY de um arquivo de lista de reprodução se o arquivo de lista de reprodução contiver um URI para um arquivo de mídia criptografado com aquela chave. O servidor pode transmitir o(s) arquivo(s) de lista de reprodução e os arquivos de mídia pela rede em resposta às solicitações de cliente na operação 270, conforme descrito em maiores detalhes em relação à figura 3A.
[0087] Em uma modalidade, um servidor transmite o arquivo de lista de reprodução para um dispositivo de cliente em resposta ao re-cebimento de uma solicitação de um dispositivo de cliente de um arquivo de lista de reprodução. O dispositivo de cliente pode aces- sar/solicitar o arquivo de lista de reprodução com o uso de um URI que é fornecido ao dispositivo de cliente. O URI indica a localização do arquivo de lista de reprodução no servidor. Em resposta, o servidor pode fornecer o arquivo de lista de reprodução para o dispositivo de cliente. O dispositivo de cliente pode utilizar marcadores e URIs (ou outros identificadores) no arquivo de lista de reprodução para acessar os múltiplos arquivos de mídia.
[0088] Em uma modalidade, o servidor pode limitar a disponibili dade de arquivos de mídia para aqueles que foram mais recentemente adicionados ao(s) arquivo(s) de lista de reprodução. Para fazer isso, cada arquivo de lista de reprodução pode incluir apenas um marcador EXT-X-MEDIA-SEQUENCE e o valor pode ser incrementado por um indivíduo para cada arquivo de mídia URI que é removido do arquivo de lista de reprodução. Os URIs de arquivo de mídia podem ser removidos do(s) arquivo(s) de lista de reprodução na ordem em que eles foram adicionados. Em uma modalidade, quando o servidor remove um URI de arquivo de mídia do(s) arquivo(s) de lista de reprodução, o arquivo de mídia permanece disponível aos clientes por um período de tempo igual à duração do arquivo de mídia mais a duração do arquivo de lista de reprodução mais longo no qual o arquivo de mídia apareceu.
[0089] A duração de um arquivo de lista de reprodução é a soma das durações dos arquivos de mídia dentro daquele arquivo de lista de reprodução. Outras durações também podem ser usadas. Em uma modalidade, o servidor pode manter pelo menos três arquivos de mídia de apresentação principais na lista de reprodução em todos os tempos exceto se o marcador EXT-X-ENDLIST estiver presente.
[0090] A figura 2B é um fluxograma de uma modalidade de uma técnica para um ou mais dispositivos de servidor para fornecer listas de reprodução dinamicamente atualizadas para um ou mais dispositivos de cliente. As listas de reprodução podem ser atualizadas com o uso do modo cumulativo ou do modo de rolamento descritos no presente documento. O exemplo da figura 2B é fornecido em termos de HTTP; entretanto, outros protocolos de não transmissão contínua (por exemplo, HTTPS, etc.) podem ser utilizados em um modo similar. O exemplo da figura 2B é fornecido em termos de servidor que desempenha determinadas tarefas. Entretanto, qualquer quantidade de servidores pode ser utilizada. Por exemplo, o servidor que fornece arquivos de mídia para dispositivos de cliente pode ser um dispositivo diferente do servidor que segmenta o conteúdo em múltiplos arquivos de mídia.
[0091] O dispositivo de servidor recebe o conteúdo a ser fornecido na operação 205. O servidor pode, então, armazenar temporariamente pelo menos partes do conteúdo na operação 215. A operação 215 pode ser similar à operação 210 na figura 2A. O conteúdo a ser fornecido é segmentado em múltiplos arquivos de mídia na operação 225. Os arquivos de mídia podem ser armazenados na memória do servidor na operação 235. Os arquivos de mídia podem ser protegidos por um recurso de segurança, como uma criptografia, antes do armazenamento dos arquivos na operação 235.
[0092] Um ou mais arquivos de lista de reprodução são gerados para indicar a ordem em que os arquivos de mídia devem ser montados para recriar o conteúdo original na operação 245. O(s) arquivo(s) de lista de reprodução pode ser armazenado no servidor na operação 255. Apesar de a criação e armazenamento de arquivos de mídia e ar- quivo(s) de lista de reprodução serem apresentados em uma ordem particular na figura 2B, uma ordem diferente também pode ser usada.
[0093] O servidor (ou outro servidor) pode transmitir o(s) arquivo(s) de lista de reprodução e os arquivos de mídia pela rede em resposta às solicitações de clientes na operação 275, conforme descrito em maiores detalhes em relação às figuras 3A a 3B.
[0094] O(s) arquivo(s) de lista de reprodução pode ser atualizado por um servidor por várias razões. O servidor pode receber dados adicionais para serem fornecidos aos dispositivos de cliente na operação 285. Os dados adicionais podem ser recebidos após o(s) arquivo(s) de lista de reprodução ser armazenado na operação 255. Os dados adicionais podem ser, por exemplo, partes adicionais de uma apresentação ao vivo ou informações adicionais para uma apresentação já existente. Os dados adicionais podem incluir anúncios ou estatísticas (por exemplo, placares ou dados relacionados a um evento de esporte). Os dados adicionais poderiam ser sobrepostos (através de translucidez) na apresentação ou serem apresentados em uma interface de usuário de barra lateral. Os dados adicionais podem ser segmentados no mesmo modo como os dados originalmente recebidos. Se os dados adicionais constituírem anúncios ou outro conteúdo a ser inserido no programa representado pela lista de reprodução, os dados adicionais poderão ser armazenados (pelo menos temporariamente) na operação 215, segmentados na operação 225 e armazenados na operação 235; antes do armazenamento dos dados adicionais segmentados, os segmentos dos dados adicionais podem ser criptografados. Então, na operação 245, uma lista atualizada, contendo o programa e os dados adicionais, poderia ser gerada. A lista de reprodução é atualizada com base nos dados adicionais e armazenada novamente na operação 255. As alterações para o(s) arquivo(s) de lista de reprodução devem ser feitas atomicamente a partir da perspectiva do dispositivo de cliente. A lista de reprodução atualizada substitui, em uma modalidade, a lista de reprodução anterior. Conforme discutido abaixo em maiores detalhes, os dispositivos de cliente podem solicitar a lista de reprodução inúmeras vezes. Essas solicitações permitem que os dispositivos de cliente utilizem a lista de reprodução mais recente. Em uma modalidade, os dados adicionais podem ser metadados; nesse caso, a lista de reprodução não precisa ser atualizada, mas os segmentos podem ser atualizados para incluir metadados. Por exemplo, os metadados podem conter carimbos de data e hora que podem ser compatíveis com os carimbos de data e hora nos segmentos, e os metadados podem ser adicionados aos segmentos que têm carimbos de data e hora compatíveis.
[0095] A lista de reprodução atualizada também pode resultar na remoção de arquivos de mídia. Em uma modalidade, um servidor deve remover URIs, para os arquivos de mídia, a partir da lista de reprodução na ordem em que eles foram adicionados à lista de reprodução. Em uma modalidade, se o servidor remover uma apresentação inteira, isso tornará o(s) arquivo(s) de lista de reprodução indisponível aos dispositivos de cliente. Em uma modalidade, o servidor mantém os arquivos de mídia e o(s) arquivo(s) de lista de reprodução para a duração do(s) arquivo(s) de lista de reprodução mais longo que contém um arquivo de mídia a ser removido para permitir que os dispositivos de cliente atuais terminem o acesso da apresentação. Em conformidade, cada arquivo de mídia URI no arquivo de lista de reprodução pode ser pré-fixado com um marcador EXT-X-STREAM-INF para indicar a duração cumulativa aproximada dos arquivos de mídia indicados pelo arquivo de lista de reprodução. Em modalidades alternativas, os arquivos de mídia e o(s) arquivo(s) de lista de reprodução podem ser removidos imediatamente.
[0096] As solicitações subsequentes para a lista de reprodução a partir dos dispositivos de cliente resultam no servidor que fornece a lista de reprodução atualizada na operação 275. Em uma modalidade, as listas de reprodução são atualizadas em uma base regular, por exemplo, um período de tempo relacionado à duração alvo. As atualizações periódicas do arquivo de lista de reprodução permitem que o servidor forneça acesso aos servidores para uma apresentação dinamicamente de alteração.
[0097] A figura 2C é um fluxograma de uma modalidade de uma técnica para um ou mais dispositivos de servidor para fornecer conteúdo de mídia para os dispositivos de cliente com o uso de múltiplas taxas de bit, que é uma forma do uso de transmissões contínuas alternativas. O exemplo da figura 2C é fornecido em termos de HTTP; entretanto, outros protocolos de não transmissão contínua podem ser utilizados em um modo similar. O exemplo da figura 2C é fornecido em termos de um servidor que desempenha determinadas tarefas. Entretanto, qualquer quantidade de servidores pode ser utilizada. Por exemplo, o servidor que fornece arquivos de mídia para os dispositivos de cliente pode ser um dispositivo diferente de um servidor que segmenta o conteúdo em múltiplos arquivos de mídia.
[0098] Em uma modalidade, o servidor pode oferecer múltiplos ar quivos de lista de reprodução ou um único arquivo de lista de reprodução com múltiplas listas de arquivo de mídia em um único arquivo de lista de reprodução para fornecer codificações diferentes da mesma apresentação. Se codificações diferentes forem fornecidas, o(s) arqui- vo(s) de lista de reprodução poderá incluir cada transmissão contínua variante fornecendo taxas de bit diferentes para permitir que dispositivos de cliente comutem entre codificações de modo dinâmico (isso é descrito adicionalmente em conexão com as figuras 9A a 9D). Os arquivos de lista de reprodução que têm transmissões contínuas variantes podem incluir um marcador EXT-X-STREAM-INF para cada transmissão contínua variante. Cada marcador EXT-X-STREAM-INF para a mesma apresentação pode ter o mesmo valor de atributo PROGRAM- ID. O valor PROGRAM-ID para cada apresentação é único dentro das transmissões contínuas variantes.
[0099] Em uma modalidade, o servidor se depara com as restri ções a seguir ao produzir transmissões contínuas variantes. Cada transmissão contínua variante pode consistir no mesmo conteúdo incluindo o conteúdo opcional que não é parte da apresentação principal. O servidor pode fazer o mesmo período de conteúdo disponível para todas as transmissões contínuas variantes dentro de uma precisão da menor duração alvo das transmissões contínuas. Os arquivos de mídia das transmissões contínuas variantes são, em uma modalidade, Transmissões contínuas de Transporte MPEG-2 ou Transmissões contínuas de Programa MPEG-2 com carimbos de data e hora de amostra que são compatíveis com o conteúdo correspondente em todas as transmissões contínuas variantes. Também, todas as transmissões contínuas variantes devem, em uma modalidade, conter a mes- ma codificação de áudio. Isso permite que os dispositivos de cliente comutem entre as transmissões contínuas variantes sem que percam o conteúdo.
[00100] Com referência à figura 2C, o dispositivo de servidor recebe o conteúdo que deve ser fornecido na operação 202. O servidor pode, então, pelo menos armazenar temporariamente o conteúdo na operação 212. O conteúdo a ser fornecido é segmentado em múltiplos arquivos de mídia na operação 222. Cada arquivo de mídia é codificado para uma taxa de bit selecionada (ou um valor selecionado de outros parâmetros de codificação) e armazenado no servidor na operação 232. Por exemplo, os arquivos de mídia podem ser visados para conexões de largura de banda alta, média e baixa. Os arquivos de mídia podem ser criptografados antes do armazenamento. A codificação dos arquivos de mídia visados para os vários tipos de conexões pode ser selecionada para fornecer uma experiência de transmissão contínua no nível de largura de banda alvo.
[00101] Em uma modalidade, uma lista de reprodução variante é gerada na operação 242 com marcadores conforme descrito no presente documento que indicam vários níveis de codificação. Os marcadores podem incluir, por exemplo, um marcador EXT-X-STREAM-INF para cada nível de codificação com um URI para um arquivo de lista de reprodução de mídia correspondente.
[00102] Essa lista de reprodução variante pode incluir URIs para arquivos de lista de reprodução de mídia para os inúmeros níveis de codificação. Assim, um dispositivo de cliente pode selecionar uma taxa de bit alvo a partir das alternativas fornecidas na lista de reprodução variante indicando os níveis de codificação e recuperar o arquivo de lista de reprodução correspondente. Em uma modalidade, um dispositivo de cliente pode alterar entre taxas de bit durante uma reprodução (por exemplo, conforme descrito em relação às figuras 9A a 9D). A lis- ta de reprodução variante que indica os inúmeros níveis de codificação é armazenada no servidor na operação 252. Na operação 242, cada dentre as listas de reprodução referidas na lista de reprodução variante também pode ser gerada e, então, armazenada na operação 252.
[00103] Em resposta a uma solicitação de um dispositivo de cliente, o servidor pode transmitir a lista de reprodução variante que indica os inúmeros níveis de codificação na operação 272. O servidor pode receber uma solicitação para uma dentre as listas de reprodução de mídia especificadas na lista de reprodução variante correspondente a uma taxa de bit selecionada na operação 282. Em resposta à solicitação, o servidor transmite o arquivo de lista de reprodução de mídia correspondente à solicitação a partir do dispositivo de cliente na operação 292. O dispositivo de cliente pode, então, usar a lista de repro-dução de mídia para solicitar os arquivos de mídia a partir do servidor. O servidor fornece os arquivos de mídia para o dispositivo de cliente em resposta às solicitações na operação 297.
[00104] A figura 3A é um fluxograma de uma modalidade de uma técnica para um dispositivo de cliente para suportar a transmissão contínua de conteúdo com o uso de protocolos de não transmissão contínua. O exemplo da figura 3A é fornecido em termos de HTTP; entretanto, outros protocolos de não transmissão contínua podem ser utilizados em um modo similar. Os métodos mostrados nas figuras 3A a 3B podem ser desempenhados por um dispositivo de cliente ou por vários dispositivos de cliente separados. Por exemplo, no caso de qualquer um desses métodos, um único dispositivo de cliente pode desempenhar todas as operações (por exemplo, solicitar um arquivo de lista de reprodução, solicitar arquivos de mídia usando URIs no arquivo de lista de reprodução, montar os arquivos de mídia para gerar e fornecer uma apresentação/emissão) ou inúmeros dispositivos de cliente diferentes podem desempenhar algumas, mas não todas as ope- rações (por exemplo, um primeiro dispositivo de cliente pode solicitar um arquivo de lista de reprodução e solicitar arquivos de mídia usando URIs no arquivo de lista de reprodução e pode armazenar aqueles arquivos de mídia para o uso por um segundo dispositivo de cliente que pode processar os arquivos de mídia para gerar e fornecer uma apre- sentação/emissão).
[00105] O dispositivo de cliente pode solicitar um arquivo de lista de reprodução a partir de um servidor na operação 300. Em uma modalidade, a solicitação é feita de acordo com um protocolo compatível com HTTP. A solicitação utiliza um URI para um arquivo de lista de reprodução inicial armazenado no servidor. Em modalidades alternativas, outros protocolos de não transmissão contínua podem ser suportados. Em resposta à solicitação, o servidor transmitirá o arquivo de lista de reprodução correspondente ao cliente pela rede. Conforme discutido acima, a rede pode ser com fio ou sem fio e pode ser qualquer combinação de redes com fio ou sem fio. Adicionalmente, a rede pode ser uma rede de dados (por exemplo, IEEE 802.11, IEEE 802.16) ou uma rede de telefone celular (por exemplo, 3G).
[00106] O dispositivo de cliente pode receber o arquivo de lista de reprodução na operação 310. O arquivo de lista de reprodução pode ser armazenado em uma memória do dispositivo de cliente na operação 320. A memória pode ser, por exemplo, um disco rígido, uma memória rápida, uma memória de acesso aleatório. Em uma modalidade, cada vez que um arquivo de lista de reprodução é carregado ou recarregado da lista de reprodução URI, o cliente verifica para determinar que o arquivo de lista de reprodução começa com um marcador #EXTM3U e não continua se o marcador estiver ausente. Conforme discutido acima, o arquivo de lista de reprodução inclui um ou mais marcadores, bem como um ou mais URIs para arquivos de mídia.
[00107] O dispositivo de cliente pode incluir um agente montador que usa o arquivo de lista de reprodução para remontar o conteúdo original através da solicitação de arquivos de mídia indicados pelos URIs no arquivo de lista de reprodução na operação 330. Em uma modalidade, o agente montador é um módulo plug-in que é parte de uma aplicação de navegador da Web padrão. Em outra modalidade, o agente montador pode ser uma aplicação independente que interage com um navegador da Web para receber e montar os arquivos de mídia usando o(s) arquivo(s) de lista de reprodução. Como um exemplo adicional, o agente montador pode ser um componente hardware ou firmware de propósito especial que é incluído no dispositivo de cliente.
[00108] O montador faz com que os arquivos de mídia do arquivo de lista de reprodução sejam transferidos por download a partir do servidor indicado pelos URIs. Se o arquivo de lista de reprodução contiver a marcador EXT-X-ENDLIST, qualquer arquivo de mídia indicado pelo arquivo de lista de reprodução poderá ser primeiramente reproduzido. Se a marcador EXT-X-ENDLIST não estiver presente, qualquer arquivo de mídia, exceto para o último e penúltimo arquivo de mídia, pode ser reproduzido primeiramente. Uma vez que o primeiro arquivo de mídia para reproduzir é escolhido, os arquivos de mídia subsequentes no arquivo de lista de reprodução são carregados, em uma modalidade, na ordem em que aparecem no arquivo de lista de reprodução (de outra forma, o conteúdo é apresentado fora de ordem). Em uma modalidade, o dispositivo de cliente tenta carregar os arquivos de mídia antes de esses serem solicitados (e os armazena em uma memória tem-porária) para fornecer uma reprodução ininterrupta e para compensar as variações temporárias na latência e rendimento da rede.
[00109] O(s) arquivo(s) de mídia transferido por download pode ser armazenado em uma memória no dispositivo de cliente na operação 340. A memória na qual o conteúdo pode ser armazenado pode ser qualquer tipo de memória no dispositivo de cliente, por exemplo, me- mória de acesso aleatório, um disco rígido ou uma memória temporária de vídeo. O armazenamento pode ser temporário para permitir a reprodução ou pode ser permanente. Se o arquivo de lista de reprodução contiver o marcador EXT-X-ALLOW-CACHE e seu valor for NO, o cliente não armazenará os arquivos de mídia transferidos por download após eles terem sido reproduzidos. Se a lista de reprodução contiver o marcador EXT-X-ALLOW-CACHE e seu valor for YES, o dispositivo de cliente poderá armazenar os arquivos de mídia indefinidamente para uma repetição posterior. O dispositivo de cliente pode usar o valor do marcador EXT-X-PROGRAM-DATE-TIME para exibir o tempo de origem do programa ao usuário. Em uma modalidade, o cliente pode armazenar em memória temporária múltiplos arquivos de mídia, de modo que seja menos suscetível à instabilidade da rede, a fim de proporcionar uma melhor experiência de usuário.
[00110] Em uma modalidade, se o método de decodificação for AES-128, então, a decodificação AES-128 CBC é aplicada aos arquivos de mídia individuais. O arquivo inteiro é decodificação. Em uma modalidade, o encadeamento de bloco de cifra não é aplicado através dos arquivos de mídia. O número de sequência do arquivo de mídia pode ser usado como o vetor de inicialização conforme descrito acima.
[00111] A partir da memória, o conteúdo pode ser emitido do dispositivo de cliente na operação 350. A emissão ou apresentação pode ser, por exemplo, uma emissão de áudio por meio de alto-falantes embutidos ou fones de ouvido. A emissão pode incluir um vídeo que é emitido por meio de uma tela ou projetado a partir do dispositivo de cliente. Qualquer tipo de emissão conhecida na técnica pode ser utilizada. Na operação 351, o dispositivo de cliente determina se existem quaisquer mais arquivos de mídia armazenados na lista de reprodução atual que não tenham sido reproduzidos ou, de outra forma, apresentados. Se tais arquivos de mídia existirem (e se eles não tiverem sido solicitados) então, o processamento retorna à operação 330 na qual um ou mais arquivos de mídia são solicitados e o processo se repete. Se não existirem tais arquivos de mídia (isto é, todos os arquivos de mídia na lista de reprodução atual tiverem sido reproduzidos), então, o processamento prossegue para a operação 352, que determina se o arquivo de lista de reprodução inclui um marcador final.
[00112] Se a lista de reprodução incluir um marcador final (por exemplo, EXT-X-ENDLIST) na operação 352, a reprodução cessará quando os arquivos de mídia indicados pelo arquivo de lista de reprodução tiverem sido tocados. Se o marcador final não estiver na lista de reprodução, então, o dispositivo de cliente solicitará uma lista de reprodução novamente do servidor e voltará para a operação 300 a fim de obter uma lista de reprodução atualizada ou adicional para o programa.
[00113] Conforme discutido em maiores detalhes em relação à figura 2B, um servidor pode atualizar um arquivo de lista de reprodução para introduzir um conteúdo suplementar (por exemplo, identificadores de arquivo de mídia adicionais correspondentes ao conteúdo de mídia adicional em uma difusão ao vivo) ou conteúdo adicional (por exemplo, conteúdo adicional abaixo da transmissão contínua). Para acessar o conteúdo suplementar ou conteúdo adicional, um cliente pode recarregar a lista de reprodução atualizada a partir do servidor. Isso pode fornecer um mecanismo através do qual os arquivos de lista de reprodução podem ser atualizados de modo dinâmico, mesmo durante a reprodução do conteúdo de mídia associado a um arquivo de lista de reprodução. Um cliente pode solicitar uma recarga do arquivo de lista de reprodução com base em inúmeros acionadores. A ausência de um marcador final é um acionador.
[00114] Em uma modalidade, o dispositivo de cliente recarrega pe-riodicamente o(s) arquivo(s) de lista de reprodução a menos que o ar- quivo de lista de reprodução contenha o marcador EXT-X-ENDLIST. Quando o dispositivo de cliente carrega um arquivo de lista de reprodução pela primeira vez ou recarrega um arquivo de lista de reprodução e descobre que o arquivo de lista de reprodução foi alterado desde a última vez que foi carregado, o cliente pode aguardar por um período de tempo antes de tentar recarregar o arquivo de lista de reprodução novamente. Esse período é chamado de atraso de recarga mínimo inicial. Esse é medido a partir do momento que o cliente começou a carregar o arquivo de lista de reprodução.
[00115] Em uma modalidade, o atraso de recarga mínimo inicial é a duração do último arquivo de mídia no arquivo de lista de reprodução ou três vezes a duração alvo, o que for menor. O arquivo de mídia duração é especificado pelo marcador EXTINF. Se o cliente recarregar um arquivo de lista de reprodução e descobrir que esse não foi alterado, então, o cliente pode esperar por um período de tempo antes de tentar novamente. O atraso mínimo em uma modalidade é três vezes a duração alvo ou um múltiplo do atraso de recarga mínimo inicial, o que for menor. Em uma modalidade, esse múltiplo é 0,5 para uma primeira tentativa, 1,5 para uma segunda tentativa e 3,0 para tentativas subsequentes; entretanto, outros múltiplos podem ser usados.
[00116] Cada vez que um arquivo de lista de reprodução é carregado ou recarregado, o dispositivo de cliente examina o arquivo de lista de reprodução para determinar o próximo arquivo de mídia a ser carregado. O primeiro arquivo a carregar é o arquivo de mídia selecionado para ser primeiramente reproduzido conforme descrito acima. Se o primeiro arquivo de mídia a ser reproduzido tiver sido carregado e o arquivo de lista de reprodução não contiver o marcador EXT-X-MEDIA- SEQUENCE, então, o cliente poderá verificar que o arquivo de lista de reprodução atual contém o URI do último arquivo de mídia carregado no deslocamento onde foi originalmente encontrado, parando a repro- dução se o arquivo não for encontrado. O próximo arquivo de mídia a ser carregado pode ser o primeiro arquivo de mídia URI seguinte ao último URI carregado no arquivo de lista de reprodução.
[00117] Se o primeiro arquivo a ser reproduzido tiver sido carregado e o arquivo de lista de reprodução contiver o marcador EXT-X-MEDIA- SEQUENCE, então, o próximo arquivo de mídia a carregar pode ser aquele com o menor número de sequência que é maior do que o número de sequência do último arquivo de mídia carregado. Se o arquivo de lista de reprodução contiver um marcador EXT-X-KEY que especifique um arquivo chave URI, o dispositivo de cliente obterá o arquivo chave e usará a chave dentro do arquivo chave para decodificar os arquivos de mídia seguindo o marcador EXT-X-KEY até que outro marcador EXT-X-KEY seja encontrado.
[00118] Em uma modalidade, o dispositivo de cliente utiliza o mesmo URI como o usado previamente para transferir por download o arquivo de lista de reprodução. Assim, se alterações tiverem sido feitas no arquivo de lista de reprodução, o dispositivo de cliente poderá usar o arquivo de lista de reprodução atualizado para recuperar os arquivos de mídia e fornecer uma emissão com base nos arquivos de mídia.
[00119] As alterações no arquivo de lista de reprodução podem incluir, por exemplo, a deleção de um URI para um arquivo de mídia, adição de um URI para um novo arquivo de mídia, substituição de um URI para uma substituição do arquivo de mídia. Quando alterações são feitas no arquivo de lista de reprodução, um ou mais marcadores podem ser atualizados para refletir a(s) alteração(ões). Por exemplo, o marcador de duração pode ser atualizado se alterações nos arquivos de mídia resultarem em uma alteração para a duração da reprodução dos arquivos de mídia indicados pelo arquivo de lista de reprodução.
[00120] A figura 3B é um fluxograma de uma modalidade de uma técnica para um dispositivo de cliente para suportar a transmissão con- tínua de conteúdo usando múltiplas taxas de bit que é uma forma de transmissões contínuas alternativas. O exemplo da figura 3B é fornecido em termos de HTTP; entretanto, outros protocolos de não transmissão contínua podem ser utilizados em um modo similar.
[00121] O dispositivo de cliente pode solicitar um arquivo de lista de reprodução na operação 370. Conforme discutido acima, o arquivo de lista de reprodução pode ser recuperado utilizando um URI fornecido para o dispositivo de cliente. Em uma modalidade, o arquivo de lista de reprodução inclui listagens de transmissões contínuas variantes de arquivos de mídia para fornecer o mesmo conteúdo em diferentes taxas de bit; em outras palavras, um único arquivo de lista de reprodução inclui URIs para os arquivos de mídia de cada dentre as transmissões contínuas variantes. O exemplo mostrado na figura 3B usa essa modalidade. Em outra modalidade, as transmissões contínuas variantes podem ser representadas por múltiplos arquivos de lista de reprodução distintos fornecidos separadamente ao cliente, sendo que cada um fornece o mesmo conteúdo em taxas de bit diferentes, e uma lista de reprodução variante pode fornecer um URI para cada dentre os arquivos de lista de reprodução distintos. Isso permite que o dispositivo de cliente selecione a taxa de bit com base nas condições do cliente.
[00122] O(s) arquivo(s) de lista de reprodução pode ser recuperado pelo dispositivo de cliente na operação 375. O(s) arquivo(s) de lista de reprodução pode ser armazenado na memória do dispositivo de cliente na operação 380. O dispositivo de cliente pode selecionar a taxa de bit a ser usada na operação 385 com base nas velocidades conexão de rede atuais. Os arquivos de mídia são solicitados do servidor que utiliza URIs inclusos no arquivo de lista de reprodução que corresponde à taxa de bit selecionada na operação 390. Os arquivos de mídia recuperados podem ser armazenados na memória do dispositivo de cliente. A saída é fornecida pelo dispositivo de cliente que utiliza os arqui- vos de mídia na operação 394 e o dispositivo de cliente determina a mudança da taxa de bit.
[00123] Em uma modalidade, um dispositivo de cliente seleciona inicialmente a taxa de bit disponível mais baixa. Ao reproduzir a mídia, o dispositivo de cliente pode monitorar a largura de banda disponível (por exemplo, taxas de bit de conexão de rede atuais) para determinar se a largura de banda disponível pode suportar o uso de uma taxa de bit maior para reprodução. Se sim, o dispositivo de cliente pode selecionar uma taxa de bit maior e acessar os arquivos de mídia indicados pelo arquivo de lista de reprodução de mídia de taxa de bit maior. O inverso também pode ser suportado. Se a reprodução consome muita largura de banda, o dispositivo de cliente pode selecionar uma taxa de bit menor e acessar os arquivos de mídia indicados pelo arquivo de lista de reprodução de mídia de taxa de bit menor.
[00124] Se o dispositivo de cliente altera a taxa de bit na operação 394, por exemplo, em resposta a uma mudança na largura de banda disponível ou em resposta à entrada de um usuário, o dispositivo de cliente pode selecionar uma taxa de bit diferente na operação 385. Em uma modalidade, para selecionar uma taxa de bit diferente, o dispositivo de cliente pode utilizar uma lista diferente de URIs incluídos no arquivo de lista de reprodução que corresponde à nova taxa de bit selecionada. Em uma modalidade, o dispositivo de cliente pode alterar as taxas de durante o acesso aos arquivos de mídia dentro de uma lista de reprodução.
[00125] Se a taxa de bit não altera na operação 394, então o dispositivo de cliente determina se há mais arquivos de mídia não reproduzidos na lista de reprodução atual que não foram recuperados e apresentados. Se tais arquivos de mídia existem, então o processamento retorna para a operação 390 e um ou mais arquivos de mídia são recuperados com o uso dos URIs para aqueles arquivos na lista de re- produção. Se não há tais arquivos de mídia (isto é, todos os arquivos de mídia na lista de reprodução atual foram reproduzidos), então o processamento procede para a operação 396 na qual é determinado se a lista de reprodução inclui um marcador final. Se sim, a reprodução do programa terminou e o processo foi finalizado; se não, então o pro-cessamento reverte para a operação 370, e o dispositivo de cliente solicita o recarregamento da lista de reprodução para o programa, e o processo repete através do método mostrado na figura 3B.
[00126] A figura 4 é um diagrama de bloco de uma modalidade de um agente de transmissão contínua do servidor. Compreende-se que os elementos do agente de transmissão contínua do servidor 400 podem ser distribuídos ao longo de diversos dispositivos de servidor. Por exemplo, um primeiro dispositivo de servidor pode incluir o segmenta- dor 430, o indexador 440 e a segurança 450, mas não o servidor de arquivo 460 e um segundo dispositivo de servidor pode incluir o servidor de arquivo 450, mas não o segmentador 430, o indexador 440 e a segurança 450. Neste exemplo, o primeiro dispositivo de servidor prepararia as listas de reprodução e arquivos de mídia, mas não transmitiria as mesmas para os dispositivos de cliente enquanto um ou mais segundos dispositivos de servidor receberiam e opcionalmente armazenariam as listas de reprodução e arquivos de mídia e transmitiriam as listas de reprodução e arquivos de mídia para os dispositivos de cliente. O agente de transmissão contínua do servidor 400 inclui lógica de controle 410, o que implementa controle funcional lógico para direcionar a operação do agente de transmissão contínua do servidor 400, e um hardware associado à operação de direcionamento do agente de transmissão contínua do servidor 400. A lógica pode ser circuitos lógicos de hardware ou rotinas de software ou firmware. Em uma modalidade, o agente de transmissão contínua do servidor 400 inclui um ou mais aplicativos 412, que representam sequência de código e/ou pro- gramas que fornecem instruções para a lógica de controle 410.
[00127] O agente de transmissão contínua do servidor 400 inclui a memória 414, que representa um dispositivo de memória ou acesso a um recurso de memória para armazenar dados ou instruções. A memória 414 pode incluir memória local para o agente de transmissão contínua do servidor 400, bem como, ou alternativamente, incluir memória do sistema hospedeiro no qual o agente de transmissão contínua do servidor 400 reside. O agente de transmissão contínua do servidor 400 também inclui uma ou mais interfaces 416, que representam interfaces de acesso para/de (uma interface de entrada/saída) agente de transmissão contínua do servidor 400 com relação às entidades (eletrônica ou humana) externas ao agente de transmissão contínua do servidor 400.
[00128] O agente de transmissão contínua do servidor 400 também pode incluir motor de transmissão contínua do servidor 420, que representa uma ou mais funções que permitem que o agente de transmissão contínua do servidor 400 para fornecer a transmissão contínua em tempo real, ou próximo ao tempo real, conforme descrito no presente documento. O exemplo da figura 4 fornece diversos componentes que podem estar inclusos no motor de transmissão contínua do servidor 420; no entanto, componentes diferentes ou adicionais também podem ser inclusos. Os exemplos de componentes que podem ser envolvidos no fornecimento do ambiente de transmissão contínua incluem o segmentador 430, o indexador 440, a segurança 450 e o servidor de arquivo 460. Cada um destes componentes pode incluir adicionalmente outros componentes para fornecer outras funções. Para uso no presente documento, uma componente se refere à rotina, um subsistema, etc., implementado, ou não, no hardware, software, firmware ou combinação dos mesmos.
[00129] O segmentador 430 divide o conteúdo a ser fornecido for mando arquivos de mídia que podem ser transmitidos como arquivos com o uso de um protocolo de servidor da Web (por exemplo, HTTP). Por exemplo, o segmentador 430 pode dividir o conteúdo formando blocos de tamanho fixo predeterminado de dados em um formato de arquivo predeterminado.
[00130] O indexador 440 pode fornecer um ou mais arquivos de lista de reprodução que fornecem um endereço ou URI aos arquivos de mídia criados através do segmentador 430. O indexador 440 pode, por exemplo, criar um ou mais arquivos com uma de uma ordem para identificadores que correspondem a cada arquivo criado através do segmen- tador 430. Os identificadores podem ser criados ou atribuídos ou pelo segmentador 430 ou pelo indexador 440. O indexador 440 também pode incluir um ou mais marcadores nos arquivos de lista de reprodução para suportar o acesso e/ou utilização dos arquivos de mídia.
[00131] A segurança 450 pode fornecer recursos de segurança (por exemplo, criptografia) tal como aqueles discutidos anteriormente. O servidor da Web 460 pode oferecer funcionalidade de servidor da Web relacionada a fornecer arquivos armazenados em um sistema hospedeiro para um dispositivo de cliente remoto. O servidor da Web 460 pode dar suporte, por exemplo, a protocolos compatíveis por HTTP.
[00132] A figura 5 é um diagrama em bloco de uma modalidade de um agente de transmissão contínua de cliente. Deve-se entender que os elementos de um agente de transmissão contínua de cliente podem ser distribuídos através de vários dispositivos de cliente. Por exemplo, um primeiro dispositivo de cliente pode incluir um montador 530 e uma segurança 550 e pode fornecer uma transmissão contínua descripto- grafada de arquivos de mídia para um segundo dispositivo de cliente que inclui um gerador de saída 540 (mas não inclui um montador 530 uma segurança 550). Em outro exemplo, um dispositivo de cliente primário pode recuperar listas de reprodução e oferecê-las a um disposi- tivo de cliente secundário que recupera arquivos de mídia especificados na lista de reprodução e gera uma saída para apresentar esses arquivos de mídia. O agente de transmissão contínua de cliente 500 inclui a lógica de controle 510, que implementa controle funcional lógico para direcionar a operação de agente de transmissão contínua de cliente 500, e o hardware associado com a direção da operação de agente de transmissão contínua de cliente 500. A lógica pode ser um circuito de lógica de hardware ou rotinas de software ou firmware. Em uma modalidade, o agente de transmissão contínua de cliente 500 inclui uma ou mais aplicações 512, que representam sequência de código ou programas que oferecem instruções para lógica de controle 510.
[00133] O agente de transmissão contínua de cliente 500 inclui a memória 514, que representa um dispositivo de memória ou acesso a um recurso de memória para armazenar dados e/ou instruções. A memória 514 pode incluir memória local para agente de transmissão contínua de cliente 500, assim como, ou alternativamente, incluindo memória do sistema hospedeiro em que o agente de transmissão contínua de cliente 500 se encontra. O agente de transmissão contínua de cliente 500 também inclui uma ou mais interfaces 516, que representam interfaces de acesso para/de (uma interface entrada/saída) o agente de transmissão contínua de cliente 500 com respeito a entidades (eletrônicas ou humanas) externar ao agente de transmissão contínua de cliente 500.
[00134] O agente de transmissão contínua de cliente 500 também pode incluir um mecanismo de transmissão contínua de cliente 520, que representa uma ou mais funções que habilitam o agente de transmissão contínua de cliente 500 a fornecer a transmissão contínua em tempo real ou quase em tempo real conforme descrito no presente. O exemplo da figura 5 oferece diversos componentes que podem ser incluídos no mecanismo de transmissão contínua de cliente 520; no entanto, componentes diferentes ou adicionais podem ser também incluídos. Os componentes de exemplo que podem estar envolvidos em fornecer o ambiente de transmissão contínua incluem o montador 530, o gerador de saída 540 e a segurança 550. Cada um desses componentes pode ademais incluir outros componentes para oferecer outras funções. Conforme usado no presente, um componente se refere à rotina, um subsistema, etc., seja implementado em hardware, software, firmware ou alguma combinação dos mesmos.
[00135] O montador 530 pode utilizar um arquivo de lista de reprodução recebido de um servidor para acessar arquivos de mídia por meio do protocolo de servidor da Web (por exemplo, HTTP) a partir do servidor. Em uma modalidade, o montador 530 pode fazer com que arquivos de mídia carregados conforme indicado por URLs no arquivo de lista de reprodução. O montador 530 pode responder aos marcadores incluídos no arquivo de lista de reprodução.
[00136] O gerador de saída 540 pode fornecer os arquivos de mídia recebidos como saída de áudio ou visual (ou ambos áudio e visual) no sistema hospedeiro. O gerador de saída 540 pode, por exemplo, fazer com que seja uma saída para um ou mais alto- falantes e o vídeo seja uma saída para um dispositivo de exibição. A segurança 550 pode oferecer recursos de segurança tais como aqueles discutidos anteriormente.
[00137] A figura 6 ilustra uma modalidade de um arquivo de lista de reprodução com múltiplos marcadores. A lista de reprodução de exemplo da figura 6 inclui um número e ordenação específicos de marcadores. Isto é fornecido para fins de descrição somente. Alguns arquivos de lista de reprodução podem incluir mais, poucos ou diferentes combinações de marcadores e os marcadores podem ser distribuídos em uma ordem diferente do que a mostrada da figura 6.
[00138] O marcador de começo 610 pode indicar o começo de um arquivo de lista de reprodução. Em uma modalidade, o marcador de começo 610 é um marcador #EXTM3U. O marcador de duração 620 pode indicar a duração da lista de reprodução. Isto é, a duração da reprodução dos arquivos de mídia indicados pela lista de reprodução 600. Em uma modalidade, o marcador de duração 620 é um marcador EXT-X-TARGETDURATION; no entanto, outros marcadores podem também ser usados.
[00139] O marcador de data/hora 625 pode fornecer informações relacionadas à data e hora do conteúdo fornecido pelos arquivos de mídia indicados pela lista de reprodução 600. Em uma modalidade, o marcador de data/hora 625 é um marcador EXT-X-PROGRAM-DATE- TIME; no entanto, outros marcadores podem ser também usados. O marcador de sequência 630 pode indicar a sequência do arquivo de lista de reprodução 600 em uma sequência de listas de reprodução. Em uma modalidade, o marcador de sequência 630 é um marcador EXT-X-MEDIA-SEQUENCE; no entanto, outros marcadores podem também ser usados.
[00140] O marcador de segurança 640 pode oferecer informações relacionadas à segurança e/ou criptografia aplicada a arquivos de mídia indicados por arquivo de lista de reprodução 600. Por exemplo, o marcador de segurança 640 pode especificar uma chave de des- criptografia para descriptografar arquivos especificados pelos indicadores de arquivo de mídia. Em uma modalidade, o marcador de segurança 640 é um marcador EXT-X-KEY; no entanto, outros marcadores podem também ser usados. O marcador de lista variante 645 pode indicar se transmissões contínuas variantes são fornecidos pela lista de reprodução 600 assim como informações relacionadas às transmissões contínuas variantes (por exemplo, quantos, taxa de bit). Em uma modalidade, o marcador de lista variante 645 é um marcador EXT-X-STREAM-INF.
[00141] Os indicadores de arquivo de mídia 650 podem oferecer informações relacionadas a arquivos de mídia a serem reproduzidos. Em uma modalidade, indicadores de arquivo de mídia 650 incluem URIs para múltiplos arquivos de mídia a serem reproduzidos. Em uma modalidade, a ordem dos URIs na lista de reprodução 600 corresponde à ordem em que os arquivos de mídia devem ser acessados e/ou reproduzidos. Indicadores de lista de reprodução subsequentes 660 podem oferecer informações relacionadas a um ou mais arquivos de reprodução a serem usados após o arquivo de reprodução 600. Em uma modalidade, os indicadores de lista de reprodução subsequentes 660 podem incluir URIs para um ou mais arquivos de lista de reprodução a serem usados após os arquivos de mídia da lista de reprodução 600 ter sido reproduzida.
[00142] O marcador de memória 670 pode indicar se e/ou por quanto tempo um dispositivo de cliente pode armazenar arquivos de mídia após a reprodução do conteúdo de arquivo de mídia. Em uma modalidade, o marcador de memória 670 é um marcador EXT-X-ALLOW- CACHE. O marcador de final 680 indica se o arquivo de lista de reprodução 600 é o último arquivo de lista de reprodução para uma apresentação. Em uma modalidade, o marcador de final 680 é um marcador EXT-X-ENDLIST.
[00143] A seguinte seção contém diversos arquivos de exemplo de lista de reprodução de acordo com uma modalidade.
Figure img0001
[00144] Lista de Reprodução de Janela Deslizante, com uso de HTTPS
Figure img0002
[00145] Arquivo de lista de reprodução com arquivos de mídia criptografados
Figure img0003
[00146] Arquivo de lista de reprodução variante
Figure img0004
[00147] A figura 7 é um fluxograma de uma modalidade de uma técnica de reprodução para transmissões contínuas montadas conforme descrito no presente. Em uma modalidade, a reprodução dos arquivos de mídia recebidos por ser controlada pelo usuário para iniciar, parar, retroceder, etc. O arquivo de lista de reprodução é recebido pelo dispositivo de cliente na operação 700. Os arquivos de mídia indicados pelo arquivo de lista de reprodução são recuperados na operação 710. A saída é gerada com base nos arquivos de mídia recuperados na operação 720. Receber e gerar saída com base em arquivos de mídia pode ser realizado conforme descrito anteriormente.
[00148] Se a entrada de controle é detectada na operação 730, o dispositivo de cliente pode determinar se a entrada indica uma parada na operação 740. Se a entrada é uma parada, o processo conclui e a reprodução para. Se a entrada indicar uma solicitação de retroceder ou avançar na operação 750, o dispositivo de cliente pode gerar uma saída com base em arquivos de mídia previamente reproduzidos ainda armazenados na memória na operação 760. Se esses arquivos não estiverem mais em um cache, então o processamento se reverte à operação 710 para recuperar os arquivos de mídia e repetir o processo. Em uma modalidade alternativa, a reprodução pode dar suporte a um recurso de pausa que interrompe a reprodução sem concluir a reprodução com uma entrada de parada.
[00149] Os métodos para transitar de uma transmissão contínua para outra transmissão contínua são ademais descritos com referência às figuras 9A a 9D. Um dispositivo de cliente pode realizar cada um desses métodos ou as operações de cada um desses métodos podem ser distribuídas por múltiplos dispositivos de cliente conforme descrito no presente; por exemplo, no caso distribuído, um dispositivo de cliente pode recuperar a lista de reprodução variante e as duas listas de reprodução de mídia e fornecer essas a outro dispositivo de cliente que recupera os arquivos de mídia especificados pelas duas listas de reprodução de mídia e comuta entre as duas transmissões contínuas fornecidas pelos arquivos de mídia fornecidos. Deve-se também entender que, em modalidades alternativas, a ordem das operações mostradas pode ser modificada ou pode haver mais ou menos operações do que mostrado nessas figuras. Os métodos podem usar uma lista de reprodução variante para selecionar diferentes transmissões contínuas. Uma lista de reprodução variante pode ser recuperada e processada na operação 901 para determinar transmissões contínuas disponíveis para um programa (por exemplo, um evento de esporte). A operação 901 pode ser feita por um dispositivo de cliente. Uma primeira transmissão contínua pode ser selecionado a partir da lista de reprodução variante na operação 903, e um dispositivo de cliente pode então recuperar uma lista de reprodução de mídia para a primeira transmissão contínua. O dispositivo de cliente pode processar a lista de reprodução de mídia para a pri- meira transmissão contínua na operação 905 e também medir ou de outra forma determinar uma taxa de bit da conexão de rede para a primeira transmissão contínua na operação 907. Deve-se perceber que a sequência de operações pode ser realizada em uma ordem que seja diferente do que é mostrado na figura 9A; por exemplo, a operação 907 pode ser realizada durante a operação 903, etc. Na operação 911, o dispositivo de cliente seleciona uma lista de reprodução de mídia alternativa a partir da lista de reprodução variante com base na taxa de bit medida a partir da operação 907; esta lista de reprodução de mídia alternativa pode ser a uma segunda taxa de bit que é mais alta que a taxa de bit existente da primeira transmissão contínua. Isto tipicamente significa que a transmissão contínua alternativa terá uma resolução mais alta que a da primeira transmissão contínua. A lista de reprodução de mídia alternativa pode ser selecionada se esta for uma melhor combinação do que a lista de reprodução atual para a primeira transmissão contínua com base nas condições atuais (por exemplo, a taxa de bit medida na operação 907). Na operação 913, a lista de reprodução de mídia alternativa para uma transmissão contínua alternativa é recuperada e processada. Isto tipicamente significa que o dispositivo de cliente pode estar recebendo e processando ambos a primeira transmissão contínua e a transmissão contínua alternativa então ambos estão disponíveis para apresentação; uma é apresentada enquanto a outra é lida para ser apresentada. O dispositivo de cliente então seleciona um ponto de transição para comutar entre as versões das transmissões contínuas na operação 915 e para de apresentar a primeira transmissão contínua e começa a apresentar a transmissão contínua alternativa. Os exemplos de como esta comutação é realizada são fornecidos em conjunto com as figuras 9B a 9D. Em algumas modalidades, o dispositivo de cliente pode parar de receber a primeira transmissão contínua antes de fazer a comutação.
[00150] A figura 9B mostra que o dispositivo de cliente recupera, armazena e apresenta o conteúdo especificado pela primeira lista de reprodução de mídia (por exemplo, a primeira transmissão contínua) nas operações 921 e 923, e enquanto o conteúdo especificado pela primeira lista de reprodução está sendo apresentado, o dispositivo de cliente na operação 925 também recupera e armazena o conteúdo especificado pela segunda lista de reprodução de mídia (por exemplo, a segunda transmissão contínua). A recuperação e o armazenamento (por exemplo, em uma memória temporária) do conteúdo especificado pela segunda lista de reprodução de mídia enquanto se apresenta o conteúdo obtido a partir da primeira lista de reprodução de mídia cria uma sobreposição 955 no tempo do conteúdo do programa (mostrado na figura 9D) que também permite que o dispositivo de cliente comute entre as versões do programa sem uma interrupção substancial do programa. Desta forma, a comutação entre as versões do programa pode ser alcançada em muitos casos sem o noticiário notar que uma comutação ocorreu (embora o usuário possa notar uma imagem de resolução mais alta após a comutação em alguns casos) ou sem uma interrupção substancial na apresentação do programa. Na operação 927, o dispositivo de cliente determina um ponto de transição no qual para comutar a partir do conteúdo especificado pela primeira lista de reprodução de mídia para o conteúdo especificado pela segunda lista de reprodução de mídia; um exemplo de um ponto de transição (ponto de transição 959) é mostrado na figura 9D. O conteúdo especificado pela segunda lista de reprodução de mídia é então apresentado na operação 931 após a comutação.
[00151] O método mostrado nas figuras 9C e 9D representa uma modalidade para determinar o ponto de transição; esta modalidade conta com uma operação padrão em amostras de áudio a partir das transmissões contínuas 951 e 953 para determinar o ponto de transi- ção. Deve-se perceber que modalidades alternativas podem usar combinação de padrão em amostras de vídeo ou podem usar os carimbos de tempo nas duas transmissões contínuas, etc. para determinar o ponto de transição. O método pode incluir, na operação 941, armazenar conteúdo (por exemplo, transmissão contínua 951) especificado pela primeira lista de reprodução de mídia em uma memória temporária; a memória temporária pode ser usada para a apresentação do conteúdo e também para a operação de combinação de padrão. A transmissão contínua 951 inclui ambas as amostras de áudio 951A e as amostras de vídeo 951B. As amostras de vídeo podem usar uma técnica de compressão que conta com quadros i ou quadros chave que têm todo o conteúdo necessário para exibir um único quadro de vídeo. O conteúdo na transmissão contínua 951 pode in-cluir carimbos de tempo que especificam tempo (por exemplo, tempo passado desde o começo do programa), e esses carimbos de tempo podem marcar o começo de cada uma das amostras (por exemplo, o começo de cada uma das amostras de áudio 951A e o começo de cada uma das amostras de vídeo 951B). Em alguns casos, uma comparação dos carimbos de tempo entre as duas transmissões contínuas pode não ser útil para determinar um ponto de transição porque eles podem não ser precisos o suficiente ou por causa da diferença nos limites das amostras nas duas transmissões contínuas; no entanto, uma comparação das faixas de carimbos de tempo pode ser usada para verificar que há uma sobreposição 955 no tempo entre as duas transmissões contínuas. Na operação 943, o dispositivo de cliente armazena em uma memória temporária o conteúdo especificado pela segunda lista de reprodução de mídia; este conteúdo é para o mesmo programa que o conteúdo obtido a partir da primeira lista de reprodução de mídia e pode incluir carimbos de tempo também. Em uma modalidade, os carimbos de tempo, se não presentes em uma transmissão contínua, podem ser adicionados a uma lista de reprodução para uma transmissão contínua; por exemplo, em uma modalidade um marcador ID3 que inclui um ou mais carimbos de tempo pode ser adicionado a uma entrada em uma lista de reprodução, tal como uma lista de reprodução variante ou uma lista de reprodução de mídia. A entrada pode ser, por exemplo, em um URI para uma primeira amostra de uma transmissão contínua de áudio. A figura 9D mostra um exemplo de conteúdo 953 obtida a partir da segunda lista de reprodução de mídia, e isto inclui amostras de áudio 953A e amostras de vídeo 953B. Na operação 945, o dispositivo de cliente pode realizar uma combinação padrão sobre as amostras de áudio nas duas transmissões contínuas 951 e 953 para selecionar a partir da sobreposição 955 o ponto de transição 959 que pode ser, em uma modalidade, o próximo quadro de vídeo autocontido (por exemplo, quadro i 961) após os segmentos de áudio combinados (por exemplo, segmentos 957). Começando com o quadro i 961 (e sua amostra de áudio associada), a apresentação do programa usa a segunda trans-missão contínua obtida a partir da segunda lista de reprodução de mídia. O método anterior pode ser usado em uma modalidade para ambas uma alteração de uma taxa de bit mais lenta para uma mais rápida e para uma alteração de uma taxa de bit mais rápida para uma mais lenta, mas em outra modalidade o método pode ser usado somente para uma alteração de uma taxa de bit mais lenta para uma mais rápida e outro método (por exemplo, não tenta localizar um ponto de transição, mas tenta armazenar e apresentar o conteúdo a partir de uma transmissão contínua de taxa de bit mais lenta o quanto antes possível) pode ser usado para uma alteração de um bit mais rápido para um mais lento.
[00152] A figura 10 é um fluxograma de uma modalidade de uma técnica para fornecer múltiplas localizações redundantes que forne- cem listas de reprodução ou conteúdo de mídia ou ambos para os dispositivos de cliente com uso de transmissões contínuas alternativas. Se uma lista de reprodução contiver transmissões contínuas alternativas conforme discutido anteriormente, então transmissões contínuas alternativas podem não somente operar como largura de banda ou alternar dispositivo, mas também como emergências de falha. Por exemplo, se o cliente estiver incapaz de recarregar o arquivo de lista de reprodução para uma transmissão contínua (devido a um erro 404 ou um erro de conexão de rede, por exemplo), o cliente pode tentar comutar para uma transmissão contínua alternativa. Referindo-se à figura 10, para implementar proteção de superação de falhas, um primeiro dispositivo de servidor ou um primeiro serviço de distribuição de conteúdo é configurado para criar uma transmissão contínua, ou múltiplas transmissões contínuas de largura de banda alternativa na operação 1002 conforme discutido em conjunto com a descrição da figura 2C. Na operação 1004, o primeiro dispositivo de servidor ou o primeiro serviço de distribuição de conteúdo gera arquivo(s) de lista de reprodução(s) a partir da(s) transmissão contínua(s) gerada(s) na operação 1002. Um segundo dispositivo de servidor ou segundo serviço de distribuição de conteúdo pode criar uma transmissão contínua paralela ou conjunto de transmissões contínuas, na operação 1006 e também criar uma lista de reprodução. Essa(s) transmissão contí- nua(s) paralela(s) pode(m) ser considerada(s) transmissões contínuas de reserva. A seguir, a lista de transmissões contínuas de reserva é adicionada ao(s) arquivo(s) de lista de reprodução na operação 1008 de forma que a(s) transmissão contínua(s) de reserva em cada largura de banda seja(m) listado(s) após a transmissão contínua primária. Por exemplo, se a transmissão contínua primária vier de um servidor ALPHA, e a transmissão contínua de reserva estiver em um servidor BETA, então um arquivo de lista de reprodução deve ser conforme segue:
Figure img0005
[00153] Nota-se que as transmissões contínuas de reserva estão mescladas com as transmissões contínuas primárias na lista de reprodução com a reserva em cada largura de banda listada após o primário para essa largura de banda. Um cliente não é limitado a um único conjunto de transmissão contínua de reserva. No exemplo anterior, ALPHA e BETA poderiam ser seguidos por GAMMA, por exemplo. Similarmente, não é necessário fornecer um conjunto paralelo completo de transmissões contínuas. Uma única transmissão contínua de baixa largura de banda pode ser fornecida em um servidor de reversa, por exemplo.
[00154] Na operação 1010, o cliente tenta descarregar arquivo(s) de lista de reprodução a partir de um primeiro URL com uso de uma primeira transmissão contínua associada ao primeiro dispositivo de servidor ou o primeiro serviço de distribuição de conteúdo. A figura 11 ilustra uma rede em que um cliente 1102 se comunica bidirecionalmente com um ou mais URLs, dispositivos de servidores ou serviços de distribuição de conteúdo, em concordância com uma modalidade. O(s) arquivo(s) de lista de repro- dução pode(m) ser transmitido(s) a partir do primeiro URL, dispositivo de servidor ou serviço de distribuição de conteúdo na operação 1012 para o cliente 1102. Se um cliente está incapacidade de descarregar o(s) arqui- vo(s) de lista de reprodução a partir do primeiro URL, dispositivo de servidor ou serviço de distribuição de conteúdo (por exemplo, devido a um erro em recarregar o arquivo de índice para uma transmissão contínua), o cliente tenta comutar para uma transmissão contínua alternativa. No caso de uma falha (por exemplo, falha de carregamento de índice) em uma transmissão contínua (por exemplo, operação 1010), o cliente escolhe a transmissão contínua alternativo de largura de banda mais alta que a conexão de rede suporta na operação 1014. Se houver múltiplas alternativas na mesma largura de banda, o cliente escolhe entre estas na ordem listada na lista de reprodução. Por exemplo, se o cliente 1102 não for capaz de descarregar com sucesso a partir do URL 1, pode descarregar a partir do URL 2 ou outro URL em cujo caso o(s) arquivo(s) de lista de reprodução é(são) transmitido(s) a partir do URL alternativo para o cliente. Este recurso fornece transmissões contínuas redundantes que permitirão que a mídia chegue ao cliente mesmo no caso de graves falhas locais, tal como um travamento de servidor ou um nó de distribuidor de conteúdo desativado.
[00155] A proteção de superação de falhas fornece a capacidade de fornecer múltiplas localizações redundantes a partir das quais os clientes podem recuperar as listas de reprodução e arquivos de mídia. Assim, se o cliente não pode recuperar uma transmissão contínua a partir de uma primeira localização, pode tentar acessar a transmissão contínua a partir de uma localização secundária, terciária, etc.
[00156] Em uma modalidade, para indicar as localizações adicionais a partir das quais o cliente pode recuperar uma lista de reprodução, o mesmo marcador de lista de reprodução variante poderia ser fornecido com a mesma largura de banda, mas um novo URL da loca- lização redundante. O cliente inicialmente pode tentar acessar o primeiro URL associado à largura de banda desejada. Se não puder descarregar a lista de reprodução a partir do primeiro URL, pode então tentar acessar o próximo URL apresentado para a largura de banda, e assim por diante até que tenham acabado todas as possibilidades.
[00157] Um exemplo abaixo inclui localização redundante 1 para a largura de banda 2560000 e localizações redundantes 2 para a largura de banda 7680000.
Figure img0006
[00158] Nota-se que neste exemplo ambos os nomes de arquivo (por exemplo, mid-redundant2.m3u8) e o URL real (por exemplo, <http://example2.com/> , http://example3.com <http://example3.com/>) se alteram. No entanto, em uma modalidade, uma localização redundante pode ser uma alteração somente para nome de arquivo ou somente para o site da web.
[00159] Em uma modalidade, uma lista de reprodução pode ser comprimida por um dispositivo de servidor e enviada a um dispositivo de cliente em uma forma comprimida. A lista de reprodução comprimida normalmente requer poucos bits para representar a lista de reprodução do que uma lista de reprodução descomprimida, e, portanto, uma lista de reprodução comprimida usa menos largura de banda disponível de uma rede, tal como uma rede de telefone celular sem fio, quando é transmitida ou recebida. Em uma modalidade, a lista de reprodução pode ser comprimida por um servidor da web de acordo com uma técnica de compressão interna ou recurso que é usado por um servidor da web que seja complacente ou compatível com um protocolo de transferência tal como o protocolo padrão HTTP 1.1; um exemplo de tal técnica de compressão ou recurso é a deflação ou o recurso de compressão gzip de HTTP 1.1. Outros padrões baseados em recursos de compressão que são parte de padrões baseados em protocolo de transferência podem ser usados em outras modalidades. O uso de listas de reprodução comprimidas pode ser, em uma modalidade, um recurso opcional de dispositivos de servidores e dispositivos de cliente. Em uma modalidade, a lista de reprodução pode ser conteúdo textual (por exemplo, arquivo de texto) e ser comprimida eficientemente com deflação ou gzip por padrões baseado em servidor da web e então descomprimida automaticamente por um dispositivo de cliente. Uma descrição de uma versão do recurso de compressão de gzip pode ser encontrada em www.ietf.org/rfc/rfc1952.txt; uma versão do recurso de compressão por deflação pode ser encontrada em www.ietf.org/rfc/rfc1951 .txt. Muito servidores da web e muitos navegadores da web em um dispositivo de cliente podem automaticamente suportar os recursos de deflação ou o gzip.
[00160] Em uma modalidade, um dispositivo de cliente pode periodicamente solicitar uma lista de reprodução atualizada; por exemplo, o dispositivo de cliente pode solicitar, de um servidor, uma lista de reprodução atualizada a cada poucos segundos (por exemplo, a cada 10, 20 ou 30 segundos ou algum outro período de tempo). Uma lista de reprodução crescente, tal como uma lista de reprodução para um jogo de baseball ao vivo que permite que um cliente inicie a ver do início do jogo ao vivo a qualquer tempo durante o jogo ao vivo, pode se tornar grande o suficiente que o uso de compressão pode limitar o consumo de uma largura de banda da rede conforme a lista de reprodução crescente é repetidamente enviada através da rede.
[00161] Em uma modalidade, um dispositivo de cliente pode opcionalmente especificar, quando solicitar uma lista de reprodução (tal como uma lista de reprodução atualizada), quais técnicas de compressão pode suportar (tal como deflação ou gzip); suporte para essas técnicas significa que o dispositivo de cliente pode descomprimir ou decodificar o conteúdo comprimido ou codificado. A solicitação do dispositivo de cliente por uma lista de reprodução, com a especificação opcional de uma técnica de compressão, é recebida por um servidor da web que, em uma modalidade, não é solicitado para suportar uma técnica de compressão para uma lista de reprodução, mas pode enviar uma lista de reprodução descomprimida. O servidor da web pode responder à solicitação do dispositivo de cliente enviando, ao dispositivo de cliente, uma lista de reprodução descomprimida ou uma lista de reprodução comprimida com uso de uma das técnicas de compressão especificadas na solicitação do dispositivo de cliente para a lista de reprodução. O dispositivo de cliente recebe a lista de reprodução e a usa conforme descrito no presente; se a lista de reprodução é comprimida, é decodificada com uso de um decodificador no dispositivo de cliente tal como um decodificador em um navegador da web no dispositivo de cliente.
[00162] A figura 8 é um diagrama em bloco de uma modalidade de um sistema eletrônico. O sistema eletrônico ilustrado na figura 8 pretende representar uma gama de sistemas eletrônicos (tanto sem fio como com fio) que inclui, por exemplo, sistemas de computador de mesa, sistemas de computador portátil, telefones celulares, assistentes digitais pessoais (PDAs) incluindo PDAs habilitados por celular, terminal de assinante, sistemas de entretenimento ou outros dispositivos eletrônicos de consumidor. Sistemas eletrônicos alternativos podem incluir mais, menos e/ou diferentes componentes. O sistema eletrônico da figura 8 pode ser usado para prover o dispositivo de cliente e/ou o dispositivo de servidor.
[00163] O sistema eletrônico 800 inclui o barramento 805 ou outro dispositivo de comunicação para comunicar informações, e o processador 810 acoplado ao barramento 805 que pode processar informações. Apesar de o sistema eletrônico 800 ser ilustrado com um único processador, o sistema eletrônico 800 pode incluir múltiplos processadores e/ou coprocessadores. O sistema eletrônico 800 ademais pode incluir memória de acesso aleatório (RAM) ou outro dispositivo de armazenamento dinâmico 820 (chamado de memória principal), acoplado ao barramento 805 e pode armazenar informações e instruções que podem ser executadas pelo processador 810. A memória principal 820 pode ser também usada para armazenar variáveis temporárias ou outras informações intermediárias durante a execução das instruções pelo processador 810.
[00164] O sistema eletrônico 800 pode também incluir memória somente para leitura (ROM) e/ou outro dispositivo de armazenamento estático 830 acoplado ao barramento 805 que pode armazenar informações estáticas e instruções para o processador 810. O dispositivo de armazenamento de dados 840 pode ser acoplado ao barramento 805 para armazenar informações e instruções. O dispositivo de armazenamento de dados 840 tal como memória rápida ou um disco magnético ou um disco ótico e a unidade correspondente pode ser acoplada ao sistema eletrônico 800.
[00165] O sistema eletrônico 800 pode ser também acoplado por meio do barramento 805 ao dispositivo de exibição 850, tal como um tubo de raios catódicos (CRT) ou visor de cristal líquido (LCD), para exibir informações para um usuário. O sistema eletrônico 800 pode também incluir um dispositivo de entrada alfanumérica 860, que inclui chaves alfanuméricas e outras, que pode ser acoplado ao barramento 805 para comunicar informações e seleções de comando para o processador 810. Outro tipo de dispositivo de entrada de usuário é o controle de cursor 870, tal como um touchpad, um mouse, um trackball ou teclas de direção de cursor para comunicar informações de direção e seleções de comando para o processador 810 e para controlar o movimento do cursor no visor 850.
[00166] O sistema eletrônico 800 ademais pode incluir uma ou mais interface(s) de rede 880 para oferecer acesso a uma rede, tal como uma rede de área local. A(s) interface(s) de rede 880 pode(m) incluir, por exemplo, uma interface de rede sem fio que tem a antena 885, que pode representar uma ou mais antenas. O sistema eletrônico 800 pode incluir múltiplas interfaces de rede sem fio tal como uma combinação de WiFi, Bluetooth e interfaces de telefonia celular. A(s) interface(s) de rede 880 pode também incluir, por exemplo, uma interface de rede com fio para se comunicar com dispositivos remotos por meio de cabo de rede 887, que pode ser, por exemplo, um cabo de Ethernet, um cabo coaxial, um cabo de fibra ótica, um cabo serial ou um cabo paralelo.
[00167] Em uma modalidade, a(s) interface(s) de rede 880 pode(m) oferecer acesso a uma rede de área local, por exemplo, conformando a padrões IEEE 802.11b e/ou IEEE 802.11g, e/ou a interface de rede sem fio pode oferecer acesso a uma rede de área pessoal, por exemplo, conformando a padrões Bluetooth. Outras interfaces e/ou protocolos de rede sem fio podem ser também suportados.
[00168] Em adição a, ou invés de, comunicação por meio de padrões de LAN sem fio, a(s) interface(s) de rede 880 pode(m) oferecer comunicações sem fio com uso de, por exemplo, protocolos de Divisão de Tempo, Acesso Múltiplo (TDMA), protocolos de Sistema Global para Comunicações Móveis (GSM), protocolos de Divisão de Código, Acesso Múltiplo (CDMA), e/ou qualquer outro tipo de protocolo de comunicações sem fio.
[00169] A referência na especificação a "uma modalidade" ou "uma modalidade" significa que um recurso, estrutura ou característica particular descrito em conexão com a modalidade está incluído em ao menos uma modalidade da invenção. Os aparecimentos da frase "em uma modalidade" em vários locais na especificação não estão necessariamente todos se referindo à modalidade.
[00170] Na especificação anterior, a invenção foi descrita para modalidades específicas desta. Será, no entanto, evidente que várias modificações e alterações podem ser feitas nesta sem se afastar do espírito e escopo mais amplo da invenção. A especificação e desenhos devem ser, desta forma, considerados em um sentido de ilustrativo ao invés de restritivo. APÊNDICE
[00171] O seguinte apêndice é um projeto de especificação de um protocolo de acordo com uma modalidade particular da invenção. Deve-se entender que o uso de certas palavras chave (por exemplo DEVE, NÃO DEVE, PRECISA, NÃO PRECISA, etc.) neste apêndice se aplicam a esta modalidade particular e não se aplicam a outras modalidades descritas nesta descrição. RESUMO
[00172] Este documento descreve um protocolo para transmitir transmissões contínuas ilimitadas de dados de multimídia através de HTTP. O presente especifica o formato de dados dos arquivos e as ações a serem tomadas pelo servidor (remetente) e os clientes (destinatário) das transmissões contínuas. O presente descreve a versão 1.0 deste protocolo. Tabela de Conteúdos 1. Introdução 2. Sumário 3. Arquivo de lista de reprodução 3.1. Novos Marcadores 3.1.1. EXT-X-TARGETDURATION 3.1.2. EXT-X-MEDIA-SEQUENCE 3.1.3. EXT-X-KEY 3.1.4. EXT-X-PROGRAM-DATE-TIME 3.1.5. EXT-X-ALLOW-CACHE 3.1.6. EXT-X-ENDLIST 3.1.7. EXT-X-STREAM-INF 3.1.8. EXT-X-DISCONTINUITY 4. Arquivos de mídia 5. Arquivos chave 5.1. IV para AES-128 6. Ações Cliente/Servidor 6.1. Processo do Servidor 6.1.1. Listas de reprodução de Janela Deslizante 6.1.2. Criptografar Arquivos de mídia 6.1.3. Fornecer transmissões contínuas variantes 6.2. Processo do Cliente 6.2.1. Carregar o Arquivo de lista de reprodução 6.2.2. Reproduzir o Arquivo de lista de reprodução 6.2.3. Recarregar o Arquivo de lista de reprodução 6.2.4. Determinar o próximo arquivo a carregar 6.2.5. Reproduzir arquivos de mídia criptografados 7. Exemplos 7.1. Arquivo de lista de reprodução simples 7.2. Lista de reprodução de janela deslizante, com uso de HTTPS 7.3. Arquivo de lista de reprodução com arquivos de mídia criptografados 7.4. Arquivo de lista de reprodução variante 8. Considerações de Segurança 9. Referências Referências Normativas Referências Informativas 1. Introdução
[00173] Este documento descreve um protocolo para transmitir transmissões contínuas ilimitadas de dados de multimídia através de HTTP [RFC2616]. O protocolo suporta a criptografia de dados de mídia, e a provisão de versões alternativas (por exemplo, taxas de bit) de uma transmissão contínua. Os dados de mídia podem ser transmitidos logo após serem criados, permitindo que sejam recebidos em tempo quase real.
[00174] As referências externas que descrevem padrões relacionados tal como HTTP são listadas na Seção 9. 2. Sumário
[00175] Uma apresentação de multimídia é especificada por um URI [RFC3986] para um Arquivo de lista de reprodução, que é uma lista ordenada de URIs adicionais. Cada URI no Arquivo de lista de reprodução se refere a um arquivo de mídia que é um segmento de uma única transmissão contínua.
[00176] Para reproduzir a transmissão contínua, o cliente primeiro obtém o Arquivo de lista de reprodução e então obtém e reproduz cada arquivo de mídia na Lista de reprodução. Recarrega o Arquivo de lista de reprodução conforme descrito neste documento para descobrir segmentos adicionais.
[00177] As palavras chaves "DEVE", "NÃO DEVE", "NECESSÁRIO", "PRECISA", "NÃO PRECISA", "DEVERIA", "NÃO DEVERIA", "RECOMENDADO", "PODE" e "OPCIONAL" neste documento devem ser interpretadas conforme descrito na RFC 2119 [RFC2119]. 3. O Arquivo de lista de reprodução
[00178] As Listas de reprodução DEVEM ser Arquivos de lista de reprodução estendido M3U [M3U]. Este documento se estende ao formato de arquivo M3U definindo marcadores adicionais.
[00179] Uma Lista de reprodução M3U é um arquivo de texto que consiste em linhas individuais. As linhas são terminadas ou por um único marcador LF ou um marcador CR seguido por um marcador LF. Cada linha é um URI, um branco ou se inicia com o marcador de comentário '#'. Os URIs identificam os arquivos de mídia a serem reproduzidos. As linhas em branco são ignoradas.
[00180] As linhas que se iniciam com o marcador de comentário '#' ou são comentários ou marcadores. Os marcadores começam com #EXT. Todas as outras linhas que começam com '#' são comentários e DEVEM ser ignoradas.
[00181] Os arquivos de lista de reprodução M3U cujos nomes terminam em .m3u8 e/ou têm o Tipo de Conteúdo de HTTP "applica- tion/vnd.apple.mpegurl" são codificadas em UTF-8 [RFC3629]. Os arquivos cujos nomes terminam com .m3u e/ou têm o Tipo de Conteúdo de HTTP [RFC2616] "audio/mpegurl" são codificados em US-ASCII [US_ASCII].
[00182] As implementações DEVEM produzir Arquivos de lista de reprodução cujos nomes terminem em. m3u8 ou, se transmitidos por HTTP, têm o Tipo de Conteúdo "application/vnd.apple.mpegurl". Para compatibilidade, as implementações PODEM produzir Arquivos de lista de reprodução cujos nomes terminem em .m3u e/ou têm o Tipo de Conteúdo de HTTP "audio/mpegurl".
[00183] O formato de arquivo de extensão M3U define dois marcadores: EXTM3U e EXTINF. Um arquivo estendido M3U se distingue de um arquivo básico M3U por sua primeira linha, que DEVE ser #EXTM3U.
[00184] EXTINF é um marcador de registro que descreve o arquivo de mídia identificado pelo URL que o segue. Cada URI de arquivo de mídia DEVE ser precedido por um marcador EXTINF. Seu formato é: #EXTINF:<duration>,<title>
[00185] "duração" é um número inteiro que especifica a duração do arquivo de mídia em segundos. As durações DEVEM ser arredondadas para o número inteiro mais próximo. O restante da linha que segue a vírgula é o título do arquivo de mídia. 3.1. Novos Marcadores
[00186] Este documento define sete novos marcadores: EXT-X- TARGETDURATION, EXT-X-MEDIA-SEQUENCE, EXT-X-KEY, EXT- X-PROGRAM-DATE-TIME, EXT-X-ALLOW-CACHE, EXT-X-STREAM- INF, e EXT-X-ENDLIST. 3.1.1. EXT-X-TARGETDURATION
[00187] O marcador EXT-X-TARGETDURATION indica a duração aproximada do próximo arquivo de mídia que será adicionado à apre-sentação principal. Este DEVE aparecer no Arquivo de lista de reprodução. Seu formato é: #EXT-X-TARGETDURATION:<seconds>
[00188] A duração real do arquivo de mídia PODE diferir levemente da duração alvo. 3.1.2. EXT-X-MEDIA-SEQUENCE
[00189] Cada URI de arquivo de mídia em uma Lista de reprodução tem um número de sequência único. O número de sequência de um URI é igual ao número de sequência do URI que precedeu esse mais um. O marcador EXT-X-MEDIA-SEQUENCE indica o número de sequência do primeiro URL que aparece em um Arquivo de lista de reprodução. Seu formato é: #EXT-X-MEDIA-SEQUENCE:<number>
[00190] Se o Arquivo de lista de reprodução não contiver um marcador EXT-X-MEDIA-SEQUENCE então o número de sequência do primeiro URI na lista de reprodução DEVERÁ ser considerado como sendo 1.
[00191] Vide Seção 6.2.1 e Seção 6.2.4 para informações sobre lidar com o marcador EXT-X-MEDIA-SEQUENCE. 3.1.3. EXT-X-KEY
[00192] Os Arquivos de mídia PODEM ser criptografados. O marcador EXT-X-KEY fornece informações necessárias para descriptogra- far arquivos de mídia que o seguem. Seu formato é: #EXT-X-KEY:MÉTODO=<método>[,URI="<URI>"].
[00193] O parâmetro de MÉTODO especifica o método de criptografia. O parâmetro de URI, se presente, especifica como obter a chave.
[00194] A versão 1.0 do protocolo define dois métodos de criptografia: NONE e AES-128. Um método de criptografia NONE significa que os arquivos de mídia não são criptografados.
[00195] Um método de criptografia de AES-128 significa que os arquivos de mídia são criptografados com uso do Padrão de Criptografia Avançada [AES_128] com uma chave de 128-bit e preenchimento PKCS7 [RFC3852].
[00196] Um novo EXT-X-KEY substitui qualquer EXT-X-KEY anterior.
[00197] Se nenhum EXT-X-KEY estiver presente então os arquivos de mídia não são criptografados.
[00198] Vide seção 5 para o formato do arquivo chave, e Seção 5.1, Seção 6.1.2 e Seção 6.2.5 para informações adicionais sobre criptografia de arquivo de mídia. 3.1.4. EXT-X-PROGRAM-DATE-TIME
[00199] O marcador EXT-X-PROGRAM-DATE-TIME associa o começo do próximo arquivo de mídia com uma data e/ou hora absolutos. A representação de data/hora é ISO/IEC 8601:2004 [ISO_8601] e DEVE indicar um fuso horário. Por exemplo: #EXT-X-PROGRAM-DATE-TIME:<YYYY-MM- DDThh:mm:ssZ> 3.1.5. EXT-X-ALLOW-CACHE
[00200] O marcador EXT-X-ALLOW-CACHE indica se o cliente PODE fazer cache dos arquivos de mídia descarregado para posterior reprodução. Seu formato é: #EXT-X-ALLOW-CACHE:<YES|NO> 3.1.6. EXT-X-ENDLIST
[00201] O marcador EXT-X-ENDLIST indica que mais nenhum arquivo de mídia será adicionado ao Arquivo de lista de reprodução. Seu formato é: #EXT-X-ENDLIST 3.1.7. EXT-X-STREAM-INF
[00202] O marcador EXT-X-STREAM-INF indica que o próximo URI no Arquivo de Lista de reprodução identifica outro Arquivo de lista de reprodução. Seu formato é: #EXT-X-STREAM-INF:[attribute=value][,attribute=value]* <URI>
[00203] Os seguintes atributos são definidos para O marcador EXT- X-STREAM-INF: BANDWIDTH=<n>
[00204] em que n é uma ligação superior aproximada da taxa de bit de transmissão contínua, expressa como um número de bits por segundo. PROGRAM-ID=<i>
[00205] em que i é um número que identifica unicamente uma apresentação particular dentro do escopo do arquivo da Lista de reprodução.
[00206] Um arquivo da Lista de reprodução PODE conter múltiplos EXT-X-STREAM-INF URIs com o mesmo PROGRAM-ID para descrever transmissões contínuas variantes da mesma apresentação. CODECS="[formato][,formato]*"
[00207] em que cada formato especifica um tipo de amostra de mídia que está presente em um arquivo de mídia no arquivo da Lista de reprodução.
[00208] Os identificadores de formato válido são aqueles no Espaço do Nome do Formato do Arquivo ISO
[00209] definido por RFC 4281 [RFC4281]. 3.1.8. EXT-X-DISCONTINUITY
[00210] O marcador EXT-X-DISCONTINUITY indica que o arquivo de mídia seguinte a isto apresenta características diferentes que aquele que precede isto. O conjunto de características que PODE mudar é: o o formato do arquivo o o número e tipo de faixas o os parâmetros de codificação o a sequência de codificação o a sequência do carimbo de data e hora Seu formato é: #EXT-X-DISCONTINUITY 4. Arquivos de mídia
[00211] Cada arquivo de mídia URI em um arquivo da Lista de reprodução DEVE identificar um arquivo de mídia que é um segmento da apresentação geral. Cada arquivo de mídia DEVE ser formatado como uma Transmissão contínua de Transporte MPEG-2, uma Transmissão contínua de Programa MPEG-2, ou uma transmissão contínua elementar de áudio MPEG-2 [ISO_13818]. Todos os arquivos de mídia em uma apresentação DEVEM ter o mesmo formato.
[00212] Os arquivos da Transmissão contínua de Transporte DEVEM conter um único Programa MPEG-2. DEVERIA haver uma Tabela de Associação de Programa e uma Tabela de Mapa de Programa no início de cada arquivo. Um arquivo que contém vídeo DEVERIA ter pelo menos um quadro chave e informação suficiente para inicializar completamente um decodificador de vídeo.
[00213] Os clientes DEVERIAM estar preparados para manusear múltiplas faixas de um tipo particular (por exemplo, áudio ou vídeo) através da escolha de um subconjunto razoável. Os clientes DEVEM ignorar transmissões contínuas privadas dentro das Transmissões contínuas de Transporte que não reconhecerem.
[00214] Os parâmetros de codificação para as amostras no interior de uma transmissão contínua dentro de um arquivo de mídia e entre transmissões contínuas correspondentes ao longo de múltiplos arquivos de mídia DEVERIAM permanecer consistentes. No entanto, os clientes DEVERIAM lidar com as mudanças de codificação conforme as mesmas são encontradas, por exemplo, através da colocação em escala o conteúdo do vídeo para acomodar uma mudança de resolução. 5. Arquivos chave
[00215] Um marcador EXT-X-KEY com o parâmetro URI identifica um arquivo Chave. Um arquivo Chave contém a chave da cifra que DEVE ser usada para descriptografar arquivos de mídia subsequentes na Lista de reprodução.
[00216] O método de criptografia AES-128 usa chaves de 16 octetos. O formato do arquivo Chave é simplesmente uma matriz embalada destes 16 octetos em formato binário. 5.1. IV para AES-128
[00217] AES de 128-bit exige o mesmo Vetor de Inicialização (IV) de 16 octetos a ser fornecido ao criptografar e descriptografar. Variando-se este IV aumenta-se a resistência da cifra.
[00218] Ao utilizar o MÉTODO AES-128 de criptografia, as implementações DEVERÃO usar o número de sequência do arquivo de mídia como o IV ao criptografar ou descriptografar arquivos de mídia. A reapresentação binária big-endian do número de sequência DEVERÁ ser colocada em uma memória temporária de 16 octetos e preenchida (na esquerda) com zeros. 6. Ações do Cliente/Servidor
[00219] Esta seção descreve como o servidor gera a Lista de reprodução e os arquivos de mídia e como o cliente deveria transferir por download e reproduzir os mesmos. 6.1. Processo do Servidor
[00220] A produção do fluxo de MPEG-2 está fora do escopo deste documento, o que simplesmente presume uma fonte de um fluxo contínuo que contém a apresentação principal.
[00221] O servidor DEVE dividir o fluxo formando arquivos de mídia individuais cuja duração é aproximadamente igual. O servidor DEVERIA tentar dividir o fluxo em pontos que suportam decodificação eficaz de arquivos de mídia individuais, por exemplo, em pacotes e limites de quadro chave.
[00222] O servidor DEVE criar um URI para cada arquivo de mídia que permitirá que seus clientes obtenham o arquivo.
[00223] O servidor DEVE criar um arquivo da Lista de reprodução. O arquivo da Lista de reprodução DEVE se conformar ao formato descrito na Seção 3. Um URI para cada arquivo de mídia que o servidor deseja disponibilizar DEVE aparecer na Lista de reprodução na ordem na qual deve ser reproduzido. Todo o arquivo de mídia DEVE estar disponível para os clientes se seu URI estiver no arquivo da Lista de reprodução.
[00224] O arquivo da Lista de reprodução DEVE conter um marcador EXT-X-TARGETDURATION. Isto DEVE indicar a duração aproximada do próximo arquivo de mídia a ser adicionado à apresentação principal. Este valor DEVE permanecer constante durante toda a apresentação. A duração alvo típica tem 10 segundos.
[00225] O servidor DEVE criar um URI para o arquivo da Lista de reprodução que irá permitir que seus clientes obtenham o arquivo.
[00226] As mudanças no arquivo da Lista de reprodução DEVEM ser feitas atomicamente do ponto de vista dos clientes.
[00227] Cada arquivo de mídia URI em uma Lista de reprodução DEVE ser prefixado com um marcador EXTINF que indica a duração aproximada do arquivo de mídia.
[00228] O servidor PODE associar uma data e tempo absolutos a um arquivo de mídia através da prefixação de seu URI a um marcador EXT-X-PROGRAM-DATE-TIME. O valor da data e tempo é arbitrário.
[00229] Se a Lista de reprodução contém o arquivo de mídia final da apresentação, então o arquivo da Lista de reprodução DEVE obter o marcador EXT-X-ENDLIST.
[00230] Se o servidor deseja remover toda uma apresentação, se DEVE indisponibilizar o arquivo da Lista de reprodução para os clientes. DEVERIA-se assegurar que todos os arquivos de mídia no arquivo da Lista de reprodução permaneçam disponíveis para os clientes durante pelo menos a duração do arquivo da Lista de reprodução no momento da remoção. 6.1.1. Listas de reprodução de janela deslizante
[00231] O servidor PODE limitar a disponibilidade de arquivos de mídia para aqueles que foram adicionados mais recentemente à Lista de reprodução. Para fazer isto, o arquivo da Lista de reprodução DE- VE SEMPRE conter exatamente um marcador EXT-X-MEDIA- SEQUENCE. Seu valor DEVE ser incrementado em 1 para cada arquivo de mídia URI que é removido do arquivo da Lista de reprodução.
[00232] Os URIs do arquivo de mídia DEVEM ser removidos do arquivo da Lista de reprodução na ordem na qual os mesmos foram adicionados.
[00233] Quando o servidor remove um arquivo de mídia URI da Lista de reprodução, o arquivo de mídia DEVE permanecer disponível para os clientes durante um período de tempo igual à duração do arquivo de mídia mais a duração do arquivo da Lista de reprodução mais longo no qual o arquivo de mídia apareceu. A duração de um arquivo da Lista de reprodução é a soma das durações dos arquivos de mídia dentro disto.
[00234] Se um servidor planeja remover um arquivo de mídia, o mesmo DEEVRIA assegurar que um cabeçalho de HTTP Expires reflita o tempo de vida planejado quando é entregue aos clientes.
[00235] O servidor DEVE manter pelo menos três arquivos de mídia da apresentação principal na Lista de reprodução em todos os momentos exceto se o marcador EXT-X-ENDLIST estiver presente. 6.1.2. Arquivos de mídia de criptografia
[00236] Se os arquivos de mídia devem ser criptografados, o servidor DEVE definir um URI que permitirá que clientes autorizados obtenham um arquivo Chave que contém uma chave de descriptografia. O arquivo Chave DEVE se conformar ao formato descrito na Seção 5.
[00237] O servidor PODE ajustar o cabeçalho Expires na resposta chave para indicar que a chave pode estar em cache.
[00238] Se o MÉTODO de criptografia for AES-128, a criptografia AES-128 CBC DEVERÁ ser aplicada aos arquivos de mídia individuais. Todo o arquivo DEVE ser criptografado. O Encadeamento de Bloco de Cifra NÃO DEVE ser aplicado ao longo dos arquivos de mídia. O número de sequência do arquivo de mídia DEVE ser usado como o IV conforme descrito na Seção 5.1.
[00239] O servidor DEVE criptografar cada arquivo de mídia em uma Lista de reprodução com o uso do método especificado no marcador EXT-X-KEY que precede mais imediatamente seu URI no arquivo da Lista de reprodução. Os arquivos de mídia precedidos por um marcador EXT-X-KEY cujo MÉTODO é NENHUM, ou não precedidos por nenhum marcador EXT-X-KEY, NÃO DEVE ser criptografado.
[00240] O URI de cada marcador EXT-X-KEY deve ser distinto do URI de todos os outros marcadores EXT-X-KEY que aparecem ou que apareceram no arquivo da Lista de reprodução, a menos que seu MÉTODO seja NENHUM. Um marcador EXT-X-KEY com um MÉTODO de NENHUM NÃO DEVE conter um parâmetro URI.
[00241] O servidor NÃO DEVE remover um marcador EXT-X-KEY do arquivo da Lista de reprodução se o arquivo da Lista de reprodução contiver um URI em relação a um arquivo de mídia criptografado com aquela chave. 6.1.3. Fornecimento de fluxos variantes
[00242] Um servidor PODE oferecer múltiplos arquivos da Lista de reprodução para fornecer codificações diferentes da mesma apresentação. Se sim, isto DEVERIA fornecer um arquivo da Lista de reprodução variante que lista cada fluxo variante para permitir que os clientes comutem dinamicamente entre as codificações.
[00243] As listas de reprodução variantes DEVEM conter um marcador EXT-X-STREAM-INF para cada fluxo variante. Cada marcador EXT-X-STREAM-INF para a mesma apresentação DEVE ter o mesmo valor de atributo do PROGRAM-ID. O valor do PROGRAM-ID para cada apresentação DEVE ser único dentro da Lista de reprodução variante.
[00244] Se um marcador EXT-X-STREAM-INF contiver o atributo de CODECS, o valor de atributo DEVE incluir cada formato definido por [RFC4281] que está presente em qualquer arquivo de mídia que aparece ou que irá aparecer no arquivo da Lista de reprodução.
[00245] O servidor DEVE satisfazer as seguintes restrições ao produzir fluxos variantes:
[00246] Cada fluxo variante DEVE consistir no mesmo conteúdo, incluindo o conteúdo que não é parte da apresentação principal.
[00247] O servidor DEVE produzir o mesmo período de conteúdo disponível para todos os fluxos variantes, dentro de uma precisão da duração alvo menor dos fluxos.
[00248] O conteúdo correspondente nos fluxos variantes DEVE ter carimbos de data e hora correspondentes.
[00249] Isto permite que os clientes sincronizem os fluxos.
[00250] Os arquivos de Fluxo de Áudio Elementar DEVEM sinalizar o carimbo de data e hora da primeira amostra no arquivo através do preparo de um marcador ID3 PRIV [ID3] com um identificador do proprietário de "com.apple.streaming.transportStreamTimestamp". Os dados binários DEVEM ser um carimbo de data e hora do Fluxo Elementar de Programa MPEG-2 de 33 bits expresso como um número de oito octetos big-endian.
[00251] Além disso, todos os fluxos variantes DEVERIAM conter o mesmo fluxo de bit de áudio codificado. Isto permite que os clientes comutem entre os fluxos sem falha audível. 6.2. Processo do Cliente
[00252] Como o cliente obtém o URI para o arquivo da Lista de reprodução está fora do escopo deste documento; presume-se que isto tenha sido feito.
[00253] O cliente DEVE obter o arquivo da Lista de reprodução do URI. Se o arquivo da Lista de reprodução obtido desta forma for uma Lista de reprodução variante, o cliente DEVE
[00254] obter o arquivo da Lista de reprodução da Lista de reprodução variante.
[00255] Este documento não especifica o tratamento de fluxos variantes através de clientes. 6.2.1. Carregar o arquivo da Lista de reprodução
[00256] Toda vez que um arquivo da Lista de reprodução for carregado ou recarregado do URI da Lista de reprodução:
[00257] O cliente DEVERIA verificar que o arquivo da Lista de reprodução começa com #EXTM3U e se recusa a continuar se não. O cliente DEVERIA ignorar todas as marcadores que Le não reconheça.
[00258] O cliente DEVE determinar o próximo arquivo de mídia a carregar conforme descrito na Seção 6.2.4.
[00259] Se a Lista de reprodução contiver o marcador EXT-X- MEDIA-SEQUENCE, o cliente DEVERIA presumir que cada arquivo de mídia nisto se tornará indisponível no momento em que o arquivo da Lista de reprodução foi carregado mais a duração do arquivo da Lista de reprodução. A duração de um arquivo da Lista de reprodução é a soma das durações dos arquivos de mídia dentro disto. 6.2.2. Reproduzir o arquivo da Lista de reprodução
[00260] O cliente DEVERÁ escolher qual arquivo de mídia reproduzir primeiramente a partir da Lista de reprodução quando a reprodução inicia. Se o arquivo da Lista de reprodução contiver o marcador EXT- X-ENDLIST, qualquer arquivo na Lista de reprodução PODE ser primeiramente reproduzido. Se a merca EXT-X-ENDLIST não estiver presente, qualquer arquivo exceto o último e o penúltimo arquivo na Lista de reprodução Pode ser primeiramente reproduzido.
[00261] Uma vez que o primeiro arquivo de mídia a reproduzir foi escolhido, os arquivos de mídia subsequentes na Lista de reprodução DEVEM ser carregados na ordem que os mesmos aparecem e reproduzidos na ordem que os mesmos estão carregados.
[00262] O cliente DEVERIA tentar carregar arquivos de mídia ante-cipadamente quando os mesmos forem necessários para reproduzirem ininterruptamente para compensar pelas variações temporárias na latência e transferência.
[00263] Se o arquivo da Lista de reprodução contiver o marcador EXT-X-ALLOW-CACHE e se valor for NENHUM, o cliente NÃO DEVE colocar em cache os arquivos de mídia transferidos por download após os mesmos terem sido reproduzidos. Caso contrário, o cliente PODE colocar em cachê os arquivos de mídia transferidos por download indefinidamente para reprodução posterior
[00264] O cliente PODE usar o valor do marcador EXT-X- PROGRAM-DATE-TIME para exibir o tempo de originação do programa para o usuário. Se o valor incluir informação de zona de tempo, o cliente DEVERÁ levar isto em consideração, mas se não, o cliente NÃO DEVE inferir uma zona de tempo de originação.
[00265] O cliente NÃO DEVE depender da exatidão ou da consistência do valor do marcador EXT-X-PROGRAM-DATE-TIME. 6.2.3. Recarregar o arquivo da Lista de reprodução
[00266] O cliente DEVE recarregar periodicamente o arquivo da Lista de reprodução a menos que o mesmo contenha o marcador EXT-X- ENDLIST.
[00267] No entanto, o cliente NÃO DEVE tentar carregar o arquivo da Lista de reprodução com mais frequência que especificado por esta seção
[00268] Quando um cliente carrega um arquivo da Lista de reprodução pela primeira vez ou recarrega um arquivo da Lista de reprodução e verifica que isto mudou desde a última vez que foi carregado, o cliente DEVE esperar durante um período de tempo antes de tentar recarregar o arquivo da Lista de reprodução novamente. Este período é denominado o atraso de recarga mínimo inicial. É medido a partir do tempo que o cli- ente começou a carregar o arquivo da Lista de reprodução.
[00269] O atraso de recarga mínimo inicial é a duração do último arquivo de mídia na Lista de reprodução ou 3 vezes a duração alvo, seja a que for menor. A duração do arquivo de mídia é especificada pelo marcador EXTINF.
[00270] Se o cliente recarrega um arquivo da Lista de reprodução e encontra que o mesmo não foi alterado, então se DEVE esperar durante um período de tempo antes de tentar novamente. O atraso mínimo é três vezes a duração alvo ou um múltiplo do atraso de recarga mínimo inicial, seja qual for menor. Este múltiplo é 0,5 para a primeira tentativa, 1,5 para a segunda e 3,0 posteriormente. 6.2.4. Determinar o próximo arquivo a carregar
[00271] O cliente DEVE examinar o arquivo da Lista de reprodução toda vez que o mesmo for carregado ou recarregado para determinar o próximo arquivo de mídia a carregar.
[00272] O primeiro arquivo a carregar DEVE ser o arquivo que o cliente escolheu para reproduzir primeiro, conforme descrito na Seção 6.2.2.
[00273] Se o primeiro arquivo a ser reproduzido foi carregado e o arquivo da Lista de reprodução não contiver o marcador EXT-X- MEDIA-SEQUENCE, então o cliente DEVE verificar que o arquivo da Lista de reprodução atual contém o URI do último arquivo de mídia carregado na compensação que o mesmo foi originalmente encontrado, parando a reprodução se não. O próximo arquivo de mídia a carregar DEVE ser o primeiro URI do arquivo de mídia seguinte ao URI carregado por último na Lista de reprodução.
[00274] Se o primeiro arquivo a ser reproduzido for carregado e o arquivo da Lista de reprodução contiver o marcador EXT-X-MEDIA- SEQUENCE, então o próximo arquivo de mídia a carregar DEVERÁ ser aquele com o número de sequência mais baixo, isto é, maior que o número de sequência do último arquivo de mídia carregado. 6.2.5. Reproduzir arquivos de mídia criptografados
[00275] Se um arquivo da Lista de reprodução contiver um marcador EXT-X-KEY que especifica um URI de arquivo chave, o cliente DEVE obter aquele arquivo chave e usar a chave dentro disto para descriptografar todos os arquivos de mídia seguintes à marcador EXT- X-KEY até que outro marcador EXT-X-KEY seja encontrada.
[00276] Se o MÉTODO de criptografia for AES-128, a criptografia AES-128 CBC DEVERÁ ser aplicada aos arquivos de mídia individuais. Todo o arquivo DEVE ser descriptografado. O Encadeamento do Bloco de Cifra NÃO DEVE ser aplicado ao longo dos arquivos de mídia. O número de sequência do arquivo de mídia DEVE ser usado como o IV conforme descrito na Seção 5.1.
[00277] Se o MÉTODO de criptografia for NENHUM, o cliente DEVE tratar todos os arquivos de mídia seguintes à marcador EXT-X- KEY como texto não criptografado (não criptografado) até que outro marcador EXT-X-KEY seja encontrada. 7. Exemplos
[00278] Esta seção contém diversos exemplos de arquivos da Lista de reprodução. 7.1. Arquivo da Lista de reprodução simples #EXTM3U #EXT-X-TARGETDURATION:10 #EXTINF:5220, http://midia.example.com/entire.ts #EXT-X-ENDLIST 7.2. Lista de reprodução de Janela Deslizante, com o uso de HTTPS #EXTM3U #EXT-X-TARGETDURATION:8 #EXT-X-MEDIA-SEQUENCE:2680 #EXTINF:8, https://priv.example.com/fileSequence2680.ts #EXTINF:8, https://priv.example.com/fileSequence2681.ts #EXTINF:8, https://priv.example.com/fileSequence2682.ts 7.3. Arquivo da Lista de reprodução com arquivos de mídia criptografados #EXTM3U #EXT-X-MEDIA-SEQUENCE:7794 #EXT-X-TARGETDURATION:15 #EXT-X-KEY:MÉTODO=AES- 128,URI="https://priv.example.com/key.php?r=52" #EXTINF:15, http://midia.example.com/fileSequence7794.ts #EXTINF:15, http://midia.example.com/fileSequence7795.ts #EXTINF:15, http://midia.example.com/fileSequence7796.ts #EXT-X-KEY:MÉTODO=AES- 128,URI="https://priv.example.com/key.php?r=53" #EXTINF:15, http://midia.example.com/fileSequence7797.ts 7.4. Arquivo da Lista de reprodução variante #EXTM3U #EXT-X-STREAM-INF:PROGRAM- ID=1,BANDWIDTH=1280000 http://example.com/low.m3u8 #EXT-X-STREAM-INF:PROGRAM- ID=1,BANDWIDTH=2560000 http://example.com/mid.m3u8 #EXT-X-STREAM-INF:PROGRAM- ID=1,BANDWIDTH=7680000 http://example.com/hi.m3u8 #EXT-X-STREAM-INF:PROGRAM- ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5" http://example.com/áudio-only.m3u8 8. Considerações de Segurança
[00279] Já que o protocolo utiliza geralmente HTTP para transmitir dados, a maioria das mesmas considerações de segurança se aplica. Vide seção 15 de RFC 2616 [RFC2616].
[00280] Analisadores de arquivo de mídia submetidos geralmente a ataques de "fuzzing".
[00281] Os clientes DEVERIAM tomar cuidado ao analisarem arquivos recebidos de um servidor de modo que os arquivos não complacentes sejam rejeitados.
[00282] Os arquivos da Lista de reprodução contêm URIs, que os clientes irão utilizar para fazer as solicitações de rede de entidades arbitrárias. Os clientes DEVERIAM verificar de forma abrangente as respostas para evitar sobrefluxo da memória temporária. Vide também a seção das Considerações de Segurança de RFC 3986 [RFC3986].
[00283] Os clientes DEVERIAM carregar recursos identificados através de URI para evitar preguiçosamente a contribuição para ataques de negação de serviço.
[00284] As solicitações de HTTP incluem frequentemente um estado de sessão ("cookies"), que podem conter dados privativos do usuário. As implementações DEVEM seguir as regras de restrição e expiração do cookie especificadas por RFC 2965 [RFC2965]. Vide também a seção das Considerações de Segurança de RFC 2965, e RFC 2964 [RFC2964].
[00285] As chaves de criptografia são especificadas por URI. A entrega destas chaves DEVERIA ser assegurada por um mecanismo como HTTP sobre TLS [RFC5246] (anteriormente SSL) em conjunção com um cookie de território seguro ou uma sessão. 9. Referências Referências Normativas [AES_128] Departamento do Comércio U.S. /Instituto Nacional de Padrões e Tecnologia, "Advanced Encryption Standard (AES), FIPS PUB 197", novembro de 2001, <http:// csrc.nist.gov/publications/fips/fips197/fips-197.pdf>. [ISO_13818]
[00286] Organização Internacional para Padronização, "Padrão Internacional ISO/IEC 13818; Generic coding of moving pictures e associated audio information", novembro de 1994, <http://www.iso.org/iso/catalogue_detail?csnumber=44169>. [ISO_8601]
[00287] Organização Internacional para Padronização, " Padrão In-ternacional ISO/IEC 8601:2004; Data elements and interchange formats -- Information interchange -- Representation of dates e times", dezembro de 2004, <http://www.iso.org/iso/catalogue_detail?csnumber=40874>. [RFC2046] Freed, N. e N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, novembro de 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, março de 1997. [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., e T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, junho de 1999. [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, novembro de 2003. [RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3852, julho de 2004. [RFC3986] Berners-Lee, T., Fielding, R., e L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, janeiro de 2005. [RFC4281] Gellens, R., Singer, D., e P. Frojdh, "The Codecs Parameter for "Bucket" Media Types", RFC 4281, novembro de 2005. [US_ASCII]
[00288] Instituto Nacional Americano de Padrões, "ANSI X3.4-1986, Information Systems -- Coded Character Sets 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)", dezembro de 1986. Referências Informativas [ID3] ID3.org, "The ID3 audio file data tagging format", <http://www.id3.org/Developer_Information>. [M3U] Nullsoft, Inc., "The M3U Playlist format, originally invented for the Winamp media player", <http://wikipedia.org/wiki/M3U>.

Claims (43)

1. Método implementado por máquina caracterizado pelo fato de que compreende as etapas de: dividir (225), em um dispositivo de servidor (120), um fluxo de dados em múltiplos arquivos de mídia (235), cada um dos múltiplos arquivos de mídia para ser armazenado como arquivos individuais em uma memória em um formato complacente de protocolo de transferência; gerar (245) um arquivo de lista de reprodução (600) tendo uma pluralidade de marcadores (610-645, 670-680) e uma pluralidade de Indicadores de Recurso Universais (URIs) (650), a pluralidade de URIs indicando um ordenamento dos múltiplos arquivos de mídia (235) para recriar o fluxo de dados; determinar um valor de duração a partir de um marcador (620) no arquivo de lista de reprodução (600) e determinar quando atualizar o arquivo de lista de reprodução (255, 600) com base no valor de duração; e gerar (245) um arquivo de lista de reprodução (600) atualizado correspondendo a mudanças nos múltiplos arquivos de mídia (285), o arquivo de lista de reprodução atualizado compreendendo uma pluralidade de URIs atualizados indicando um ordenamento de múltiplos arquivos de mídia (235) atualizados para recriar uma representação do fluxo de dados.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem adicionar um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para os múltiplos arquivos de mídia e os um ou mais arquivos de mídia adicionados.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem modificações no um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado compreende URIs para os múltiplos arquivos de mídia, e um ou mais dos marcadores na pluralidade de marcadores é atualizado para refletir as modificações no um ou mais arquivos de mídia.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem remoção de um ou mais arquivos de mídia selecionados dos múltiplos arquivos de mídia e adição de um ou mais arquivos de mídia adicionais para resultar em um ou mais arquivos de mídia remanescentes e o arquivo de lista de reprodução atualizado compreende URIs para os arquivos de mídia remanescentes e em que o fluxo de dados é um fluxo com base em tempo contíguo de conteúdo para um único programa e em que o protocolo de transferência é um protocolo complacente de HTTP.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a lista de reprodução atualizada é gerada na expiração de um período de tempo selecionado.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o período de tempo selecionado é baseado no valor de duração no arquivo de lista de reprodução.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende as etapas de: determinar uma duração aproximada de um próximo arquivo de mídia a ser adicionado ao arquivo de lista de reprodução; fazer com que o arquivo de lista de reprodução inclua um marcador indicando a duração aproximada.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o marcador compreende um marcador EXT-X- TARGETDURATION.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende as etapas de: determinar números sequenciais para um ou mais dos URIs no arquivo de lista de reprodução; e fazer com que o arquivo de lista de reprodução inclua um ou mais marcadores indicando um ou mais dos números sequenciais.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o um ou mais marcadores compreendem um ou mais marcadores EXT-X-MEDIA-SEQUENCE.
11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende as etapas de: determinar se um dispositivo de cliente (180) a receber os arquivos de mídia está autorizado a armazenar os arquivos de mídia após reprodução; fazer com que a lista de reprodução inclua um marcador que indica se o dispositivo de cliente (180) está autorizado a armazenar os arquivos de mídia após reprodução.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que o marcador compreende um marcador EXT-X- ALLOW-CACHE.
13. Meio de armazenamento não transitório legível por máquina caracterizado pelo fato de que tem instruções executáveis armazenadas no mesmo que, quando executadas, levam um ou mais processadores a: dividir (225), em um dispositivo de servidor (120), um fluxo de dados em múltiplos arquivos de mídia (235), cada um dos múltiplos arquivos de mídia para ser armazenado como arquivos individuais em uma memória em um formato complacente de protocolo de transferência; gerar (245) um arquivo de lista de reprodução tendo uma pluralidade de marcadores (610-645, 670-680) e uma pluralidade de Indicadores de Recurso Universais (URIs) (650), a pluralidade de URIs indicando um ordenamento dos múltiplos arquivos de mídia para recriar o fluxo de dados; determinar um valor de duração a partir de um marcador (620) no arquivo de lista de reprodução (600) e determinar quando atualizar o arquivo de lista de reprodução (255, 600) com base no valor de duração; e gerar (245) um arquivo de lista de reprodução (600) atualizado correspondendo a mudanças nos múltiplos arquivos de mídia (285), o arquivo de lista de reprodução atualizado compreendendo uma pluralidade de URIs atualizados indicando um ordenamento de múltiplos arquivos de mídia (235) atualizados para recriar uma representação do fluxo de dados.
14. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem adicionar um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para os múltiplos arquivos de mídia e os um ou mais arquivos de mídia adicionados.
15. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem modificações no um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado compreende URIs para os múltiplos arquivos de mídia, e um ou mais dos marcadores na pluralidade de marcadores é atualizado para refletir as modificações no um ou mais arquivos de mídia.
16. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem remoção de um ou mais arquivos de mídia selecionados dos múltiplos arquivos de mídia e adição de um ou mais arquivos de mídia adicio- nais para resultar em um ou mais arquivos de mídia remanescentes e o arquivo de lista de reprodução atualizado compreende URIs para os arquivos de mídia remanescentes e em que o fluxo de dados é um fluxo com base em tempo contíguo de conteúdo para um único programa e em que o protocolo de transferência é um protocolo complacente de HTTP.
17. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que a lista de reprodução atualizada é gerada na expiração de um período de tempo selecionado.
18. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 17, caracterizado pelo fato de que o período de tempo selecionado é baseado no valor de duração no arquivo de lista de reprodução.
19. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que ainda compreende instruções executáveis que, quando executadas, levam os um ou mais processadores a: determinar uma duração aproximada de um próximo arquivo de mídia a ser adicionado ao arquivo de lista de reprodução; fazer com que o arquivo de lista de reprodução inclua um marcador indicando a duração aproximada.
20. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 19, caracterizado pelo fato de que o marcador compreende um marcador EXT-X- TARGETDURATION.
21. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que ainda compreende instruções executáveis que, quando executadas, levam os um ou mais processadores a: determinar números sequenciais para um ou mais dos URIs no arquivo de lista de reprodução; e fazer com que o arquivo de lista de reprodução inclua um ou mais marcadores indicando um ou mais dos números sequenciais.
22. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 21, caracterizado pelo fato de que o um ou mais marcadores compreendem um ou mais marcadores EXT-X-MEDIA-SEQUENCE.
23. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 13, caracterizado pelo fato de que ainda compreende instruções executáveis que, quando executadas, levam os um ou mais processadores a: determinar se um dispositivo de cliente (180) a receber os arquivos de mídia está autorizado a armazenar os arquivos de mídia após reprodução; fazer com que a lista de reprodução inclua um marcador que indica se o dispositivo de cliente (180) está autorizado a armazenar os arquivos de mídia após reprodução.
24. Aparelho caracterizado pelo fato de que compreende: meio, em um dispositivo de servidor (120), para dividir (235) um fluxo de dados em múltiplos arquivos de mídia (235), cada um dos múltiplos arquivos de mídia para ser armazenado como arquivos individuais em uma memória em um formato complacente de protocolo de transferência; meio para gerar (245) um arquivo de lista de reprodução (600) tendo uma pluralidade de marcadores (610-645, 670-680) e uma pluralidade de Indicadores de Recurso Universais (URIs) (650), a pluralidade de URIs indicando um ordenamento dos múltiplos arquivos de mídia (235) para recriar o fluxo de dados; meio para um valor de duração a partir de um marcador (620) no arquivo de lista de reprodução (600) e para determinar quando atualizar o arquivo de lista de reprodução (255, 600) com base no valor de duração; e meio para gerar (245) um arquivo de lista de reprodução (600) atualizado correspondendo a mudanças nos múltiplos arquivos de mídia (285), o arquivo de lista de reprodução atualizado compreendendo uma pluralidade de URIs atualizados indicando um ordenamento de múltiplos arquivos de mídia (235) atualizados para recriar uma representação do fluxo de dados.
25. Aparelho, de acordo com a reivindicação 24, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem adicionar um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para os múltiplos arquivos de mídia e os um ou mais arquivos de mídia adicionados.
26. Aparelho, de acordo com a reivindicação 24, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem modificações no um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado compreende URIs para os múltiplos arquivos de mídia, e um ou mais dos marcadores na pluralidade de marcadores é atualizado para refletir as modificações no um ou mais arquivos de mídia.
27. Aparelho, de acordo com a reivindicação 24, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem remoção de um ou mais arquivos de mídia selecionados dos múltiplos arquivos de mídia e adição de um ou mais arquivos de mídia adicionais para resultar em um ou mais arquivos de mídia remanescentes e o arquivo de lista de reprodução atualizado compreende URIs para os arquivos de mídia remanescentes e em que o fluxo de dados é um fluxo com base em tempo contíguo de conteúdo para um único programa e em que o protocolo de transferência é um proto colo complacente de HTTP e em que a lista de reprodução atualizada é gerada na expiração de um período de tempo selecionado e em que o período de tempo selecionado é baseado em um atributo de um dos marcadores no arquivo de lista de reprodução.
28. Método implementado por máquina caracterizado pelo fato de que compreende as etapas de: armazenar múltiplos arquivos de mídia (235) como arquivos individuais em uma memória em um formato complacente de protocolo de transferência, os múltiplos arquivos de mídia tendo sido divididos de um fluxo de dados com base em tempo contíguo; transmitir (275) um arquivo de lista de reprodução (600) para um dispositivo de cliente (180) usando o protocolo de transferência, o arquivo de lista de reprodução tendo uma pluralidade de marcadores (610-645, 670-680) e uma pluralidade de Indicadores de Recurso Universais (URIs) (650), a pluralidade de URIs indicando um ordenamento dos múltiplos arquivos de mídia para recriar o fluxo de dados; transferir (275) um ou mais dos múltiplos arquivos de mídia para o dispositivo de cliente (180) usando o protocolo de transferência em reposta a uma ou mais solicitações do dispositivo de cliente (180) utilizando um ou mais da pluralidade de URIs; transmitir (275) um arquivo de lista de reprodução (600) atualizado para o dispositivo de cliente (180), o arquivo de lista de re-produção atualizado correspondendo a mudanças nos múltiplos arquivos de mídia, o arquivo de lista de reprodução atualizado compreendendo uma pluralidade de URIs (650) atualizados indicando um ordenamento de múltiplos arquivos de mídia atualizados para recriar uma representação do fluxo de dados, em que o arquivo de lista de reprodução (600) atualizado é atualizado em um tempo com base em um valor de duração em um marcador no arquivo de lista de reprodução.
29. Método, de acordo com a reivindicação 28, caracteri- zado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem pelo menos um dentre: (a) a adição de um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para os múltiplos arquivos de mídia e o um ou mais arquivos de mídia adicionados; (b) modificações no um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado compreende URIs para os múltiplos arquivos de mídia, e um ou mais dos marcadores na pluralidade de marcadores é atualizado para refletir as modificações no um ou mais arquivos de mídia; ou (c) remoção de um ou mais arquivos de mídia selecionados dos múltiplos arquivos de mídia e a adição de um ou mais arquivos de mídia adicionais para resultar em um ou mais arquivos de mídia remanescentes e o arquivo de lista de reprodução atualizado compreende URIs para os arquivos de mídia remanescentes e em que o fluxo de dados é um fluxo com base em tempo contíguo de conteúdo para um único programa e em que o protocolo de transferência é um protocolo complacente de HTTP.
30. Método, de acordo com a reivindicação 28, caracterizado pelo fato de que a lista de reprodução atualizada é gerada na expiração de um período de tempo selecionado e em que o período de tempo selecionado é baseado no valor de duração em um marcador (620) no arquivo de lista de reprodução e em que o protocolo de transferência é um protocolo complacente de HTTP.
31. Meio de armazenamento não transitório legível por máquina caracterizado pelo fato de que tem instruções executáveis armazenadas no mesmo que, quando executadas, levam um ou mais processadores a: armazenar (230) múltiplos arquivos de mídia como arquivos individuais em uma memória em um formato complacente de protocolo de transferência, os múltiplos arquivos de mídia tendo sido divididos (225) de um fluxo de dados com base em tempo contíguo; transmitir (275) um arquivo de lista de reprodução (600) para um dispositivo de cliente (180) usando o protocolo de transferência transmissão não contínua, o arquivo de lista de reprodução tendo uma pluralidade de marcadores (610-645, 670-680) e uma pluralidade de Indicadores de Recurso Universais (URIs) (650), a pluralidade de URIs indicando um ordenamento dos múltiplos arquivos de mídia para recriar o fluxo de dados; transferir (275) um ou mais dos múltiplos arquivos de mídia para o dispositivo de cliente (180) usando o protocolo de transferência em reposta a uma ou mais solicitações do dispositivo de cliente (180) utilizando um ou mais da pluralidade de URIs; transmitir (275) um arquivo de lista de reprodução (600) atualizado para o dispositivo de cliente (180), o arquivo de lista de re-produção atualizado correspondendo a mudanças nos múltiplos arquivos de mídia, o arquivo de lista de reprodução atualizado compreendendo uma pluralidade de URIs (650) atualizados indicando um ordenamento dos múltiplos arquivos de mídia atualizados para recriar uma representação do fluxo de dados em que o arquivo de lista de reprodução atualizado é atualizado em um tempo com base em um valor de duração em um marcador no arquivo de lista de reprodução.
32. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 31, caracterizado pelo fato de que as mudanças nos múltiplos arquivos de mídia compreendem pelo menos um dentre: (a) a adição de um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para os múltiplos arquivos de mídia e o um ou mais arquivos de mídia adicionados; (b) modificações no um ou mais arquivos de mídia e o arquivo de lista de reprodução atualizado compreende URIs para os múltiplos arquivos de mídia, e um ou mais dos marcadores na pluralidade de marcadores é atualizado para refletir as modificações no um ou mais arquivos de mí- dia; ou (c) remoção de um ou mais arquivos de mídia selecionados dos múltiplos arquivos de mídia e a adição de um ou mais arquivos de mídia adicionais para resultar em um ou mais arquivos de mídia remanescentes e o arquivo de lista de reprodução atualizado compreende URIs para os arquivos de mídia remanescentes e em que o fluxo de dados é um fluxo com base em tempo contíguo de conteúdo para um único programa e em que o protocolo de transferência é um protocolo complacente de HTTP.
33. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 31, caracterizado pelo fato de que a lista de reprodução atualizada é gerada na expiração de um período de tempo selecionado e em que o período de tempo selecionado é baseado no valor de duração em marcador (620) no arquivo de lista de reprodução e em que o protocolo de transferência é um protocolo complacente de HTTP.
34. Aparelho caracterizado pelo fato de que compreende: meio para armazenar (235) múltiplos arquivos de mídia como arquivos individuais em uma memória em um formato complacente de protocolo de transferência, os múltiplos arquivos de mídia tendo sido divididos (225) de um fluxo de dados com base em tempo contíguo (205); meio para transmitir (275) um arquivo de lista de reprodução (600) para um dispositivo de cliente (180) usando o protocolo de transferência, o arquivo de lista de reprodução tendo uma pluralidade de marcadores (610-645, 670-680) e uma pluralidade de Indicadores de Recurso Universais (URIs) (650), a pluralidade de URIs indicando um ordenamento dos múltiplos arquivos de mídia para recriar o fluxo de dados; meio para transferir (275) um ou mais dos múltiplos arquivos de mídia para o dispositivo de cliente (180) usando o protocolo de transferência em reposta a uma ou mais solicitações do dispositivo de cliente (180) utilizando um ou mais da pluralidade de URIs; meio para transmitir (275) um arquivo de lista de reprodução atualizado para o dispositivo de cliente (180), o arquivo de lista de reprodução atualizado correspondendo a mudanças nos múltiplos arquivos de mídia, o arquivo de lista de reprodução atualizado compreendendo uma pluralidade de URIs atualizados indicando um ordenamento dos múltiplos arquivos de mídia atualizados para recriar uma representação do fluxo de dados, em que o arquivo de lista de reprodução atualizado é atualizado em um tempo com base em um valor de duração em um marcador no arquivo de lista de reprodução.
35. Método implementado por máquina caracterizado pelo fato de que compreende as etapas de: solicitar (300), com um dispositivo de cliente (180), um arquivo de lista de reprodução (600) usando um protocolo de transferência; receber (310), em resposta à solicitação, o arquivo de lista de reprodução (600) tendo (1) Indicadores de Recurso Universais (URIs) (650) indicando uma pluralidade de conteúdos de mídia para um fluxo de dados com base em tempo contíguo de um programa e (2) uma pluralidade de marcadores (610-645, 670-680) tendo parâmetros relacionados à pluralidade de conteúdos de mídia; solicitar (330) e receber um ou mais dos conteúdos de mídia em uma ordem indicada na lista de reprodução; receber (300) um arquivo de lista de reprodução (600) atualizado correspondendo a mudanças nos conteúdos de mídia, o arquivo de lista de reprodução (600) atualizado compreendendo uma pluralidade de URIs (650) atualizados indicando um ordenamento de uma pluralidade de conteúdos de mídia atualizada, em que o arquivo de lista de reprodução (600) atualizado é atualizado em um tempo com base em um valor de duração em um marcador (620) no arquivo de lista de reprodução (600).
36. Método, de acordo com a reivindicação 35, caracterizado pelo fato de que ainda compreende a etapa de: gerar uma apresentação do programa a partir da pluralidade de conteúdos de mídia atualizada.
37. Método, de acordo com a reivindicação 36, caracterizado pelo fato de que as mudanças nos conteúdos de mídia compreendem pelo menos um dentre: (a) a adição de um ou mais conteúdos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para a pluralidade de conteúdos de mídia atualizada; (b) modificações de um ou mais da pluralidade de conteúdos de mídia; ou (c) remoção de um primeiro conjunto de conteúdos de mídia do arquivo de lista de reprodução e a adição de um ou mais conteúdos de mídia adicionais ao arquivo de lista de reprodução e em que o protocolo de transferência é um protocolo complacente de HTTP.
38. Método, de acordo com a reivindicação 37, caracterizado pelo fato de que a lista de reprodução atualizada é solicitada pelo dispositivo de cliente (180) na expiração de um tempo com base no valor de duração no arquivo de lista de reprodução.
39. Meio de armazenamento não transitório legível por máquina caracterizado pelo fato de que tem instruções executáveis armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores realizem um método que compreende as etapas de: solicitar (300), com um dispositivo de cliente (180), um arquivo de lista de reprodução (600) usando um protocolo de transferência; receber (310), em resposta à solicitação, o arquivo de lista de reprodução (600) tendo Indicadores de Recurso Universais (URIs) (650) indicando uma pluralidade de conteúdos de mídia para um fluxo de dados com base em tempo contíguo de um programa e uma pluralidade de marcadores (610-645, 670-680) tendo parâmetros relacionados à pluralidade de conteúdos de mídia; solicitar (330) e receber um ou mais dos conteúdos de mídia em uma ordem indicada na lista de reprodução; receber (300) um arquivo de lista de reprodução (600) atualizado correspondendo a mudanças nos conteúdos de mídia, o arquivo de lista de reprodução (600) atualizado compreendendo uma pluralidade de URIs (650) atualizados indicando um ordenamento de uma pluralidade de conteúdos de mídia atualizada, em que o arquivo de lista de reprodução (600) atualizado é atualizado em um tempo com base em um valor de duração em um marcador (620) no arquivo de lista de reprodução (600).
40. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 39, caracterizado pelo fato de que o método ainda compreende a etapa de: gerar uma apresentação do programa a partir da lista de reprodução atualizada.
41. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 40, caracterizado pelo fato de que as mudanças nos conteúdos de mídia compreendem pelo menos um dentre: (a) a adição de um ou mais conteúdos de mídia e o arquivo de lista de reprodução atualizado inclui URIs para a pluralidade de conteúdos de mídia atualizada; (b) modificações de um ou mais da pluralidade de conteúdos de mídia; ou (c) remoção de um primeiro conjunto de conteúdos de mídia do arquivo de lista de reprodução e a adição de um ou mais conteúdos de mídia adicionais ao arquivo de lista de reprodução e em que o protocolo de transferência é um protocolo complacente de HTTP.
42. Meio de armazenamento não transitório legível por máquina, de acordo com a reivindicação 41, caracterizado pelo fato de que a lista de reprodução atualizada é solicitada pelo dispositivo de cliente (180) na expiração de um tempo baseado no valor de duração no arquivo de lista de reprodução.
43. Sistema de processamento de dados caracterizado pelo fato de que compreende: meio para solicitar (300), com um dispositivo de cliente (180), um arquivo de lista de reprodução (600) usando um protocolo de transferência; meio para receber (310), em resposta à solicitação, o arquivo de lista de reprodução (600) tendo Indicadores de Recurso Universais (URIs) (650) indicando uma pluralidade de conteúdos de mídia para um fluxo de dados com base em tempo contíguo de um programa e uma pluralidade de marcadores (610-645, 670-680) tendo parâmetros relacionados à pluralidade de conteúdos de mídia; meio para solicitar (330) e receber um ou mais dos conteúdos de mídia em uma ordem indicada na lista de reprodução; meio para receber (300) um arquivo de lista de reprodução (600) atualizado correspondendo a mudanças nos conteúdos de mídia, o arquivo de lista de reprodução (600) atualizado compreendendo uma pluralidade de URIs (650) atualizados indicando um ordenamento de uma pluralidade de conteúdos de mídia atualizada, em que o arquivo de lista de reprodução (600) atualizado é atualizado em um tempo com base em um valor de duração em um marcador (620) no arquivo de lista de reprodução (600).
BRPI0923917-0A 2008-12-31 2009-12-28 Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real BRPI0923917B1 (pt)

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
US14211008P 2008-12-31 2008-12-31
US16069309P 2009-03-16 2009-03-16
US16103609P 2009-03-17 2009-03-17
US16752409P 2009-04-07 2009-04-07
US61/167,524 2009-04-07
US12/479,732 US8099476B2 (en) 2008-12-31 2009-06-05 Updatable real-time or near real-time streaming
US12/479,735 2009-06-05
US12/479,732 2009-06-05
US12/479,698 US8099473B2 (en) 2008-12-31 2009-06-05 Variant streams for real-time or near real-time streaming
US12/479,735 US20100169303A1 (en) 2008-12-31 2009-06-05 Playlists for real-time or near real-time streaming
US12/479,690 US20100169458A1 (en) 2008-12-31 2009-06-05 Real-Time or Near Real-Time Streaming
US12/479,698 2009-06-05
US12/479,690 2009-06-05
US24064809P 2009-09-08 2009-09-08
US28882809P 2009-12-21 2009-12-21
PCT/US2009/069624 WO2010078281A2 (en) 2008-12-31 2009-12-28 Real-time or near real-time streaming

Publications (2)

Publication Number Publication Date
BRPI0923917A2 BRPI0923917A2 (pt) 2016-02-16
BRPI0923917B1 true BRPI0923917B1 (pt) 2021-05-25

Family

ID=41800575

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0923917-0A BRPI0923917B1 (pt) 2008-12-31 2009-12-28 Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real

Country Status (11)

Country Link
EP (2) EP3300372B1 (pt)
JP (2) JP5384664B2 (pt)
KR (2) KR101215232B1 (pt)
CN (2) CN102611701B (pt)
AU (1) AU2009335146B2 (pt)
BR (1) BRPI0923917B1 (pt)
CA (1) CA2748548C (pt)
MX (1) MX2011006973A (pt)
RU (1) RU2481720C2 (pt)
SG (1) SG172820A1 (pt)
WO (1) WO2010078281A2 (pt)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for 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
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US20120011270A1 (en) * 2009-04-09 2012-01-12 Clinton Priddle Methods and arrangements for creating and handling media files
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
GB201105502D0 (en) * 2010-04-01 2011-05-18 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
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US8892691B2 (en) 2010-04-07 2014-11-18 Apple Inc. Real-time or near real-time streaming
US8954597B2 (en) 2010-06-28 2015-02-10 Hulu, LLC Method and apparatus for synchronizing paused playback across platforms
US9721254B2 (en) 2010-06-28 2017-08-01 Hulu, LLC Method and apparatus for providing streaming media programs and targeted advertisements using multiple advertisement version segments
EP2586197B1 (en) * 2010-06-28 2018-02-07 Hulu LLC Method and apparatus for providing streaming media programs and targeted advertisements compatibly with http live streaming
US9448723B2 (en) 2010-06-28 2016-09-20 Hulu, LLC Method and apparatus for intuitive navigation of a media program
US9131033B2 (en) * 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
HUE036108T2 (hu) 2010-08-10 2018-06-28 Ericsson Telefon Ab L M Eljárás médiakliensben, médiakliens, vezérlõ egyed és eljárás vezérlõ egyedben
WO2012037671A1 (en) * 2010-09-01 2012-03-29 Jigsee Inc. Systems and methods for client-side media chunking
KR101754414B1 (ko) * 2010-09-06 2017-07-07 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
CN102404646A (zh) * 2010-09-08 2012-04-04 苏州尚嘉信息技术有限公司 一种无线电视直播***及其直播方法
US8589583B2 (en) * 2010-09-08 2013-11-19 Hulu, Inc. Method and apparatus for adaptive bit rate switching
US8468262B2 (en) * 2010-11-01 2013-06-18 Research In Motion Limited Method and apparatus for updating http content descriptions
KR101528991B1 (ko) * 2011-01-11 2015-06-15 애플 인크. 실시간 또는 준 실시간 스트리밍
US8583818B2 (en) * 2011-01-31 2013-11-12 Cbs Interactive Inc. System and method for custom segmentation for streaming video
US9049494B2 (en) 2011-01-31 2015-06-02 Cbs Interactive, Inc. Media playback control
US20120198492A1 (en) * 2011-01-31 2012-08-02 Cbs Interactive, Inc. Stitching Advertisements Into A Manifest File For Streaming Video
US20120213404A1 (en) 2011-02-18 2012-08-23 Google Inc. Automatic event recognition and cross-user photo clustering
GB2483125B (en) * 2011-02-25 2012-09-26 British Sky Broadcasting Ltd Media system
CN102130958A (zh) * 2011-03-22 2011-07-20 宋健 一种基于http协议的小文件切片模式的视频直播方法与***
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US8843586B2 (en) * 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
KR101781717B1 (ko) 2011-06-08 2017-10-23 코닌클리즈케 케이피엔 엔.브이. 공간적으로-세그먼트된 콘텐츠 전달
CN102843335B (zh) * 2011-06-20 2015-09-09 华为技术有限公司 流媒体内容的处理方法和设备
EP2566172A1 (en) * 2011-09-02 2013-03-06 Thomson Licensing Method and apparatus for adaptive transcoding of multimedia stream
US9357275B2 (en) * 2011-09-06 2016-05-31 Qualcomm Incorporated Network streaming of coded video data
US9918115B2 (en) 2011-10-04 2018-03-13 Google Llc System and method for obtaining video streams
GB201205761D0 (en) * 2012-03-30 2012-05-16 Sony Corp A method and device
US20130262693A1 (en) * 2012-04-02 2013-10-03 Chris Phillips Methods and apparatus for segmenting, distributing, and resegmenting adaptive rate content streams
CN102857797B (zh) * 2012-04-12 2014-03-19 天脉聚源(北京)传媒科技有限公司 一种视频播放的后台控制方法及***
CN104380753B (zh) 2012-04-26 2018-05-18 华为技术有限公司 用于表示自适应流媒体的分段加密和密钥衍生的***和方法
CN106452759B (zh) * 2012-04-27 2019-11-19 华为技术有限公司 用于在模板模式下有效支持短加密区间的***和方法
CN104520882B (zh) * 2012-06-27 2017-11-07 谷歌公司 用于确定事件内容流的适当内容的***和方法
US9391792B2 (en) 2012-06-27 2016-07-12 Google Inc. System and method for event content stream
WO2014008637A1 (en) * 2012-07-11 2014-01-16 Nokia Corporation Method and apparatus for interacting with a media presentation description that describes a summary media presentation and an original media presentation
US8495675B1 (en) * 2012-07-30 2013-07-23 Mdialog Corporation Method and system for dynamically inserting content into streaming media
US20140052824A1 (en) * 2012-08-20 2014-02-20 Qualcomm Incorporated Conveying state information for streaming media
US9418370B2 (en) 2012-10-23 2016-08-16 Google Inc. Obtaining event reviews
CN104770049A (zh) 2012-11-05 2015-07-08 诺基亚技术有限公司 用于网络控制的邻近设备到设备发现和通信的方法和装置
JP6161260B2 (ja) * 2012-11-14 2017-07-12 キヤノン株式会社 送信装置、受信装置、送信方法、受信方法、及び、プログラム
US9537917B2 (en) * 2012-11-20 2017-01-03 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
JP6139872B2 (ja) 2012-12-10 2017-05-31 キヤノン株式会社 情報処理装置及びその制御方法、プログラム、記憶媒体、並びに、映像処理システム
JP6116240B2 (ja) 2012-12-28 2017-04-19 キヤノン株式会社 送信装置、送信方法、及びプログラム
JP6218379B2 (ja) * 2012-12-28 2017-10-25 キヤノン株式会社 送信装置、受信装置、送信方法、受信方法、及び、プログラム
JP5984707B2 (ja) * 2013-02-13 2016-09-06 三菱電機ビルテクノサービス株式会社 映像データ配信装置、映像データ配信システム及びプログラム
CN104113790B (zh) * 2013-04-16 2017-09-15 优视科技有限公司 一种基于安卓操作***的视频播放方法及装置
US20140351871A1 (en) * 2013-05-22 2014-11-27 Microsoft Corporation Live media processing and streaming service
JP6173085B2 (ja) * 2013-07-18 2017-08-02 キヤノン株式会社 情報処理装置及びその制御方法、プログラム、並びに記憶媒体
JP6257197B2 (ja) * 2013-07-18 2018-01-10 キヤノン株式会社 情報処理装置及びその制御方法、プログラム、並びに記憶媒体
CN104346338A (zh) * 2013-07-24 2015-02-11 腾讯科技(深圳)有限公司 应用于终端的多媒体信息显示方法和装置
JP6289076B2 (ja) * 2013-12-18 2018-03-07 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
EP3104551B1 (en) * 2014-02-06 2019-08-21 LG Electronics Inc. Method for performing a wi-fi display service and its corresponding device
US9635077B2 (en) * 2014-03-14 2017-04-25 Adobe Systems Incorporated Low latency live video streaming
CN103945283B (zh) * 2014-04-02 2017-10-10 网易(杭州)网络有限公司 一种数字内容保护方法和设备
EP3131300A4 (en) * 2014-04-09 2018-01-17 LG Electronics Inc. Broadcast transmission device, broadcast reception device, operating method of broadcast transmission device, and operating method of broadcast reception device
JP6541309B2 (ja) 2014-06-23 2019-07-10 キヤノン株式会社 送信装置、送信方法、及びプログラム
JP2016091436A (ja) 2014-11-08 2016-05-23 キヤノン株式会社 通信装置、通信方法、及び、プログラム
US9954795B2 (en) * 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9813477B2 (en) * 2015-01-26 2017-11-07 T-Mobile Usa, Inc. Adjusting quality level of media streaming
EP3057266A1 (en) 2015-02-11 2016-08-17 Thomson Licensing Distribution of bandwidth in a network
JP6482413B2 (ja) * 2015-07-01 2019-03-13 テレフオンアクチーボラゲット エルエム エリクソン(パブル) メディアストリーム伝送のためのセッション制御
US9866923B2 (en) * 2015-08-28 2018-01-09 Cbs Interactive Inc. Digital channel integration system
JP6750227B2 (ja) * 2015-09-08 2020-09-02 船井電機株式会社 情報機器および配信装置
WO2017058826A1 (en) 2015-09-28 2017-04-06 Google Inc. Sharing images and image albums over a communication network
CN105451079A (zh) * 2015-11-23 2016-03-30 深圳市芯智科技有限公司 一种在广告机上实现多个视频节目源无缝播放的方法
US10261964B2 (en) * 2016-01-04 2019-04-16 Gracenote, Inc. Generating and distributing playlists with music and stories having related moods
US10666961B2 (en) * 2016-01-08 2020-05-26 Qualcomm Incorporated Determining media delivery event locations for media transport
KR101743228B1 (ko) 2016-01-22 2017-06-05 네이버 주식회사 스트리밍 장치 및 그 방법, 이를 이용한 스트리밍 서비스 시스템 및 컴퓨터로 판독 가능한 기록매체
CN105704504B (zh) 2016-01-28 2021-02-12 腾讯科技(深圳)有限公司 视频直播中***推送信息的方法、装置、设备及存储介质
RU2610681C1 (ru) * 2016-02-18 2017-02-14 Акционерное общество "Научно-исследовательский институт вычислительных комплексов им. М.А. Карцева" (АО "НИИВК им. М.А. Карцева") Способ сохранения информации в аварийных регистраторах
KR102491247B1 (ko) * 2016-04-22 2023-01-25 에스케이텔레콤 주식회사 네트워크 상에서 실시간 멀티미디어 서비스의 품질을 제어하는 방법 및 이를 위한 장치
CN105872599A (zh) * 2016-04-26 2016-08-17 乐视控股(北京)有限公司 一种提供、下载视频的方法及设备
WO2018212815A1 (en) 2017-05-17 2018-11-22 Google Llc Automatic image sharing with designated users over a communication network
US10484726B2 (en) * 2017-06-02 2019-11-19 Apple Inc. Playlist error tags for delivery and rendering of streamed media
JP6422546B2 (ja) * 2017-09-26 2018-11-14 キヤノン株式会社 送信装置、送信方法、及び、プログラム
KR102063624B1 (ko) * 2017-12-07 2020-01-09 네이버 주식회사 지연 생중계를 위한 방법 및 시스템
JP6612313B2 (ja) * 2017-12-20 2019-11-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) メディアストリーム伝送のためのセッション制御
US11240280B2 (en) * 2019-02-19 2022-02-01 Apple Inc. Low latency streaming media
US20200296316A1 (en) 2019-03-11 2020-09-17 Quibi Holdings, LLC Media content presentation
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US11197052B2 (en) * 2019-07-12 2021-12-07 Apple Inc. Low latency streaming media
US11509949B2 (en) * 2019-09-13 2022-11-22 Disney Enterprises, Inc. Packager for segmenter fluidity
KR102085072B1 (ko) * 2019-12-31 2020-03-05 네이버 주식회사 지연 생중계를 위한 방법 및 시스템
US20220272394A1 (en) * 2021-02-19 2022-08-25 Rovi Guides, Inc. Systems and methods for improved adaptive video streaming

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002039A1 (en) * 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
EP0984584A1 (en) * 1998-09-04 2000-03-08 America Online, Inc. Internet multimedia broadcast system
RU2272318C2 (ru) * 1999-08-03 2006-03-20 Вижионартс Инк. Считываемый компьютером носитель записи, на котором записан файл изображения, устройство для изготовления носителя записи, носитель, на котором записана программа для создания файла изображения, устройство для передачи файла изображения, устройство для обработки файла изображения и носитель, на котором записана программа обработки файла изображения
AU1627601A (en) * 1999-11-29 2001-06-04 Binary Broadcasting Corporation Secure digital music distribution
EP1113642A3 (en) * 1999-12-16 2004-04-14 Actv, Inc. Enhanced video programming system and method using a local host for network communication
US7260564B1 (en) * 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
US6925495B2 (en) * 2000-07-13 2005-08-02 Vendaria Media, Inc. Method and system for delivering and monitoring an on-demand playlist over a network using a template
US7624337B2 (en) * 2000-07-24 2009-11-24 Vmark, Inc. System and method for indexing, searching, identifying, and editing portions of electronic multimedia files
US7640320B2 (en) * 2001-01-18 2009-12-29 Yahoo! Inc. Method and system for managing digital content, including streaming media
US20080059532A1 (en) * 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
US20020147634A1 (en) 2001-01-31 2002-10-10 Ronald Jacoby System for dynamic generation of online streaming media advertisements
US7356838B2 (en) * 2001-06-06 2008-04-08 Yahoo! Inc. System and method for controlling access to digital content, including streaming media
US7076478B2 (en) * 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
JP2004013283A (ja) * 2002-06-04 2004-01-15 Hitachi Ltd コンテンツ配信方法及びコンテンツ配信装置
US6812994B2 (en) * 2002-12-04 2004-11-02 Eastman Kodak Company Streamlined methods and systems for scheduling and handling digital cinema content in a multi-theatre environment
KR100520115B1 (ko) * 2002-12-27 2005-10-10 삼성전자주식회사 플레이리스트 관리 장치 및 방법
US7349663B1 (en) * 2003-04-24 2008-03-25 Leave A Little Room Foundation Internet radio station and disc jockey system
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US20040260835A1 (en) * 2003-06-23 2004-12-23 Welk Douglas L. Automotive internet radio system
US20050005025A1 (en) * 2003-07-04 2005-01-06 Michael Harville Method for managing a streaming media service
EP1645130A1 (en) * 2003-07-04 2006-04-12 Koninklijke Philips Electronics N.V. Method of broadcasting multimedia content via a distribution network
JP4513328B2 (ja) * 2003-07-17 2010-07-28 株式会社日立製作所 コンテンツの配信方法、コンテンツの受信方法、および、id検出方法
JP2007528140A (ja) * 2003-10-10 2007-10-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 配信ネットワークを介したマルチメディアコンテンツの配信方法
JP2005195836A (ja) * 2004-01-07 2005-07-21 Matsushita Electric Ind Co Ltd 車載装置および配信システム
CN1813251A (zh) * 2004-03-22 2006-08-02 网飞亚技术公司 基于流的内容分发网络***、以及用于分割、合并和检索文件的方法
JP2005275593A (ja) * 2004-03-23 2005-10-06 Equos Research Co Ltd 情報処理装置
US7818444B2 (en) * 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
CN101023426B (zh) * 2004-07-23 2011-03-30 联邦科学和工业研究组织 集成浏览历史和媒体播放列表的方法和***
JP4751611B2 (ja) * 2004-12-28 2011-08-17 株式会社ドワンゴ コンテンツ配信システム、配信サーバ、視聴情報管理サーバ、視聴情報管理方法、ログ生成方法、及び、コンピュータプログラム
JP2006237663A (ja) * 2005-02-21 2006-09-07 Dowango:Kk ストリーミング配信システム、ストリーミング配信方法およびプログラム
JP2008535317A (ja) * 2005-03-23 2008-08-28 アルカテル−ルーセント デジタルマルチメディアコンテンツに関してネットワークノードからプレイリスト検索を達成するためのシステムおよび方法
JP4731214B2 (ja) * 2005-06-17 2011-07-20 ソニー エリクソン モバイル コミュニケーションズ, エービー 携帯端末装置、コンテンツ配信装置、コンテンツ配信システム、及び通信プログラム
JP2007004896A (ja) * 2005-06-23 2007-01-11 Toshiba Corp 情報記憶媒体、情報転送方法、情報再生方法、及び情報記録方法
JP5058998B2 (ja) * 2005-07-18 2012-10-24 ウェスト ファーマシューティカル サービシズ インコーポレイテッド 通気手段を有する自動注入シリンジ
US20070055743A1 (en) * 2005-09-02 2007-03-08 Pirtle Ross M Remote control media player
US20070174147A1 (en) * 2005-12-30 2007-07-26 Realnetworks System and method for updating a playlist based upon ratings
JP2007158414A (ja) * 2005-11-30 2007-06-21 Matsushita Electric Ind Co Ltd コンテンツ配信システム及びコンテンツ仲介サーバ
US20100235427A1 (en) * 2006-03-28 2010-09-16 Pioneer Corporation Content delivery system, server device, content delivery method, and program
US20070255846A1 (en) * 2006-04-28 2007-11-01 Wee Susie J Distributed storage of media data
JP4821499B2 (ja) * 2006-08-21 2011-11-24 ブラザー工業株式会社 コンテンツ分散保存システム、フレーム取得方法、及びノード装置等
KR100928090B1 (ko) * 2006-10-30 2009-11-23 주식회사 한랭크닷컴 웹상의 텍스트를 음악으로 재생하는 저작 시스템 및 방법
US8601018B2 (en) * 2006-11-08 2013-12-03 Open Invention Network, Llc Apparatus and method for dynamically providing web-based multimedia to a mobile phone
WO2008081415A2 (en) * 2006-12-28 2008-07-10 France Telecom Media file server
US20080209066A1 (en) * 2007-01-24 2008-08-28 Spio Mary A Method and apparatus for providing continuous playback of media programs at a remote end user computer
JP4389179B2 (ja) * 2007-02-27 2009-12-24 ブラザー工業株式会社 メディア接続装置、メディア接続システム、メディア接続システムの操作方法
CN101083628B (zh) * 2007-07-20 2010-08-18 中兴通讯股份有限公司 一种动态转发媒体源的方法
DE102007041143B4 (de) * 2007-08-30 2010-04-08 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum Analysieren von gleichzeitig übertragenen, verschlüsselten Datenströmen in IP-Netzwerken
WO2009046435A1 (en) * 2007-10-05 2009-04-09 Aharon Mizrahi System and method for enabling search of content
CN101448009B (zh) * 2007-11-27 2013-02-20 鸿富锦精密工业(深圳)有限公司 音乐同步播放***、方法及音乐播放器
CN100583699C (zh) * 2007-12-19 2010-01-20 北京创毅视讯科技有限公司 一种前端处理***及其业务的调度方法

Also Published As

Publication number Publication date
EP2392112A2 (en) 2011-12-07
AU2009335146B2 (en) 2012-12-20
JP5384664B2 (ja) 2014-01-08
CN102611701A (zh) 2012-07-25
CN102308547B (zh) 2014-11-19
KR101215232B1 (ko) 2012-12-24
KR101233582B1 (ko) 2013-02-15
CN102611701B (zh) 2015-07-15
KR20110102495A (ko) 2011-09-16
AU2009335146A1 (en) 2011-07-21
JP5296859B2 (ja) 2013-09-25
RU2481720C2 (ru) 2013-05-10
CA2748548A1 (en) 2010-07-08
BRPI0923917A2 (pt) 2016-02-16
CA2748548C (en) 2015-02-24
MX2011006973A (es) 2011-12-06
JP2012514276A (ja) 2012-06-21
AU2009335146A8 (en) 2011-12-01
EP3300372A2 (en) 2018-03-28
RU2011132008A (ru) 2013-02-10
JP2012138083A (ja) 2012-07-19
CN102308547A (zh) 2012-01-04
SG172820A1 (en) 2011-08-29
KR20110098864A (ko) 2011-09-01
EP3300372B1 (en) 2022-01-26
WO2010078281A3 (en) 2011-01-13
WO2010078281A2 (en) 2010-07-08
EP3300372A3 (en) 2018-05-02

Similar Documents

Publication Publication Date Title
US20210263981A1 (en) Playlists for real-time or near real-time streaming
BRPI0923917B1 (pt) Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real
US8280863B2 (en) Real-time or near real-time streaming with compressed playlists
KR101535366B1 (ko) 실시간 또는 준 실시간 스트리밍을 위한 재생 리스트
US8260877B2 (en) Variant streams for real-time or near real-time streaming to provide failover protection
AU2016202709B2 (en) Real-time or near real-time streaming
AU2013201691B2 (en) Method for streaming multimedia data over a non-streaming protocol
AU2011203178B2 (en) Real-time or near real-time streaming

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]
B06A Patent application procedure suspended [chapter 6.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 28/12/2009, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF