BR112021004423A2 - métodos, sistemas e mídia para liberar conteúdo de mídia de transmissão por streaming sem manifesto - Google Patents

métodos, sistemas e mídia para liberar conteúdo de mídia de transmissão por streaming sem manifesto Download PDF

Info

Publication number
BR112021004423A2
BR112021004423A2 BR112021004423-0A BR112021004423A BR112021004423A2 BR 112021004423 A2 BR112021004423 A2 BR 112021004423A2 BR 112021004423 A BR112021004423 A BR 112021004423A BR 112021004423 A2 BR112021004423 A2 BR 112021004423A2
Authority
BR
Brazil
Prior art keywords
segment
sequence number
request
url
identified
Prior art date
Application number
BR112021004423-0A
Other languages
English (en)
Inventor
Tristan Schmelcher
William Cyr
Thomas DeWeese
Nils Krahnstoever
Matthew Carson
Pawel Jurczyk
Thomas Dinger
Jeffrey Calow
Original Assignee
Google Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Llc filed Critical Google Llc
Publication of BR112021004423A2 publication Critical patent/BR112021004423A2/pt

Links

Classifications

    • 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/26291Content 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 providing content or additional data updates, e.g. updating software modules, stored at the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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
    • 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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • H04N21/4725End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content using interactive regions of the image, e.g. hot spots
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

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

Abstract

MÉTODOS, SISTEMAS E MÍDIA PARA LIBE-RAR CONTEÚDO DE MÍDIA DE TRANSMISSÃO POR STREAMING SEM MANIFESTO. A presente invenção refere-se a métodos, sistemas e mídia para distribuir conteúdo de mídia de transmissão por streaming sem manifesto. Em algumas modalidades, o método compreende: receber, de um dispositivo de usuário, uma solicitação para uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecida em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada um dentre a pluralidade de formatos e em que cada segmento da pluralidade de segmentos compreende um respectivo número de sequência; resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL, em que a resolução compreende: identificar o formato da transmissão ao vivo por streaming associada à solicitação da pluralidade de formatos com base na URL; identificar um número de sequência associado à solicitação com base na URL; e identificar um segmento da pluralidade de segmentos que corresponde ao formato identificado e que tem um número de sequência que é compatível com o número de sequência identificado; carregar um arquivo de segmento que corresponde ao segmento específico; e retornar o arquivo de segmento para o dispositivo de usuário em uma resposta à solicitação.

Description

Relatório Descritivo da Patente de Invenção para "MÉTO- DOS, SISTEMAS E MÍDIA PARA LIBERAR CONTEÚDO DE MÍDIA DE TRANSMISSÃO POR STREAMING SEM MANIFESTO".
REFERÊNCIA CRUZADA AO PEDIDO RELACIONADO
[001] Este pedido reivindica o benefício do Pedido de Patente Provisório nº US 62/732.567, depositado em segunda-feira, 17 de se- tembro de 2018, o qual é incorporado em sua totalidade ao presente documento a título de referência.
CAMPO DA TÉCNICA
[002] A matéria revelada refere-se a métodos, sistemas, e mídia para liberar conteúdo de mídia de transmissão por streaming sem ma- nifesto.
ANTECEDENTES
[003] O desenvolvimento de compartilhamento de conteúdo de mídia digital e comunicação por Internet possibilitou que muitos recur- sos intensifiquem a experiência de usuário. Por exemplo, na Internet, sites da web hospedeiros de conteúdo e serviços de compartilhamento de conteúdo permitem que os usuários façam upload, visualizem e compartilhem conteúdo de mídia digital, que pode incluir clipes de áu- dio/música, clipes de vídeo, e uma combinação de conteúdo de áudio e vídeo. Um visualizador pode visualizar o conteúdo de mídia que é transmitido de um servidor de compartilhamento de conteúdo para um dispositivo de visualização para reprodução. Para impedir o armaze- namento temporário que corrompe a reprodução do conteúdo de mí- dia, o conteúdo pode ser transmitido com um protocolo de taxa de bit adaptativo, como Transmissão ao Vivo por HTTP (HLS).
[004] HLS é um protocolo de rede para transmitir por streaming áudio e vídeo por HTTP de um servidor da web para reprodução em vários dispositivos de computação, em que a qualidade do conteúdo de transmissão por streaming pode ser alterada dependendo da cone-
xão de rede do dispositivo de visualização. As abordagens baseadas em HLS existentes para transmitir por streaming mídia, no entanto, encontram inúmeros desafios. Um desafio é a alta latência. Por exem- plo, as abordagens baseadas em HLS existentes exigem que um dis- positivo de cliente faça três viagens de ida e volta até um servidor de compartilhamento de conteúdo antes de o dispositivo de cliente poder reproduzir qualquer conteúdo de vídeo. As três viagens de ida e volta incluem uma viagem para buscar uma lista de reprodução mestre, uma outra viagem para uma lista de reprodução de mídia, e ainda uma ou- tra viagem para um segmento de mídia inicial. Tal requisito aumenta substancialmente a latência para reprodução de conteúdo especial- mente em situações em que o tempo de viagem de ida e volta (RTT) é alto, como, em redes sem fio.
[005] As abordagens existentes para transmitir por streaming re- produção de mídia, como HLS ou Transmissão Adaptativa Dinâmica em HTTP (DASH), também carecem de controle de cliente através de seleção de transmissão por streaming quando o reprodutor de mídia usado por um cliente não suporta seleção de transmissões por strea- ming. Por exemplo, os clientes que usam tal reprodutor de mídia para transmitir por streaming vídeo com o uso do protocolo de HLS são in- capazes de controlar quais segmentos de mídia buscar e quanto bus- cá-los. Se um vídeo de transmissão por streaming estiver disponível em múltiplas taxas de bit ou resoluções, os clientes precisam fornecer uma URL de lista de reprodução mestre para um reprodutor de mídia, em que a lista de reprodução mestre contém todas as listas de repro- dução de mídia disponíveis, cada uma das quais corresponde a uma representação do vídeo de transmissão por streaming em uma taxa de bit ou resolução específica. Durante a reprodução, o reprodutor de mí- dia decide qual representação do vídeo de transmissão por streaming escolher para reprodução.
[006] Ademais, as abordagens existentes para transmitir por streaming reprodução de conteúdo de vídeo não são eficientes para suportar transmissão de vídeo por streaming ao vivo. Durante as re- produções ao vivo de transmissão por streaming de mídia, é necessá- rio que o cliente de abordagens de vídeo de transmissão por streaming baseadas em HLS existentes busque novamente a lista de reprodução ao vivo a cada segundo por novos segmentos de mídia. Em particular, esses protocolos incorporam um arquivo de manifesto que clientes de- vem baixar periodicamente para descobrir novos segmentos de mídia da mídia de transmissão por streaming. O download de manifesto pe- riódico e o tamanho de segmento são exemplos de limitações de la- tência de ponta a ponta nesses protocolos.
[007] Consequentemente, é desejável fornecer novos métodos, sistemas e mídia para distribuir conteúdo de mídia de transmissão por streaming sem manifesto.
SUMÁRIO
[008] São fornecidos métodos, sistemas e mídia para distribuir conteúdo de mídia de transmissão por streaming sem manifesto. (Por conteúdo de transmissão por streaming de mídia "sem manifesto" en- tende-se que seja a distribuição do conteúdo de transmissão por stre- aming de mídia que é efetuado sem precisar que um cliente baixe um arquivo de manifesto.)
[009] De acordo com algumas modalidades da matéria revelada, um método para distribuir conteúdo de transmissão ao vivo por strea- ming é fornecido, sendo que o método compreende: receber, de um dispositivo de usuário, uma solicitação por uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é forne- cida em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada um da pluralidade de formatos e em que cada segmento da pluralida-
de de segmentos compreende um respectivo número de sequência; resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL solicitada, em que a resolução compreende: identificar o formato da transmissão ao vivo por strea- ming associada à solicitação da pluralidade de formatos com base na URL solicitada; identificar um número de sequência associado à solici- tação com base na URL solicitada; e identificar um segmento da plura- lidade de segmentos que corresponde ao formato identificado e que tem um número de sequência que é compatível com o número de se- quência identificado; carregar um arquivo de segmento que corres- ponde ao segmento específico; e retornar o arquivo de segmento para o dispositivo de usuário em uma resposta à solicitação.
[010] Em algumas modalidades, a URL compreende uma URL base, e em que o formato da transmissão ao vivo associada à solicita- ção é identificado a partir da pluralidade de formatos com base na URL base.
[011] Em algumas modalidades, o arquivo de segmento compre- ende metadados que indicam o número de sequência identificado.
[012] Em algumas modalidades, o número de sequência é identi- ficado determinando-se um número de sequência principal atual para um segmento mais recente que está disponível para reprodução do um ou mais segmentos, em que o número de sequência identificado é o número de sequência principal atual e em que o segmento identifi- cado é o segmento mais recente que está disponível para reprodução.
[013] Em algumas modalidades, o número de sequência é identi- ficado identificando-se um número de sequência associado à solicita- ção que é maior que um número de sequência para um segmento mais recentemente completo que está disponível para carregar com base na URL.
[014] Em algumas modalidades, o método compreende adicio-
nalmente: carregar iterativamente uma ou mais porções do arquivo de segmento à medida que a uma ou mais porções estão sendo geradas; e retornar iterativamente a uma ou mais porções geradas para o dis- positivo de usuário em uma única resposta.
[015] De acordo com algumas modalidades da matéria revelada, um sistema para distribuir conteúdo de transmissão ao vivo por strea- ming é fornecido, sendo que o sistema compreende: uma memória; e um processador de hardware acoplado à memória que é configurado para: receber, de um dispositivo de usuário, uma solicitação para uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecido em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada um dentre a pluralidade de formatos e em que cada segmento da pluralidade de segmentos compreende um respec- tivo número de sequência; resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL, em que a resolução compreende: identificar o formato da transmissão ao vivo por streaming associada à solicitação da pluralidade de forma- tos baseados na URL; identificar um número de sequência associado à solicitação com base na URL; e identificar um segmento da plurali- dade de segmentos que corresponde ao formato identificado e que tem um número de sequência que é compatível com o número de se- quência identificado; carregar um arquivo de segmento que corres- ponde ao segmento específico; e retornar o arquivo de segmento para o dispositivo de usuário em uma resposta à solicitação.
[016] De acordo com algumas modalidades da matéria revelada, um meio legível por computador não transitório que contém instruções executáveis por computador que, quando executadas por um proces- sador, fazem com que o processador realize um método para distribuir conteúdo de transmissão ao vivo por streaming, é fornecido, sendo que o método compreende: receber, de um dispositivo de usuário, uma solicitação para uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecida em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada um dentre a pluralidade de formatos e em que cada segmento da pluralidade de segmentos com- preende um respectivo número de sequência; resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL solicitada, em que a resolução compreende: identifi- car o formato da transmissão ao vivo por streaming associado à solici- tação da pluralidade de formatos com base na URL solicitada; identifi- car um número de sequência associado à solicitação com base na URL solicitada; e identificar um segmento da pluralidade de segmentos que corresponde ao formato identificado e que tem um número de se- quência que é compatível com o número de sequência identificado; carregar um arquivo de segmento que corresponde ao segmento es- pecífico; e retornar o arquivo de segmento para o dispositivo de usuá- rio em uma resposta à solicitação. De acordo com mais modalidades da matéria revelada, um meio legível por computador é fornecido, que pode ser um meio legível por computador transitório ou um meio legí- vel por computador não transitório. O meio legível por computador contém instruções executáveis por computador que, quando executa- das por um processador, fazem com que o processador realize um método de acordo com qualquer aspecto ou modalidade para distribuir conteúdo de transmissão ao vivo por streaming.
[017] De acordo com algumas modalidades da matéria revelada, um sistema para distribuir conteúdo de transmissão ao vivo por strea- ming é fornecido, sendo que o sistema compreende: meios para rece- ber, de um dispositivo de usuário, uma solicitação por uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecida em uma pluralidade de formatos, em que a transmis- são ao vivo por streaming compreende uma pluralidade de segmentos para cada um da pluralidade de formatos e em que cada segmento da pluralidade de segmentos compreende um respectivo número de se- quência; meios para resolver a solicitação para um segmento específi- co da transmissão ao vivo por streaming com base na URL solicitada, em que os meios para resolver compreendem: meios para identificar o formato da transmissão ao vivo por streaming associada à solicitação da pluralidade de formatos com base na URL solicitada; meios para identificar um número de sequência associado à solicitação com base na URL solicitada; e meios para identificar um segmento da pluralida- de de segmentos que corresponde ao formato identificado e que tem um número de sequência que é compatível com o número de sequên- cia identificado; meios para carregar um arquivo de segmento que cor- responde ao segmento específico; e meios para retornar o arquivo de segmento para o dispositivo de usuário em uma resposta à solicitação.
BREVE DESCRIÇÃO DOS DESENHOS
[018] Vários objetivos, recursos e vantagens da matéria revelada podem ser completamente observados com referência à descrição de- talhada da matéria revelada a seguir quando considerada em combi- nação com os desenhos a seguir, em que as referências numéricas semelhantes identificam elementos semelhantes.
[019] A Figura 1 mostra um exemplo de um diagrama de fluxo de informações para distribuir conteúdo de mídia de transmissão por stre- aming sem manifesto de acordo com algumas modalidades da matéria revelada.
[020] A Figura 2 mostra um exemplo de um processo para resol- ver uma solicitação por uma URL para um segmento de uma transmis- são de conteúdo por streaming de acordo com algumas modalidades da matéria revelada.
[021] A Figura 3 mostra um exemplo de um diagrama de fluxo de informações para distribuir segmentos compatíveis de uma transmis- são de conteúdo por streaming de acordo com algumas modalidades da matéria revelada.
[022] A Figura 4 mostra um exemplo de um diagrama de fluxo de informações para distribuir um segmento por um ponto específico na história de uma transmissão de conteúdo por streaming de acordo com algumas modalidades da matéria revelada.
[023] A Figura 5 mostra um exemplo de um diagrama de fluxo de informações para transmissão incremental por streaming de acordo com algumas modalidades da matéria revelada.
[024] A Figura 6 mostra um diagrama esquemático de um siste- ma ilustrativo adequado para implantação de mecanismos descritos no presente documento para distribuir conteúdo de mídia de transmissão por streaming sem manifesto de acordo com algumas modalidades da matéria revelada.
[025] A Figura 7 mostra um exemplo detalhado de hardware que pode ser usado em um servidor e/ou um dispositivo de usuário da Fi- gura 6 de acordo com algumas modalidades da matéria revelada.
DESCRIÇÃO DETALHADA
[026] De acordo com várias modalidades, os mecanismos (que podem incluir métodos, sistemas e mídia) para distribuir conteúdo de transmissão por streaming são fornecidos. Em algumas modalidades, os mecanismos descritos no presente documento podem permitir que metadados de nível de aplicação arbitrários sejam suportados sem precisar de suporte no nível de rede de distribuição de conteúdo para armazenar em cache metadados que são separados do arquivo de segmento. Adicional ou alternativamente, em algumas modalidades, os mecanismos descritos no presente documento podem permitir a distribuição de conteúdo de transmissão por streaming sem precisar de distribuição periódica de um arquivo de manifesto separado que contém os metadados e/ou informações para descobrir novos segmen- tos de uma transmissão de conteúdo por streaming reduzindo, desse modo, a latência de ponta a ponta. Adicional ou alternativamente, em algumas modalidades, os mecanismos descritos no presente docu- mento podem permitir que um dispositivo de usuário acesse segmen- tos não principais de uma transmissão por streaming, sendo que isso permite o controle de qual segmento (ou segmentos) de mídia buscar.
[027] Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para distribuir conteúdo de transmissão por streaming. Por exemplo, em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para solicitar um Localizador de Recurso Uniforme (URL) para reprodução de uma transmissão de conteúdo por streaming, conforme descrito abaixo em combinação com a Figura 1. Em um exemplo mais especí- fico, uma URL pode incluir uma URL base que corresponde a um for- mato da transmissão de conteúdo por streaming. Na continuação des- se exemplo, em algumas modalidades, a URL também pode incluir um ou mais parâmetros de URL para indicar um número de sequência as- sociado à solicitação.
[028] Em algumas modalidades, a transmissão de conteúdo por streaming pode ser fornecida para reprodução em um ou mais forma- tos, como um formato de codec, um formato de resolução, um formato de áudio, um formato de vídeo e/ou qualquer outro formato adequado. Por exemplo, em algumas modalidades, uma transmissão de conteúdo por streaming que está sendo transferida por upload por um difusor ou criador de conteúdo em uma resolução de 1.280 x720 pixels pode ter formatos para vídeo 720p H.264 (1.280 x 720 pixels), vídeo 480p H.264 (854 x 480 pixels), vídeo 360p H.264 (640 x 360 pixels), vídeo 240p H.264 (426 x 240 pixels), vídeo 144p H.264 (256 x 144 pixels),
áudio AAC e/ou qualquer outro formato adequado. Em algumas moda- lidades, uma transmissão de conteúdo por streaming pode ser seg- mentada em um ou mais segmentos de duração aproximadamente constante para cada formato de vídeo e/ou áudio que está disponível para reprodução. Em algumas modalidades, cada segmento pode ser alguns segundos de duração ou qualquer outra duração adequada. Em algumas modalidades, a transmissão de conteúdo por streaming pode ser uma transmissão ao vivo por streaming.
[029] Em algumas modalidades, um servidor da web pode forne- cer uma URL base para cada formato (por exemplo, formato de codec, formato de resolução, formato de áudio, formato de vídeo, e/ou qual- quer outro formato adequado) de uma transmissão de conteúdo por streaming que está disponível para reprodução. Continuando o exem- plo acima, em algumas modalidades, um servidor da web pode forne- cer uma URL base para cada um dentre o vídeo 720p H.264, vídeo 480p H.264, vídeo 360p H.264, vídeo 240p H.264, vídeo 144p H.264, áudio AAC e/ou qualquer outro formato adequado. Em algumas moda- lidades, a URL base pode ser para um Protocolo de Transferência de Hipertexto (HTTP), um protocolo de Segurança de Protocolo de Trans- ferência de Hipertexto (HTTPS), um protocolo de Conexões com a In- ternet de UDP Rápido (QUIC) e/ou qualquer outro protocolo adequado.
[030] Em algumas modalidades, a URL base para cada formato pode localizar um arquivo de segmento principal dinamicamente de- terminado para esse formato. Em algumas modalidades, o segmento principal pode ser o segmento mais recente de uma transmissão ao vivo por streaming que está disponível para ser carregado. Em algu- mas modalidades, uma solicitação para uma URL base pode ser re- solvida para um segmento específico identificado por um número de sequência, em que o número de sequência pode ser um índice de nú- mero inteiro denso para uma linha do tempo no segmento (em que um índice "denso" é um em que uma entrada de índice aparece para o valor de índice). Por exemplo, em algumas modalidades, o primeiro segmento de uma transmissão por streaming pode ter número de se- quência 0, em que cada segmento sucessivo pode ter seu respectivo número de segmento aumentado em 1 (ou qualquer outro valor incre- mental adequado).
[031] Em algumas modalidades, um dispositivo de usuário pode acessar segmentos não principais de uma transmissão por streaming adicionando-se um ou mais parâmetros de URL a uma URL base em uma solicitação. Por exemplo, em algumas modalidades, a adição de um parâmetro "sq" a uma URL base que identifica uma transmissão de conteúdo por streaming específica pode localizar um segmento espe- cífico dessa transmissão por streaming pelo número de sequência. Continuando-se com esse exemplo, em algumas modalidades, a adi- ção de "sq=0" a uma URL base pode localizar o primeiro segmento de uma transmissão por streaming identificada pela URL base, a adição de "sq=1" pode localizar o segundo segmento de uma transmissão por streaming, etc. Como um outro exemplo, em algumas modalidades, a adição de um parâmetro "headm" a uma URL base pode localizar um segmento de uma transmissão por streaming que é um número espe- cífico de segmentos atrás do segmento principal. Continuando com esse exemplo, em algumas modalidades, a adição de "headm=1" a uma URL base pode localizar um segmento que é imediatamente an- terior a um segmento principal, a adição de "headm=2" a uma URL ba- se pode localizar um segmento que é dois segmentos anteriores a um segmento principal, etc. Em algumas modalidades, a adição de "he- adm=0" a uma URL base pode ser equivalente ao não fornecimento de qualquer parâmetro "headm".
[032] Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para resolver a solicitação pa-
ra um segmento de uma transmissão de conteúdo por streaming, con- forme descrito abaixo em conexão com as Figuras 1 e 2. Por exemplo, em algumas modalidades, os mecanismos descritos no presente do- cumento podem ser usados para receber uma solicitação por uma URL, identificar um formato da transmissão de conteúdo por streaming associada à solicitação, identificar um número de sequência associado à solicitação, e/ou identificar um segmento da transmissão de conteú- do por streaming associada à solicitação, conforme descrito abaixo em combinação com Figura 2. Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para carregar um arquivo de segmento associado ao segmento identificado e/ou retornar o arquivo de segmento, conforme descrito abaixo em combinação com a Figura 1. Note que, em algumas modalidades, os mecanismos des- critos no presente documento podem ser usados para embutir meta- dados em um formato de contêiner do arquivo de segmento. Conse- quentemente, em algumas modalidades, os mecanismos descritos no presente documento podem permitir que metadados de nível de apli- cação arbitrários sejam suportados sem precisar de suporte no nível de rede de distribuição de conteúdo para armazenar em cache meta- dados que são separados do arquivo de segmento. Adicionalmente, em algumas modalidades, os mecanismos descritos no presente do- cumento podem permitir a distribuição de conteúdo de transmissão por streaming sem precisar de distribuição periódica de um arquivo de manifesto separado que contém os metadados e/ou informações para descobrir novos segmentos de uma transmissão de conteúdo por stre- aming reduzindo, desse modo, a latência de ponta a ponta.
[033] Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para distribuir segmentos compatíveis de uma transmissão de conteúdo por streaming. Por exemplo, em algumas modalidades, os mecanismos descritos no pre-
sente documento podem ser usados para detectar uma compatibilida- de entre segmentos de uma transmissão de conteúdo por streaming recebida de uma rede de distribuição de conteúdo, por exemplo, para detectar uma compatibilidade entre um número de sequência para um segmento de um arquivo da transmissão por streaming (como um ar- quivo de segmento de áudio) e um número de sequência para um segmento de um outro arquivo da transmissão por streaming (como um arquivo de segmento de vídeo) conforme descrito abaixo em com- binação com a Figura 3. Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para solicitar uma ou mais URLs para o próximo segmento (ou segmentos) da transmis- são de conteúdo por streaming e/ou retornar um ou mais arquivos de segmento correspondentes, conforme descrito abaixo conforme des- crito abaixo em combinação com a Figura 3. Por exemplo, em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para esperar uma quantidade predeterminada de tempo antes de responder a uma solicitação por um segmento que ainda tem que ser gerado, conforme descrito abaixo em combinação com a Figu- ra 3. Consequentemente, em algumas modalidades, os mecanismos descritos no presente documento podem permitir que aplicativos re- produtores emitam solicitações para o próximo segmento antes de existir reduzindo e/ou eliminando, desse modo, a contribuição de la- tência de solicitação de rede, que pode reduzir a latência de ponta a ponta.
[034] Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para distribuir um segmento para um ponto na história especificado de uma transmissão de conte- údo por streaming. Por exemplo, em algumas modalidades, os meca- nismos descritos no presente documento podem ser usados para de- tectar uma entrada para buscar um ponto na história de uma transmis-
são de conteúdo por streaming, como uma entrada de usuário associ- ada a uma representação de linha do tempo da transmissão de conte- údo por streaming e/ou qualquer outra entrada adequada, conforme descrito abaixo em combinação com a Figura 3. Em algumas modali- dades, os mecanismos descritos no presente documento podem ser usados para solicitar uma URL que corresponde ao ponto na história da transmissão de conteúdo por streaming, resolver a solicitação para um segmento que corresponde ao ponto na história da transmissão de conteúdo por streaming, e/ou retornar um arquivo de segmento asso- ciado ao segmento, conforme descrito abaixo em combinação com a Figura 3. Em algumas modalidades, os mecanismos descritos no pre- sente documento podem ser usados para reproduzir o conteúdo retor- nado e/ou emitir iterativamente solicitações para abordar o ponto dese- jado na história. Consequentemente, em algumas modalidades, os mecanismos descritos no presente documento podem permitir que um usuário visualize partes históricas de uma transmissão ao vivo por streaming, como se o usuário entrasse na transmissão ao vivo por streaming após a transmissão ao vivo por streaming já ter começado.
[035] Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para transmitir por streaming incrementalmente o conteúdo. Por exemplo, em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para resolver uma solicitação para uma URL para um segmento que ainda está sendo gerado e/ou retornar iterativamente porções de um arquivo de segmento para esse segmento. Como um exemplo mais particular, em algumas modalidades, os mecanismos descritos no pre- sente documento podem ser usados para, primeiro, retornar uma por- ção desse segmento que foi atualmente gerado e, então, retornar in- crementalmente o resto dos dados para esse segmento na mesma resposta que os dados estão sendo gerados. Consequentemente, em algumas modalidades, os mecanismos descritos no presente docu- mento podem permitir que as transmissões ao vivo por streaming se- jam reproduzidas com baixa latência mesmo enquanto têm os benefí- cios da eficiência de tamanhos de segmento grandes.
[036] Em algumas modalidades, os mecanismos descritos no presente documento podem ser usados para aprimorar a transmissão de conteúdo por streaming de rede de computador. Por exemplo, em algumas modalidades, os mecanismos descritos no presente docu- mento podem obviar a distribuição periódica de um arquivo de mani- festo inicializando-se a reprodução com um conjunto de URLs bases para cada formato de uma transmissão de conteúdo por streaming que cada um localiza um arquivo de segmento principal dinamicamente determinado para esse formato e embutindo-se no arquivo de segmen- to metadados que, de outro modo, seriam incluídos no arquivo de ma- nifesto reduzindo, desse modo, a latência de ponta a ponta. Como um outro exemplo, os mecanismos descritos no presente documento po- dem suportar a reprodução de resolução adaptativa de uma transmis- são ao vivo por streaming e podem permitir a reprodução de partes históricas da transmissão ao vivo por streaming. Ainda como um outro exemplo, os mecanismos descritos no presente documento podem su- portar reproduzir transmissões por streaming com menos de um seg- mento de latência de ponta a ponta para permitir a reprodução em bai- xa latência com a eficiência de grandes tamanhos de segmento.
[037] Esses e outros recursos para distribuir conteúdo de mídia de transmissão por streaming sem manifesto são descritos adicional- mente em combinação com as Figuras 1 a 7.
[038] Voltando-se para a Figura 1, um exemplo ilustrativo 100 de um diagrama de fluxo de informações para distribuir conteúdo de transmissão por streaming de acordo com algumas modalidades da matéria revelada é mostrado. Conforme ilustrado, blocos de diagramas de fluxo de informações 100 podem ser executados por um ou mais dispositivos de computação adequados, como um ou mais servidores, um ou mais dispositivos de usuário, e/ou qualquer outro dispositivo (ou dispositivos) de computação adequado, conforme mostrado e descrito abaixo em combinação com as Figuras 6 e 7.
[039] Em 102, um dispositivo de usuário pode solicitar uma URL para reprodução. Por exemplo, em algumas modalidades, um aplicati- vo reprodutor em execução no dispositivo de usuário pode solicitar uma URL para reprodução de uma transmissão de conteúdo por stre- aming. Em algumas modalidades, a URL pode incluir uma URL base fornecida por um servidor da web e que corresponde a um formato de uma transmissão por streaming, e um ou mais de um parâmetro "sq" que corresponde a um número de sequência, um parâmetro "headm" que corresponde a um número de segmentos atrás de um segmento principal, e/ou qualquer outro parâmetro de URL ou informações ade- quadas. Conforme descrito no presente documento abaixo, em algu- mas modalidades, o dispositivo de usuário pode, por exemplo, anexar o um ou mais parâmetros à URL base solicitada.
[040] Note que, em algumas modalidades, uma transmissão de conteúdo por streaming pode ser uma transmissão ao vivo por strea- ming e pode ser fornecida em um ou mais formatos (por exemplo, um formato de codec, um formato de resolução, um formato de áudio, um formato de vídeo, e/ou qualquer outro formato adequado). Em algumas modalidades, uma transmissão ao vivo por streaming pode incluir um ou mais segmentos para cada formato, e cada segmento pode ter um respectivo número de sequência.
[041] Em algumas modalidades, o dispositivo de usuário pode solicitar uma URL para reprodução de qualquer maneira adequada. Em algumas modalidades, o dispositivo de usuário pode solicitar uma URL com base em um ou mais fatores, como resolução de reprodução ideal, um ponto no tempo especificado na história da transmissão de conteúdo por streaming, e/ou qualquer outro fato adequado. Por exemplo, em algumas modalidades, o dispositivo de usuário pode soli- citar automaticamente uma URL base que corresponde a um formato adequado que usa seleção de resolução de reprodução inteligente com base em uma ou mais dentre largura de banda de rede disponível atual, um tamanho de tela do dispositivo de usuário, recursos de hardware disponíveis atuais do dispositivo de usuário, e/ou qualquer outra base adequada. Adicional ou alternativamente, em algumas mo- dalidades, o dispositivo de usuário pode anexar um ou mais parâme- tros, como um parâmetro "sq", um parâmetro "headm" e/ou qualquer outro parâmetro de URL adequado, para a URL base solicitada para facilitar a buscar para um ponto na história especificado.
[042] Em 104, uma rede de distribuição de conteúdo pode resol- ver uma solicitação por uma URL do dispositivo de usuário para um segmento específico de uma transmissão por streaming. Em algumas modalidades, a rede de distribuição de conteúdo pode resolver a solici- tação para um segmento específico identificado por um número de se- quência que usa quaisquer informações adequadas, como uma URL base que inclui quaisquer parâmetros adicionais na URL. Em algumas modalidades, a rede de distribuição de conteúdo pode resolver uma solicitação por uma URL para um segmento específico de qualquer maneira adequada.
[043] Por exemplo, voltando-se para a Figura 2, um exemplo ilus- trativo 200 de um processo para resolver uma solicitação por uma URL para um segmento de uma transmissão de conteúdo por streaming de acordo com algumas modalidades da matéria revelada é mostrado. Conforme ilustrado, os blocos de processo 200 podem ser executados por um ou mais dispositivos de computação adequados, como um ou mais servidores, um ou mais dispositivos de usuário, e/ou qualquer outro dispositivo (ou dispositivos) de computação adequado, conforme mostrado e descrito abaixo em combinação com as Figuras 5 e 6. Em algumas modalidades, os blocos de processo 200 podem ser realiza- dos em combinação com o bloco 104 da Figura 1.
[044] Em 202, uma rede de distribuição de conteúdo pode rece- ber uma solicitação para uma URL de um dispositivo de usuário de qualquer maneira adequada.
[045] Em 204, a rede de distribuição de conteúdo pode identificar um formato da transmissão de conteúdo por streaming associada à solicitação com base na URL. Por exemplo, em algumas modalidades, a rede de distribuição de conteúdo pode determinar um formato solici- tado de um ou mais formatos disponíveis da transmissão de conteúdo por streaming identificando-se um formato associado a uma URL base da URL solicitada.
[046] Em 206, a rede de distribuição de conteúdo pode identificar um número de sequência associado à solicitação com base na URL. Por exemplo, em algumas modalidades, a rede de distribuição de con- teúdo pode resolver uma URL com base em um número de sequência principal (ou um número de sequência para um segmento principal), como consultando um cache do número de sequência principal para determinar um número de sequência principal atual. Adicional ou alter- nativamente, em algumas modalidades, a rede de distribuição de con- teúdo pode transmitir uma consulta para um servidor de origem da transmissão de conteúdo por streaming para o número de sequência principal, e o servidor de origem pode, em resposta, retornar um nú- mero de sequência principal atual, como em 106. Como um outro exemplo, em algumas modalidades, a rede de distribuição de conteú- do pode identificar um número de sequência associado à solicitação com base em um parâmetro "headm" e/ou um parâmetro "sq" incluído na URL.
[047] Em 208, uma rede de distribuição de conteúdo pode identi- ficar um segmento da transmissão de conteúdo por streaming associ- ado à solicitação. Em algumas modalidades, uma rede de distribuição de conteúdo pode identificar um segmento que tem um formato com- patível com o formato identificado associado à URL base e que tem um número de sequência compatível com o número de sequência identificado associado à solicitação.
[048] Voltando-se, novamente, para a Figura 1, em 108, a rede de distribuição de conteúdo pode carregar um arquivo de segmento associado ao segmento identificado referido pelo número de sequên- cia na solicitação. Em algumas modalidades, a rede de distribuição de conteúdo pode carregar um arquivo de segmento de qualquer maneira adequada. Por exemplo, em algumas modalidades, a rede de distribui- ção de conteúdo pode carregar o arquivo de segmento de um ou mais caches e/ou qualquer outra localização adequada. Como um outro exemplo, em algumas modalidades, a rede de distribuição de conteú- do pode transmitir uma consulta para um servidor de origem da trans- missão de conteúdo por streaming para o arquivo de segmento, e o servidor de origem pode, em resposta, retornar o arquivo de segmento solicitado, como em 110. Em algumas modalidades, a rede de distri- buição de conteúdo pode resolver um número de sequência principal e pode carregar os conteúdos do segmento principal em uma única con- sulta para um servidor de origem.
[049] Em algumas modalidades, um arquivo de segmento pode incluir conteúdo de áudio, conteúdo de vídeo e/ou qualquer outro con- teúdo e/ou dados adequados. Em algumas modalidades, um arquivo de segmento pode incluir metadados de nível de aplicação embutidos no formato de contêiner de áudio ou vídeo. Em algumas modalidades, os metadados podem ser embutidos em um formato de contêiner com o uso de um mecanismo que o formato de contêiner suporta para em-
butir informações que não são interpretadas pelos decodificadores de mídia. Por exemplo, em algumas modalidades, os metadados podem ser embutidos em um átomo de "emsg" quando o formato de contêiner for FMP4. Como um outro exemplo, em algumas modalidades, os me- tadados podem ser embutidos em um elemento de etiquetas quando o formato de contêiner for WebM. Deve-se notar que, em algumas mo- dalidades, os metadados podem ser embutidos com o uso de qualquer mecanismo adequado para qualquer formato de contêiner adequado.
[050] Deve-se notar também que os metadados podem incluir quaisquer informações adequadas. Por exemplo, em algumas modali- dades, os metadados podem incluir pares chave-valor de ASCII. Como um exemplo mais específico, em algumas modalidades, os pares cha- ve-valor podem ser da forma "Chave:Valor", e podem ser delimitados por caracteres de nova linha. Como um exemplo ainda mais específi- co, em algumas modalidades, os metadados podem incluir um par chave-valor para a chave "Número de Sequência" e um valor igual ao número de sequência pelo qual o arquivo de segmento pode estar lo- calizado, como com o uso do parâmetro de URL "sq". Em algumas modalidades, os pares chave-valor podem ser codificados de acordo com as mesmas regras como cabeçalhos de resposta de HTTP.
[051] Em 112, uma rede de distribuição de conteúdo pode retor- nar o arquivo de segmento solicitado para o dispositivo de usuário de qualquer maneira adequada. Por exemplo, em algumas modalidades, uma rede de distribuição de conteúdo pode retornar o arquivo de seg- mento como uma resposta de HTTP e/ou qualquer outro tipo adequa- do de resposta.
[052] Em 114, um dispositivo de usuário pode receber o arquivo de segmento da rede de distribuição de conteúdo e carregar o arquivo de segmento. Por exemplo, em algumas modalidades, um aplicativo reprodutor em execução em um dispositivo de usuário pode extrair o conteúdo de vídeo e/ou o conteúdo de áudio do arquivo de segmento para reprodução. Adicional ou alternativamente, o aplicativo reprodutor pode extrair o valor da chave Número de Sequência dos metadados do arquivo de segmento a fim de determinar qual arquivo de segmento foi retornado pela rede de distribuição de conteúdo. Nota-se que, em algumas modalidades, o aplicativo reprodutor pode determinar qual arquivo de segmento foi retornado quando o aplicativo reprodutor car- regar um arquivo de segmento com número de sequência indetermi- nado, como quando se carrega um arquivo de segmento em resposta a uma solicitação por uma URL base ou com o uso de um parâmetro "headm".
[053] Voltando-se para a Figura 3, um exemplo ilustrativo de um diagrama de fluxo de informações para distribuir segmentos compatí- veis de uma transmissão de conteúdo por streaming de acordo com algumas modalidades da matéria revelada é mostrado. Conforme ilus- trado, blocos de diagramas de fluxo de informações 300 podem ser executados por um ou mais dispositivos de computação adequados, como um ou mais servidores, um ou mais dispositivos de usuário, e/ou qualquer outro dispositivo (ou dispositivos) de computação adequado, conforme mostrado e descrito abaixo em combinação com as Figuras 6 e 7.
[054] Em 302, um dispositivo de usuário pode detectar uma com- patibilidade entre segmentos de uma transmissão de conteúdo por streaming recebida de uma rede de distribuição de conteúdo. Por exemplo, em algumas modalidades, um aplicativo reprodutor em exe- cução no dispositivo de usuário pode detectar uma compatibilidade entre um número de sequência para um arquivo de segmento de áudio e um número de sequência para um arquivo de segmento de vídeo recebido de uma rede de distribuição de conteúdo, como extraindo-se o valor da chave Número de Sequência dos metadados de cada arqui-
vo de segmento. Deve-se notar que o dispositivo de usuário pode de- tectar uma compatibilidade entre segmentos de qualquer maneira adequada.
[055] Em 304, o dispositivo de usuário pode solicitar uma ou mais URLs para o próximo segmento (ou segmentos) da transmissão de conteúdo por streaming. Por exemplo, em algumas modalidades, um aplicativo reprodutor em execução no dispositivo de usuário pode, pa- ra cada um de um próximo segmento de áudio e/ou um próximo seg- mento de vídeo, solicitar uma URL base que inclui o parâmetro "sq" definido para o valor atual da chave Número de Sequência mais um. Nota-se que, em algumas modalidades, o aplicativo reprodutor pode determinar um número de sequência maior entre o número de se- quência para o arquivo de segmento de áudio e o número de sequên- cia para o arquivo de segmento de vídeo, e o aplicativo reprodutor po- de definir o parâmetro "sq" para o número de sequência maior mais um. Deve-se notar que o dispositivo de usuário pode solicitar a URL(s) de qualquer maneira adequada.
[056] Em 306, uma rede de distribuição de conteúdo pode rece- ber uma ou mais solicitações por uma ou mais URLs do dispositivo de usuário e pode resolver a solicitação (ou solicitações) para o próximo segmento (ou segmentos) da transmissão de conteúdo por streaming. Em algumas modalidades, a rede de distribuição de conteúdo pode resolver uma solicitação por uma URL do dispositivo de usuário de qualquer maneira adequada, como descrito acima em combinação com a Figura 2. Em algumas modalidades, a rede de distribuição de conteúdo pode determinar que uma solicitação inclui um parâmetro "sq" que é definido para um valor que é maior que um número de se- quência para o maior segmento que está disponível para carregar. Em algumas modalidades, a rede de distribuição de conteúdo pode espe- rar uma duração predeterminada (por exemplo, diversos segundos e/ou qualquer duração adequada) para o próximo segmento a ser ge- rado antes de consultar o servidor de origem para o próximo segmento e/ou antes de responder à solicitação do dispositivo de usuário.
[057] Em 308, a rede de distribuição de conteúdo pode carregar o arquivo (os arquivos) de segmento associado ao segmento (ou seg- mentos) referidos pelo número de sequência na solicitação. Em algu- mas modalidades, a rede de distribuição de conteúdo pode transmitir uma consulta para um servidor de origem da transmissão de conteúdo por streaming para o arquivo de segmento, e o servidor de origem po- de, em resposta, retornar o arquivo (ou arquivos) de segmento solici- tado, como em 310. Em algumas modalidades, o servidor de origem pode esperar uma duração predeterminada (por exemplo, diversos se- gundos e/ou qualquer duração adequada) para o próximo segmento (ou segmentos) a ser gerado antes de responder à solicitação (ou soli- citações) da rede de distribuição de conteúdo.
[058] Em 312, a rede de distribuição de conteúdo pode retornar o arquivo (ou arquivos) de segmento solicitado para o dispositivo de usuário de qualquer maneira adequada. Por exemplo, em algumas modalidades, a rede de distribuição de conteúdo pode retornar o ar- quivo (ou arquivos) de segmento como uma resposta de HTTP.
[059] Em 314, o dispositivo de usuário pode receber o arquivo (ou arquivos) de segmento da rede de distribuição de conteúdo e pode carregar o arquivo (ou arquivos) de segmento que tem números de sequência compatíveis de qualquer maneira adequada. Por exemplo, em algumas modalidades, um aplicativo reprodutor em execução em o dispositivo de usuário pode extrair o conteúdo de vídeo e/ou o conteú- do de áudio do arquivo de segmento para reprodução.
[060] Voltando-se para a Figura 4, um exemplo ilustrativo de um diagrama de fluxo de informações para distribuir um segmento por um ponto específico na história de uma transmissão de conteúdo por stre-
aming de acordo com algumas modalidades da matéria revelada é mostrado. Conforme ilustrado, blocos de diagramas de fluxo de infor- mações 300 podem ser executados por um ou mais dispositivos de computação adequados, como um ou mais servidores, um ou mais dispositivos de usuário, e/ou qualquer outro dispositivo (ou dispositi- vos) de computação adequado, conforme mostrado e descrito abaixo em combinação com as Figuras 6 e 7.
[061] Em 402, um dispositivo de usuário pode detectar uma en- trada para buscar um ponto na história de uma transmissão de conte- údo por streaming de qualquer maneira adequada. Por exemplo, em algumas modalidades, o aplicativo reprodutor pode detectar que um usuário selecionou uma porção de uma representação visual que cor- responde a uma linha do tempo de uma transmissão de conteúdo por streaming para especificar um ponto na história para buscar e/ou qual- quer outro ponto adequado.
[062] Nota-se que, em algumas modalidades, um servidor de ori- gem pode usar uma duração de segmento aproximadamente consis- tente predeterminada para cada transmissão de conteúdo por strea- ming, portanto, a diferença relativa no tempo de transmissão por stre- aming transcorrido entre dois segmentos pode ser aproximadamente igual à diferença em seus valores de número de sequência multiplica- dos pela duração de segmento predeterminada da transmissão de conteúdo por streaming. Por exemplo, em algumas modalidades, dado uma duração de segmento predeterminada de três segundos, o tempo de transmissão por streaming transcorrido entre o primeiro segmento de uma transmissão de conteúdo por streaming e o décimo segmento de uma transmissão de conteúdo por streaming pode ser aproxima- damente igual a: (10 × 3 segundos) – (0 × 3 segundos) = 30 segundos.
[063] Em 404, o dispositivo de usuário pode solicitar uma URL para um segmento que corresponde ao ponto na história especificado da transmissão de conteúdo por streaming de qualquer maneira ade- quada. Por exemplo, em algumas modalidades, o aplicativo reprodutor pode solicitar uma URL para um segmento cujo tempo de transmissão por streaming transcorrido é aproximadamente igual ao ponto na histó- ria especificado da transmissão de conteúdo por streaming, como com o uso de um parâmetro "sq" e/ou qualquer outro parâmetro de URL. Como um exemplo mais particular, em algumas modalidades, dada uma duração de segmento predeterminada de três segundos e uma solicitação de usuário por busca a um ponto que corresponde a trinta segundos na transmissão de conteúdo por streaming, o aplicativo re- produtor pode solicitar uma URL pelo décimo segmento com o uso de um parâmetro "sq" definido para um valor de 10.
[064] Em 406, a rede de distribuição de conteúdo pode resolver a solicitação por uma URL do dispositivo de usuário para um segmento específico de uma transmissão por streaming, como identificado pelo número de sequência com o uso de um parâmetro "sq" na solicitação em algumas modalidades. Em algumas modalidades, a rede de distri- buição de conteúdo pode resolver a solicitação pela URL do dispositi- vo de usuário de qualquer maneira adequada, como descrito acima em combinação com a Figura 2.
[065] Em 408, a rede de distribuição de conteúdo pode carregar um arquivo de segmento associado ao segmento referido pelo número de sequência na solicitação. Por exemplo, em algumas modalidades, a rede de distribuição de conteúdo pode carregar o arquivo de segmento de um ou mais caches, um servidor de origem da transmissão de con- teúdo por streaming, e/ou qualquer outra localização adequada.
[066] Em 410, a rede de distribuição de conteúdo pode retornar o arquivo de segmento solicitado para o dispositivo de usuário de qual- quer maneira adequada. Por exemplo, em algumas modalidades, uma rede de distribuição de conteúdo pode retornar o arquivo de segmento como uma resposta de HTTP e/ou qualquer outro tipo adequado de resposta. Adicionalmente, em algumas modalidades, a rede de distri- buição de conteúdo pode retornar cabeçalhos de resposta de HTTP que identificam o número de sequência principal atual, o exato tempo de transmissão por streaming transcorrido atual, e/ou quaisquer outras informações adequadas.
[067] Em 412, o dispositivo de usuário pode receber o arquivo de segmento da rede de distribuição de conteúdo e carregar o arquivo de segmento. Por exemplo, em algumas modalidades, o aplicativo repro- dutor pode determinar qual arquivo de segmento foi retornado pela re- de de distribuição de conteúdo e/ou um tempo de transmissão por streaming transcorrido do arquivo de sequência, como extraindo-se o valor da chave Número de Sequência dos metadados do arquivo de segmento ou de qualquer outra maneira adequada.
[068] Em 414, o dispositivo de usuário pode determinar se repro- duz o arquivo de segmento retornado com base no tempo de trans- missão por streaming transcorrido do arquivo de segmento retornado. Por exemplo, em algumas modalidades, o aplicativo reprodutor pode comparar um tempo de transmissão por streaming transcorrido do segmento retornado para o ponto na história especificado da transmis- são de conteúdo por streaming. Se o aplicativo reprodutor determinar que o tempo de transmissão por streaming transcorrido do segmento retornado é compatível com o ponto na história especificado da trans- missão de conteúdo por streaming, então, o aplicativo reprodutor pode reproduzir o conteúdo do arquivo de segmento retornado em 416 em algumas modalidades. Se o aplicativo reprodutor determinar que o tempo de transmissão por streaming transcorrido do segmento retor- nado não é compatível com o ponto na história especificado da trans- missão de conteúdo por streaming, então, em algumas modalidades, o aplicativo reprodutor pode continuar a reproduzir o conteúdo a partir do tempo de transmissão por streaming transcorrido do arquivo de seg- mento retornado em 416 ou o aplicativo reprodutor pode retornar para 404 para emitir iterativamente solicitações para abordar o tempo de transmissão por streaming transcorrido desejado.
[069] Note que, em algumas modalidades, o dispositivo de usuá- rio pode usar informações dos cabeçalhos de resposta retornados em 410 quando se aplica o conteúdo em 416. Por exemplo, em algumas modalidades, o aplicativo de reprodução pode usar o número de se- quência principal atual e/ou o tempo de transmissão por streaming transcorrido atual exato para estender uma representação visual da linha do tempo que inclui segmentos recentemente gerados mesmo enquanto o aplicativo reprodutor estiver reproduzindo partes históricas da transmissão de conteúdo por streaming.
[070] Voltando-se para a Figura 5, um exemplo ilustrativo de um diagrama de fluxo de informações para distribuir transmissão por stre- aming incremental de acordo com algumas modalidades da matéria revelada é mostrado. Conforme ilustrado, blocos de diagramas de flu- xo de informações 500 podem ser executados por um ou mais disposi- tivos de computação adequados, como um ou mais servidores, um ou mais dispositivos de usuário, e/ou qualquer outro dispositivo (ou dispo- sitivos) de computação adequado, conforme mostrado e descrito abai- xo em combinação com as Figuras 6 e 7.
[071] Em 502, um dispositivo de usuário pode solicitar uma URL para reprodução. Por exemplo, em algumas modalidades, um aplicati- vo reprodutor em execução no dispositivo de usuário pode solicitar uma URL, incluindo uma URL base, um parâmetro "headm" definido para um valor de 0, e/ou um parâmetro "sq" definido para um número de sequência para um segmento que ainda está sendo gerado.
[072] Em 504, uma rede de distribuição de conteúdo pode resol- ver a solicitação para a URL do dispositivo de usuário para um seg-
mento que ainda está sendo gerado de qualquer maneira adequada. Em algumas modalidades, uma rede de distribuição de conteúdo pode resolver a solicitação pela URL do dispositivo de usuário de qualquer maneira adequada, como descrito acima em combinação com a Figura
2.
[073] Em 506, a rede de distribuição de conteúdo pode carregar porção (ou porções) do arquivo de segmento para o segmento solici- tado de qualquer maneira adequada. Por exemplo, em algumas moda- lidades, uma rede de distribuição de conteúdo pode consultar um ser- vidor de origem da transmissão de conteúdo por streaming por uma ou mais porções do arquivo de segmento solicitado.
[074] Em 508, um servidor de origem pode receber uma solicita- ção por um segmento que ainda está sendo gerado e pode retornar incrementalmente as porções do segmento à medida que as porções estão sendo geradas. Por exemplo, em algumas modalidades, um ser- vidor de origem pode, primeiro, retornar para a rede de distribuição de conteúdo uma porção do segmento que foi atualmente gerada e, en- tão, incrementalmente retornar o resto dos dados para esse segmento na mesma resposta que os dados continuam a ser gerados em 510.
[075] Nota-se que, em algumas modalidades, um servidor de ori- gem e/ou uma rede de distribuição de conteúdo pode retornar uma porção gerada do segmento com o uso de uma codificação de respos- ta que permite retornar respostas com comprimento indefinido de byte. Por exemplo, em algumas modalidades, um servidor de origem e/ou uma rede de distribuição de conteúdo pode responder com o uso de codificação de transferência em partes, como identificado pelo cabeça- lho de resposta de HTTP "transfer-encoding: chunked" quando se usa um protocolo HTTP. Adicionalmente, em algumas modalidades, as respostas podem usar um formato de contêiner que suporta a transfe- rência por streaming incremental. Por exemplo, em algumas modali-
dades, o formato de contêiner pode incluir um átomo "moof" para cada quadro de áudio e/ou vídeo.
[076] Em 512, a rede de distribuição de conteúdo pode retornar uma ou mais porções do segmento para o dispositivo de usuário à medida que são recebidos do servidor de origem em uma única res- posta.
[077] Em 514, o dispositivo de usuário pode receber e carregar porções do segmento da rede de distribuição de conteúdo.
[078] Voltando-se para a Figura 6, um exemplo 600 de hardware para distribuir conteúdo de transmissão por streaming que pode ser usado de acordo com algumas modalidades da matéria revelada é mostrado. Conforme ilustrado, o hardware 600 pode incluir um servidor de origem 602, uma rede de distribuição de conteúdo 604 que inclui um ou mais servidores, como servidor 606 e servidor 608, uma rede de comunicação 610, um ou mais dispositivos de usuário 612, como dispositivo de usuário 614 e dispositivo de usuário 616, e/ou um servi- dor da web 618.
[079] O servidor de origem 602 pode ser qualquer tipo de servi- dor adequado para armazenar informações, dados, programas e/ou qualquer outro tipo adequado de conteúdo para distribuir conteúdo de transmissão por streaming. Em algumas modalidades, o servidor de origem 602 pode armazenar um ou mais arquivos de segmento para cada formato de uma transmissão de conteúdo por streaming. Em al- gumas modalidades, o servidor de origem 602 pode armazenar um número de sequência principal atual para um segmento principal de uma transmissão ao vivo por streaming. Em algumas modalidades, o servidor de origem 602 pode armazenar qualquer outro conteúdo ou informações adequadas. Em algumas modalidades, o servidor de ori- gem 602 pode realizar qualquer função (ou funções) adequada, como retornar um número de sequência principal, retornar um ou mais arqui-
vos de segmento, e/ou retornar incrementalmente uma ou mais por- ções de um ou mais segmentos como as porções são geradas, con- forme descrito acima em combinação com as Figuras 1 e 3 a 5.
[080] A rede de distribuição de conteúdo 604 pode ser qualquer rede adequada para armazenar informações, dados, programas e/ou qualquer outro tipo adequado de conteúdo para distribuir conteúdo de transmissão por streaming. Nota-se que, em algumas modalidades, uma rede de distribuição de conteúdo conforme descrito no presente documento pode ser implantada por um ou mais dispositivos de com- putação adequados, como servidor 606 e/ou servidor 608, que pode ser qualquer servidor (ou servidores) adequado para armazenar infor- mações, dados, programas, e/ou qualquer outro tipo adequado de con- teúdo. Por exemplo, em algumas modalidades, o servidor 606 e/ou o servidor 608 pode armazenar um ou mais arquivos de segmento para um ou mais formatos de uma transmissão de conteúdo por streaming. Adicionalmente, em algumas modalidades, o servidor 606 e/ou o ser- vidor 608 pode armazenar um ou mais números de sequência principal para uma transmissão ao vivo por streaming, como em um ou mais caches. Em algumas modalidades, o servidor de origem 602 pode rea- lizar qualquer função (ou funções) adequada, como receber uma solici- tação por uma URL, resolver uma solicitação para um segmento de uma transmissão de conteúdo por streaming, identificar um formato, identificar um número de sequência, identificar um segmento, carregar um arquivo de segmento, retornar um ou mais arquivos de segmento e/ou retornar incrementalmente uma ou mais porções de um ou mais segmentos à medida que as porções são geradas, conforme descrito acima em combinação com as Figuras 1 a 5.
[081] A rede de comunicação 610 pode ser qualquer combinação adequada de uma ou mais redes com fio e/ou redes sem fio em algu- mas modalidades. Por exemplo, a rede de comunicação 610 pode in-
cluir qualquer uma dentre uma ou mais dentre a Internet, uma intranet, uma rede de área ampla (WAN), uma rede local (LAN), uma rede sem fio, uma rede de linha de assinante digital (DSL), uma rede de re- transmissão de quadro, uma rede de modo de transferência assíncro- na (ATM), uma rede privada virtual (VPN) e/ou qualquer outra rede de comunicação adequada. Em algumas modalidades, o servidor de ori- gem 602 pode ser conectado por um ou mais enlaces de comunicação to rede de comunicação 610 por meio de rede de distribuição de con- teúdo 604. Em algumas modalidades, a rede de comunicação 610 po- de ser ligada por meio de um ou mais enlaces de comunicação à rede de distribuição de conteúdo 604, ao dispositivo (ou dispositivos) de usuário 612 e/ou ao servidor da web 618. Os enlaces de comunicação podem ser quaisquer enlaces de comunicação adequados para comu- nicar dados dentre dispositivo (ou dispositivos) de usuário 612, servi- dor de origem 602, rede de distribuição de conteúdo 604, e servidor da web 618 como enlaces de rede, enlaces de conexão discada, enlaces sem fio, enlaces com fio, quaisquer outros enlaces de comunicação adequados, ou qualquer combinação adequada de tais enlaces.
[082] O servidor da web 618 pode ser qualquer tipo de servidor adequado para armazenar informações, dados, programas e/ou qual- quer outro tipo adequado de conteúdo. Em algumas modalidades, o servidor da web 618 pode realizar qualquer função (ou funções) ade- quada, como fornecer uma ou mais URLs bases para um ou mais for- matos de uma transmissão de conteúdo por streaming, conforme des- crito acima em combinação com as Figuras 1 a 5.
[083] O dispositivo (ou dispositivos) de usuário 612 pode incluir qualquer um ou mais dispositivos de usuário para a presentar o conte- údo de transmissão por streaming. Por exemplo, em algumas modali- dades, o dispositivo (ou dispositivos) de usuário 612 pode incluir uma televisão, alto-falantes, um telefone celular, um computador do tipo tablet, um computador do tipo desktop, um computador do tipo laptop, um sistema de entretenimento de veículo, um computador que pode ser usado junto ao corpo e/ou qualquer outro tipo de dispositivo de usuário adequado. Em algumas modalidades, o dispositivo (ou disposi- tivos) de usuário 612 pode incluir um aplicativo reprodutor armazenado na memória e executado por dispositivo (ou dispositivos) de usuário 612 para apresentar conteúdo de transmissão por streaming. Em al- gumas modalidades, o dispositivo (ou dispositivos) de usuário 612 po- de realizar qualquer função (ou funções) adequada, como solicitar uma URL para reprodução, detectar os segmentos compatíveis de uma transmissão por streaming, detectar uma entrada para buscar um pon- to na história de uma transmissão por streaming, carregar um arquivo de segmento recebido e/ou reproduzir o conteúdo, conforme descrito acima em combinação com as Figuras 1 a 5.
[084] Embora o servidor de origem 602, servidor 606, servidor 608 e servidor da web 618 sejam, cada um, ilustrados como um dispo- sitivo, as funções realizadas pelo servidor de origem 602, servidor 606, servidor 608 e servidor da web 618 podem ser realizadas com o uso de qualquer número adequado de dispositivos em algumas modalida- des. Por exemplo, em algumas modalidades, múltiplos dispositivos podem ser usados para implantar as funções realizadas por cada um dentre o servidor de origem 602, servidor 606, servidor 608 e servidor da web 618.
[085] Embora dois dispositivos de usuário 614 e 616 sejam mos- trados na Figura 6 para evitar a complicação exagerada da Figura, qualquer número adequado de dispositivos de usuário e/ou qualquer tipo adequado de dispositivos de usuário, pode ser usado em algumas modalidades.
[086] O servidor de origem 602, servidor 606, servidor 608, dis- positivos de usuário 612 e servidor da web 618 podem ser implantados com o uso de qualquer hardware adequado em algumas modalidades. Por exemplo, em algumas modalidades, os dispositivos 602, 606, 608, 612, e 618 podem ser implantados com o uso de qualquer computador para fins gerais ou computador para fins específicos adequados. Por exemplo, um telefone móvel pode ser implantado com o uso de um computador para fins específicos. Qualquer tal computador para fins gerais ou computador para fins específicos pode incluir qualquer hardware adequado. Por exemplo, conforme ilustrado no hardware 700 exemplificativo da Figura 7, tal hardware pode incluir processador de hardware 702, memória e/ou armazenamento 704, um controlador de dispositivo de entrada 706, um dispositivo de entrada 708, unidades de visor/áudio 710, visor/conjunto de circuitos de saída de áudio 712, interface (ou interfaces) de comunicação 714, uma antena 716 e um barramento 718.
[087] O processador de hardware 702 pode incluir qualquer pro- cessador de hardware adequado, como um microprocessador, um mi- crocontrolador, processador (ou processadores) de sinal digital, lógica dedicada e/ou qualquer outro conjunto de circuitos adequado para controlar o funcionamento de um computador para fins gerais ou um computador para fins específicos em algumas modalidades. Em algu- mas modalidades, o processador de hardware 702 pode ser controla- do por um programa de servidor armazenado na memória e/ou arma- zenamento de um servidor, como servidor 606 e/ou servidor 608. Por exemplo, em algumas modalidades, a programa de servidor pode fa- zer com que o processador de hardware 702 receba uma solicitação por uma URL, resolva uma solicitação para um segmento de uma transmissão de conteúdo por streaming, identifique um formato, identi- fique um número de sequência, identifique um segmento, retorne um número de sequência principal, carregue um arquivo de segmento, re- torne um ou mais arquivos de segmento, retorne incrementalmente uma ou mais porções de um ou mais segmentos à medida que as por- ções são geradas, forneça uma ou mais URLs bases para um ou mais formatos de uma transmissão de conteúdo por streaming, e/ou realize quaisquer outras funções adequadas. Em algumas modalidades, o processador de hardware 702 pode ser controlado por um programa armazenado em memória e/ou armazenamento de um dispositivo de usuário, como dispositivo de usuário 612 e/ou dispositivo de usuário
616. Por exemplo, em algumas modalidades, o programa pode fazer com que o processador de hardware 702 solicite uma URL para repro- dução, detecte segmentos não compatíveis de uma transmissão por streaming, detecte uma entrada para buscar um ponto na história de uma transmissão por streaming, carregue um arquivo de segmento recebido, reproduza o conteúdo, e/ou realize quaisquer outras funções adequadas.
[088] A memória e/ou o armazenamento 704 pode ser qualquer memória e/ou armazenamento adequado para armazenar programas, dados e/ou quaisquer outras informações adequadas em algumas mo- dalidades. Por exemplo, a memória e/ou o armazenamento 704 pode incluir memória de acesso aleatório, memória apenas de leitura, me- mória flash, armazenamento em disco rígido, mídia óptica e/ou qual- quer outra memória adequada.
[089] O controlador de dispositivo de entrada 706 pode ser qual- quer conjunto de circuitos para controlar e receber a entrada de um ou mais dispositivo de entradas 708 em algumas modalidades. Por exemplo, o controlador de dispositivo de entrada 706 pode ser o con- junto de circuitos para receber a entrada de uma tela sensível ao to- que, de um teclado, de um ou mais botões, de um circuito de reconhe- cimento de voz, de um microfone, de uma câmera, de um sensor ópti- co, de um acelerômetro, de um sensor de temperatura, de um sensor de campo próximo, de um sensor de pressão, de um codificador e/ou qualquer outro tipo de dispositivo de entrada.
[090] As unidades de visor/áudio 710 podem ser conjunto de cir- cuitos adequados para controlar e acionar a saída para um ou mais dispositivos de saída de visor/áudio 712 em algumas modalidades. Por exemplo, as unidades de visor/áudio 710 podem ser conjunto de circui- tos para acionar uma tela sensível ao toque, um visor de painel plano, um visor de tubo de raio de catodo, um projetor, um alto-falante ou al- to-falantes, e/ou qualquer outro visor e/ou dispositivos de apresenta- ção adequados.
[091] A interface (ou interfaces) de comunicação 714 pode ser qualquer conjunto de circuitos adequado para fazer interface com uma ou mais redes de comunicação (por exemplo, rede de comunicação 610). Por exemplo, a interface (ou interfaces) 714 pode incluir conjunto de circuitos de cartão de interface de rede, conjunto de circuitos de comunicação sem fio e/ou qualquer outro tipo adequado de conjunto de circuitos de rede de comunicação.
[092] A antena 716 pode ser qualquer uma ou mais antenas ade- quadas para se comunicar de modo sem fio com uma rede de comuni- cação (por exemplo, rede de comunicação 610) em algumas modali- dades. Em algumas modalidades, a antena 716 pode ser omitida.
[093] O barramento 718 pode ser qualquer mecanismo adequado para se comunicar entre dois ou mais componentes 702, 704, 706, 710, e 714 em algumas modalidades.
[094] Quaisquer outros componentes adequados podem estar incluídos em hardware 700 de acordo com algumas modalidades.
[095] Em algumas modalidades, pelo menos alguns dos blocos descritos acima dos processos das Figuras 1 a 5 podem ser executa- dos ou realizados em qualquer ordem ou sequência não limitada à or- dem ou sequência mostrada e descrita em combinação com as Figu- ras. Também, alguns dos blocos acima das Figuras 1 a 5 podem ser executados ou realizados de modo substancialmente simultâneo quando apropriado ou em paralelo para reduzir a latência e os tempos de processamento. Adicional ou alternativamente, alguns dos blocos descritos acima dos processos das Figuras 1 a 5 podem ser omitidos.
[096] Em algumas modalidades, qualquer mídia legível por com- putador adequada pode ser usada para armazenar instruções para realizar as funções e/ou processos no presente documento. Por exemplo, em algumas modalidades, a mídia legível por computador pode ser transitória ou não transitória. Por exemplo, a mídia legível por computador não transitória pode incluir mídia como formas não transi- tórias de mídia magnética (como discos rígidos, discos flexíveis e/ou qualquer outra mídia magnética adequada), formas não transitórias de mídia óptica (como discos compactos, discos de vídeo digital, discos Blu-ray e/ou qualquer outra mídia óptica adequada), formas não transi- tórias de mídia semicondutora (como memória flash, memória apenas de leitura eletricamente programada (EPROM), memória apenas de leitura eletricamente programável apagável (EEPROM), e/ou qualquer outra mídia semicondutora adequada), qualquer mídia adequada que não seja transiente ou desprovida de qualquer semelhança de perma- nência durante a transmissão e/ou qualquer outra mídia tangível ade- quada. Como um outro exemplo, mídia legível por computador transi- tória pode incluir sinais em redes, em fios, condutores, fibras ópticas, circuitos, qualquer mídia adequada que seja transiente e desprovida de qualquer semelhança de permanência durante a transmissão, e/ou qualquer mídia intangível adequada.
[097] Consequentemente, são fornecidos métodos, sistemas e mídia para distribuir conteúdo de mídia de transmissão por streaming sem manifesto.
[098] Embora a invenção tenha sido descrita e ilustrada nas mo- dalidades ilustrativas anteriormente mencionadas, compreende-se que a presente revelação tenha sido feita apenas a título de exemplo, e que inúmeras alterações nos detalhes de implantação da invenção po- dem ser feitas sem que se desvie do espírito e escopo da invenção, que é limitada apenas pelas reivindicações que seguem.
Os recursos das modalidades reveladas podem ser combinados e rearranjados de vários modos.

Claims (18)

REIVINDICAÇÕES
1. Método para distribuir conteúdo de transmissão ao vivo por streaming, caracterizado pelo fato de que compreende: receber, de um dispositivo de usuário, uma solicitação para uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecida em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada uma da pluralidade de formatos e em que cada segmento da pluralidade de segmentos compreende um respec- tivo número de sequência; resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL solicitada, em que a resolução compreende: identificar o formato da transmissão ao vivo por streaming associada à solicitação da pluralidade de formatos com base na URL solicitada; identificar um número de sequência associado à solicitação com base na URL solicitada; e identificar um segmento da pluralidade de segmentos que corresponde ao formato identificado e que tem um número de sequên- cia compatível com o número de sequência identificado; carregar um arquivo de segmento que corresponde ao segmento específico; e retornar o arquivo de segmento para o dispositivo de usuá- rio em uma resposta para a solicitação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a URL compreende uma URL base, e em que o for- mato da transmissão ao vivo por streaming associada à solicitação é identificado a partir da pluralidade de formatos com base na URL base.
3. Método, de acordo com a reivindicação 1 ou 2, caracteri-
zado pelo fato de que o arquivo de segmento compreende metadados que indicam o número de sequência identificado.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o número de sequência é identifi- cado determinando-se um número de sequência principal atual para um segmento mais recente que está disponível para reprodução do um ou mais segmentos, em que o número de sequência identificado é o número de sequência principal atual e em que o segmento identifi- cado é o segmento mais recente que está disponível para reprodução.
5. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o número de sequência é identifi- cado identificando-se um número de sequência associado à solicitação que é maior que um número de sequência para um segmento mais recentemente completo que está disponível para carregar com base na URL.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende: carregar, iterativamente, uma ou mais porções do arquivo de segmento à medida que a uma ou mais porções estão sendo gera- das; e retornar, iterativamente, as uma ou mais porções geradas para o dispositivo de usuário em uma única resposta.
7. Sistema para a distribuição de conteúdo de transmissão ao vivo por streaming, caracterizado pelo fato de que compreende: uma memória; e um processador de hardware acoplado à memória que é configurada para: receber, de um dispositivo de usuário, uma solicitação para uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecida em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada uma da pluralidade de formatos e em que cada segmento da pluralidade de segmentos compreende um respec- tivo número de sequência; resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL solicitada, em que a resolução compreende: identificar o formato da transmissão ao vivo por streaming associada à solicitação da pluralidade de formatos com base na URL solicitada; identificar um número de sequência associado à solicitação com base na URL solicitada; e identificar um segmento da pluralidade de segmentos que corresponde ao formato identificado e que tem um número de sequên- cia compatível com o número de sequência identificado; carregar um arquivo de segmento que corresponde ao segmento específico; e retornar o arquivo de segmento para o dispositivo de usuá- rio em uma resposta para a solicitação.
8. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que a URL compreende uma URL base, e em que o for- mato da transmissão ao vivo por streaming associada à solicitação é identificado a partir da pluralidade de formatos com base na URL base.
9. Sistema, de acordo com a reivindicação 7 ou 8, caracte- rizado pelo fato de que o arquivo de segmento compreende metada- dos que indicam o número de sequência identificado.
10. Sistema, de acordo com qualquer uma das reivindica- ções 7 a 9, caracterizado pelo fato de que o número de sequência é identificado determinando-se um número de sequência principal atual para um segmento mais recente que está disponível para reprodução do um ou mais segmentos, em que o número de sequência identifica- do é o número de sequência principal atual e em que o segmento iden- tificado é o segmento mais recente que está disponível para reprodu- ção.
11. Sistema, de acordo com qualquer uma das reivindica- ções 7 a 9, caracterizado pelo fato de que o número de sequência é identificado identificando-se um número de sequência associado à so- licitação que é maior que um número de sequência para um segmento mais recentemente completo que está disponível para carregar com base na URL.
12. Sistema, de acordo com a reivindicação 11, caracteri- zado pelo fato de que o processador de hardware é adicionalmente configurado para: carregar, iterativamente, uma ou mais porções do arquivo de segmento à medida que a uma ou mais porções estão sendo gera- das; e retornar, iterativamente, as uma ou mais porções geradas para o dispositivo de usuário em uma única resposta.
13. Meio legível por computador que contém instruções executáveis por computador que, quando executadas por um proces- sador, fazem com que o processador realize um método para a distri- buir conteúdo de transmissão ao vivo por streaming, sendo que o mé- todo é caracterizado pelo fato de que compreende: receber, de um dispositivo de usuário, uma solicitação para uma URL que corresponde a um formato de uma transmissão ao vivo por streaming que é fornecida em uma pluralidade de formatos, em que a transmissão ao vivo por streaming compreende uma pluralidade de segmentos para cada uma da pluralidade de formatos e em que cada segmento da pluralidade de segmentos compreende um respec- tivo número de sequência;
resolver a solicitação para um segmento específico da transmissão ao vivo por streaming com base na URL solicitada, em que a resolução compreende: identificar o formato da transmissão ao vivo por streaming associada à solicitação da pluralidade de formatos com base na URL solicitada; identificar um número de sequência associado à solicitação com base na URL solicitada; e identificar um segmento da pluralidade de segmentos que corresponde ao formato identificado e que tem um número de sequên- cia compatível com o número de sequência identificado; carregar um arquivo de segmento que corresponde ao segmento específico; e retornar o arquivo de segmento para o dispositivo de usuá- rio em uma resposta para a solicitação.
14. Meio legível por computador, de acordo com a reivindi- cação 13, caracterizado pelo fato de que a URL compreende uma URL base, e em que o formato da transmissão ao vivo por streaming asso- ciada à solicitação é identificado a partir da pluralidade de formatos com base na URL base.
15. Meio legível por computador, de acordo com a reivindi- cação 13 ou 14, caracterizado pelo fato de que o arquivo de segmento compreende metadados que indicam o número de sequência identifi- cado.
16. Meio legível por computador, de acordo com qualquer uma das reivindicações 13 a 15, caracterizado pelo fato de que o nú- mero de sequência é identificado determinando-se um número de se- quência principal atual para um segmento mais recente que está dis- ponível para reprodução do um ou mais segmentos, em que o número de sequência identificado é o número de sequência principal atual e em que o segmento identificado é o segmento mais recente que está disponível para reprodução.
17. Meio legível por computador, de acordo com qualquer uma das reivindicações 13 a 15, caracterizado pelo fato de que o nú- mero de sequência é identificado identificando-se um número de se- quência associado à solicitação que é maior que um número de se- quência para um segmento mais recentemente completo que está dis- ponível para carregar com base na URL.
18. Meio legível por computador, de acordo com a reivindi- cação 17, o método compreende adicionalmente: carregar, iterativamente, uma ou mais porções do arquivo de segmento à medida que a uma ou mais porções estão sendo gera- das; e retornar, iterativamente, as uma ou mais porções geradas para o dispositivo de usuário em uma única resposta.
Dispositivo de cliente Rede de distribuição de conteúdo Servidor de origem
Petição 870210022398, de 09/03/2021, pág. 61/68 Solicitar URL Resolver solicitação Retornar número de para segmento segmento principal atual 1/7
Carregar arquivo de segmento Retornar arquivo de segmento
Carregar arquivo de segmento Retornar arquivo de segmento
Receber solicitação para URL
Identificar formato com base na URL base
Identificar número de sequência
Identificar segmento que tem número de sequência identificada
Dispositivo de cliente Rede de distribuição de conteúdo Servidor de origem
Petição 870210022398, de 09/03/2021, pág. 63/68 Detectar incompatibilidade de segmento
Solicitar URL para Resolver solicitação próximo segmento para segmento 3/7
Carregar arquivo de Retornar arquivo de segmento segmento
Carregar arquivo de Retornar arquivo de segmento segmento
Dispositivo de cliente Rede de distribuição de conteúdo Detectar busca de entrada para ponto na história Solicitar URL para Resolver solicitação segmento especificado para segmento Carregar arquivo de segmento Carregar arquivo de Retornar arquivo de segmento segmento Reproduzir?
S Reproduzir conteúdo
Dispositivo de cliente Rede de distribuição de conteúdo Servidor de origem
Petição 870210022398, de 09/03/2021, pág. 65/68 Resolver solicitação Solicitar URL para segmento 5/7
Carregar porção Retornar porção de (ou porções) de arquivo segmento gerada de segmento
Retornar porção Carregar porção(porções) Mais S (ou porções) de de arquivo de segmento dados? arquivo de segmento
Servidor (ou servidores) de origem
Petição 870210022398, de 09/03/2021, pág. 66/68 Servidor de CDN Servidor de CDN 6/7
Servidor (ou servidores) Rede de comunicação da web
Dispositivo de usuário Dispositivo de usuário
Petição 870210022398, de 09/03/2021, pág. 67/68 Processador de Memória e/ou hardware armazenamento 7/7
Controlador de Unidades Interface (ou interfaces) dispositivo de entrada de visor/áudio de comunicação
Dispositivo (ou dispositivos) de Saída de entrada visor/áudio
BR112021004423-0A 2018-09-17 2019-09-17 métodos, sistemas e mídia para liberar conteúdo de mídia de transmissão por streaming sem manifesto BR112021004423A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862732567P 2018-09-17 2018-09-17
US62/732,567 2018-09-17
PCT/US2019/051433 WO2020060990A1 (en) 2018-09-17 2019-09-17 Methods, systems, and media for delivering manifestless streaming media content

Publications (1)

Publication Number Publication Date
BR112021004423A2 true BR112021004423A2 (pt) 2021-05-25

Family

ID=68084967

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021004423-0A BR112021004423A2 (pt) 2018-09-17 2019-09-17 métodos, sistemas e mídia para liberar conteúdo de mídia de transmissão por streaming sem manifesto

Country Status (7)

Country Link
US (4) US10986149B2 (pt)
EP (1) EP3750324A1 (pt)
JP (2) JP7073584B2 (pt)
KR (3) KR102428194B1 (pt)
CN (2) CN115460184A (pt)
BR (1) BR112021004423A2 (pt)
WO (1) WO2020060990A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184665B2 (en) * 2018-10-03 2021-11-23 Qualcomm Incorporated Initialization set for network streaming of media data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102783167B (zh) * 2010-03-05 2015-10-14 三星电子株式会社 基于文件格式生成和再现自适应流的方法和装置
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US9253233B2 (en) * 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9462302B2 (en) * 2012-02-23 2016-10-04 Mobitv, Inc. Efficient delineation and distribution of media segments
US9712887B2 (en) * 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
US8887215B2 (en) 2012-06-11 2014-11-11 Rgb Networks, Inc. Targeted high-value content in HTTP streaming video on demand
US9537917B2 (en) * 2012-11-20 2017-01-03 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
WO2015013687A1 (en) * 2013-07-25 2015-01-29 Futurewei Technologies, Inc. System and method for effectively controlling client behavior in adaptive streaming
US9118976B1 (en) * 2013-08-08 2015-08-25 Time Warner Cable Enterprises Llc Tuning efficiency and delivery of content
US9860612B2 (en) * 2014-04-10 2018-01-02 Wowza Media Systems, LLC Manifest generation and segment packetization
US9692800B2 (en) * 2014-06-11 2017-06-27 Google Inc. Enhanced streaming media playback
US10084838B2 (en) 2014-10-29 2018-09-25 DLVR, Inc. Generating and using manifest files including content delivery network authentication data
US10666961B2 (en) * 2016-01-08 2020-05-26 Qualcomm Incorporated Determining media delivery event locations for media transport
US10389840B2 (en) * 2016-12-28 2019-08-20 Verizon Digital Media Services Inc. Prefetching of stream segments with variable names

Also Published As

Publication number Publication date
WO2020060990A1 (en) 2020-03-26
KR20220110341A (ko) 2022-08-05
CN115460184A (zh) 2022-12-09
US11558443B2 (en) 2023-01-17
JP7460684B2 (ja) 2024-04-02
US10986149B2 (en) 2021-04-20
KR20200119310A (ko) 2020-10-19
EP3750324A1 (en) 2020-12-16
US20200092342A1 (en) 2020-03-19
CN111837405A (zh) 2020-10-27
KR20240033297A (ko) 2024-03-12
JP2022116036A (ja) 2022-08-09
US20240163322A1 (en) 2024-05-16
KR102428194B1 (ko) 2022-08-02
JP7073584B2 (ja) 2022-05-23
US11882168B2 (en) 2024-01-23
KR102643665B1 (ko) 2024-03-05
US20230144953A1 (en) 2023-05-11
JP2021530932A (ja) 2021-11-11
CN111837405B (zh) 2022-08-23
US20210243240A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
US20210067578A1 (en) Streaming media segments
CN106464945B (zh) 增强型流媒体回放的方法、系统及计算机可读介质
US8516144B2 (en) Startup bitrate in adaptive bitrate streaming
TW201123795A (en) System, method and apparatus for dynamic media file streaming
BR112015007455B1 (pt) Dispositivo de mídia player e método executável por dispositivo cliente para executar fluxo de mídia adaptativo tendo pluralidade de faixas de áudio
WO2020155959A1 (zh) 切换清晰度的方法、装置、计算机设备及可读存储介质
US20240163322A1 (en) Methods, systems, and media for delivering manifestless streaming media content
US10284894B2 (en) Methods and apparatus for naming video content chunks
US10609105B2 (en) System and method for streaming music on mobile devices
WO2014048198A1 (zh) 倍速播放方法、装置及系统
US20170339105A1 (en) Managing transitions between a local area network and a wide area network during media content playback
US10498787B2 (en) Communication apparatus, communication method, and program
US10298984B2 (en) Network PVR
KR20180013298A (ko) 스트리밍 서비스를 위한 클라이언트의 동작 방법
Burke Video streaming over named data networking
CN106453255B (zh) 一种实现服务续播的方法、UPnP设备及系统
JP2011518521A (ja) マルチメディアコンテンツのデュアルタイプ再生
US20120059912A1 (en) Delivering a Media File to a Client
TWI598743B (zh) 多媒體檔案下載方法與電子裝置