BR112016022245B1 - METHOD AND DEVICE TO RECOVER MEDIA DATA - Google Patents

METHOD AND DEVICE TO RECOVER MEDIA DATA Download PDF

Info

Publication number
BR112016022245B1
BR112016022245B1 BR112016022245-8A BR112016022245A BR112016022245B1 BR 112016022245 B1 BR112016022245 B1 BR 112016022245B1 BR 112016022245 A BR112016022245 A BR 112016022245A BR 112016022245 B1 BR112016022245 B1 BR 112016022245B1
Authority
BR
Brazil
Prior art keywords
adaptation set
period
adaptation
media
representations
Prior art date
Application number
BR112016022245-8A
Other languages
Portuguese (pt)
Other versions
BR112016022245A2 (en
BR112016022245A8 (en
Inventor
Thomas Stockhammer
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/665,252 external-priority patent/US9866608B2/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016022245A2 publication Critical patent/BR112016022245A2/en
Publication of BR112016022245A8 publication Critical patent/BR112016022245A8/en
Publication of BR112016022245B1 publication Critical patent/BR112016022245B1/en

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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list

Abstract

PROCESSAMENTO DE CONTEÚDO DE MULTI-PERÍODOS CONTÍNUOS. Em um exemplo, um dispositivo inclui um ou mais processadores configurados para determinar que um arquivo de manifesto para conteúdo de mídia indica que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indica que os primeiro e segundo períodos são contínuos, e que os dados de mídia de anúncio são disponíveis para inserção entre os primeiro e segundo períodos, selecionar um primeiro conjunto de adaptação no primeiro período com base pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação, recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação, recuperar os dados de mídia de anúncio, e recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que o arquivo de manifesto indica estar associado ao primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação e armazenar os dados de mídia recuperados em uma memória.CONTINUOUS MULTI-PERIOD CONTENT PROCESSING. In one example, a device includes one or more processors configured to determine that a manifest file for media content indicates that the media content includes a first period and a second period, that the manifest file indicates that the first and second periods are continuous, and that ad media data is available for insertion between the first and second periods, select a first adaptation set in the first period based at least in part on signaled characteristics for the first adaptation set, retrieve data from media from the first adaptation set based on the selection of the first adaptation set, retrieve the advertisement media data, and retrieve media data from a second adaptation set in the second period that the manifest file indicates is associated with the first adaptation set adaptation based on selecting the first adaptation set and storing the retrieved media data in a memory.

Description

[0001] O presente pedido reivindica o benefício do pedido provisional US número de série 61/969.777, depositado em 24 de março de 2015, cujo teor na íntegra é pelo presente incorporado por referência.[0001] This application claims the benefit of US provisional application serial number 61/969,777, filed March 24, 2015, the entire contents of which are hereby incorporated by reference.

CAMPO TÉCNICOTECHNICAL FIELD

[0002] A presente revelação refere-se a transporte de dados de mídia, por exemplo, streaming de dados de mídia através de uma rede.[0002] The present disclosure relates to transporting media data, for example, streaming media data over a network.

ANTECEDENTESBACKGROUND

[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de broadcast direto digital, sistemas de broadcast sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, câmeras digitais, dispositivos de gravação digital, tocadores de mídia digital, dispositivos de jogos de vídeo, consoles de videogame, telefones de rádio satélite ou celulares, dispositivos de teleconferência de vídeo, e similares. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, Codificação avançada de vídeo (AVC), ITU-H.265/padrão de Codificação de vídeo de eficiência MPEG-H parte 2 e extensões de tais padrões, para transmitir e receber informações de vídeo digital mais eficientemente.[0003] Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), desktop or laptop computers, digital cameras, devices recording machines, digital media players, video game devices, video game consoles, satellite radio or cell phones, video teleconferencing devices, and the like. Digital video devices implement video compression techniques such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Advanced Video Encoding video (AVC), ITU-H.265/MPEG-H Efficiency Video Coding standard part 2 and extensions of such standards, to transmit and receive digital video information more efficiently.

[0004] Técnicas de compressão de vídeo executam predição espacial e/ou temporal para reduzir ou remover redundância inerente em sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia ou quadro de vídeo pode ser dividida em macroblocos. Cada macrobloco pode ser adicionalmente dividido. Macroblocos em um quadro ou fatia intra-codificado (I) são codificados usando predição espacial com relação a macroblocos vizinhos. Macroblocos em uma fatia ou quadro inter-codificado (P ou B) podem usar predição espacial com relação a macroblocos vizinhos no mesmo quadro ou fatia ou predição temporal com relação a outros quadros de referência.[0004] Video compression techniques perform spatial and/or temporal prediction to reduce or remove inherent redundancy in video sequences. For block-based video encoding, a video slice or frame can be divided into macroblocks. Each macroblock can be further divided. Macroblocks in an intra-coded (I) frame or slice are coded using spatial prediction with respect to neighboring macroblocks. Macroblocks in a slice or intercoded frame (P or B) can use spatial prediction with respect to neighboring macroblocks in the same frame or slice or temporal prediction with respect to other reference frames.

[0005] Após codificação de dados de vídeo (e/ou outros dados de mídia, como dados de áudio e/ou texto temporizados), os dados de mídia podem ser empacotados para transmissão ou armazenagem. Os dados de mídia empacotados podem ser enviados usando um protocolo de unicast, como protocolo de transferência de hipertexto (HTTP_, ou um protocolo de broadcast ou multicast, como Serviço para Multicast de Broadcast de Multimídia aperfeiçoada (eMBMS).[0005] After encoding video data (and/or other media data such as timed audio and/or text data), the media data can be packaged for transmission or storage. Packed media data can be sent using a unicast protocol, such as hypertext transfer protocol (HTTP_), or a broadcast or multicast protocol, such as Service for Enhanced Multimedia Broadcast Multicast (eMBMS).

SUMÁRIOSUMMARY

[0006] Em geral, essa revelação descreve técnicas para preparar conteúdo de mídia que é usado para streaming adaptável de modo que no caso de streaming e playout, dados de mídia adicionais (por exemplo, dados de mídia de anúncio) em um conjunto existente de dados de mídia podem ser unidos e adicionados por sinalizar um limite de período, por exemplo, por uma decisão no remetente que usa o conteúdo ou pelo receptor que recebe o conteúdo, porém ao mesmo tempo a decodificação e playout do conteúdo no receptor é contínua através do limite de período, isto é, mantendo continuidade de período. Conteúdo de mídia pode ser separado em períodos distintos, onde cada período inclui um ou mais conjuntos de adaptação, cada contendo uma ou mais representações. Em geral, representações no mesmo conjunto de adaptação podem ser consideradas alternativas entre si, de modo que um dispositivo de cliente pode comutar entre representações, por exemplo, adaptar-se à alteração de largura de banda de rede. Conjuntos de adaptação em um período podem incluir tais representações comutáveis, isto é, representações que compartilham características de fornecimento e codificação comuns, porém diferem em taxas de bits.[0006] In general, this disclosure describes techniques for preparing media content that is used for adaptive streaming so that in the case of streaming and playout, additional media data (e.g., ad media data) into an existing set of Media data can be joined and added together by signaling a time limit, for example by a decision at the sender who uses the content or by the receiver who receives the content, but at the same time the decoding and playout of the content at the receiver is continuous through period limit, that is, maintaining period continuity. Media content can be separated into distinct periods, where each period includes one or more adaptation sets, each containing one or more representations. In general, representations in the same adaptation set can be considered alternative to each other, so that a client device can switch between representations, for example, adapt to changing network bandwidth. One-period adaptation sets can include such switchable representations, that is, representations that share common delivery and encoding characteristics but differ in bitrates.

[0007] Essa revelação descreve técnicas para dividir um conteúdo oferecido em um período em dois períodos contínuos, de modo que dados de mídia adicionais possam ser inseridos entre os períodos contínuos. Desse modo, características para representações dos períodos contínuos não necessitam ser sinalizados novamente após os dados de mídia adicionados. Ao invés, as mesmas características sinalizadas para os dados das representações em um período podem ser usados para os dados das representações no próximo período contínuo (onde dados de mídia adicionais podem ser inseridos entre os períodos contínuos). Desse modo, os dados de mídia do conteúdo de mídia e os dados de mídia adicionados podem ser apresentados em um modo contínuo. Por exemplo, um dispositivo de cliente pode usar um conjunto de adaptação do segundo período que corresponde a um conjunto de adaptação do primeiro período, com base na seleção do conjunto de adaptação do segundo período e sem reinicializar a entidade de análise e decodificação de mídia no cliente).[0007] This disclosure describes techniques for splitting content offered in one period into two continuous periods so that additional media data can be inserted between the continuous periods. In this way, features for representations of continuous periods do not need to be signaled again after media data is added. Instead, the same features flagged for data representations in one period can be used for data representations in the next continuous period (where additional media data may be inserted between continuous periods). In this way, the media data of the media content and the added media data can be presented in a continuous mode. For example, a client device can use a second period adaptation set that matches a first period adaptation set, based on the second period adaptation set selection and without restarting the media parsing and decoding entity in the client).

[0008] Em um exemplo, um método de recuperar dados de mídia inclui determinar que um arquivo de manifesto para conteúdo de mídia indica que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indica que os primeiro e segundo períodos são contínuos, e que dados de mídia de anúncio são disponíveis para inserção entre o primeiro e segundo períodos, selecionar um primeiro conjunto de adaptação no primeiro período baseado pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação, recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação, recuperar os dados de mídia de anúncio, e recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que é associado ao primeiro conjunto de adaptação baseado na seleção do primeiro conjunto de adaptação.[0008] In one example, a method of retrieving media data includes determining that a manifest file for media content indicates that the media content includes a first period and a second period, that the manifest file indicates that the first and second periods second periods are continuous, and that ad media data is available for insertion between the first and second periods, select a first adaptation set in the first period based at least in part on features flagged for the first adaptation set, retrieve data from media from the first adaptation set based on the selection of the first adaptation set, retrieve the advertisement media data, and retrieve media data from a second adaptation set in the second period that is associated with the first adaptation set based on the selection of the first set of adaptation.

[0009] Em outro exemplo, um dispositivo para recuperar dados de mídia inclui uma memória configurada para armazenar dados de mídia, e um ou mais processadores baseados em hardware configurados para determinar que um arquivo de manifesto para conteúdo de mídia indica que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indica que o primeiro e segundo períodos são contínuos, e que dados de mídia de anúncio são disponíveis para inserção entre o primeiro e segundo períodos, selecionar um primeiro conjunto de adaptação no primeiro período com base pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação, recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação, recuperar os dados de mídia de anúncio, e recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que o arquivo de manifesto indica ser associado ao primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação e armazenar os dados de mídia recuperados para a memória.[0009] In another example, a device for retrieving media data includes memory configured to store media data, and one or more hardware-based processors configured to determine that a manifest file for media content indicates that media content includes a first period and a second period, that the manifest file indicates that the first and second periods are continuous, and that ad media data is available for insertion between the first and second periods, select a first adaptation set in the first period based at least in part on characteristics flagged for the first adaptation set, retrieve media data from the first adaptation set based on the selection of the first adaptation set, retrieve advertisement media data, and retrieve media data from a second adaptation set in the second period that the manifest file indicates to be associated with the first adaptation set based on the selection of the first adaptation set and store the retrieved media data to memory.

[0010] Em outro exemplo, um método de enviar dados de mídia inclui dividir, por um servidor de mídia, conteúdo principal de dados de mídia em uma pluralidade de períodos incluindo um primeiro período e um segundo período, em que o primeiro período e o segundo período são temporalmente seqüenciais, inserindo, pelo servidor de mídia, conteúdo de mídia secundária entre o primeiro período e o segundo período, sinalizando pelo servidor de mídia, um indicador de tempo para cada da pluralidade de períodos, em que o indicador de tempo define uma ou mais características de tempo para cada da pluralidade de períodos, e recebendo, pelo servidor de mídia, uma solicitação a partir de um cliente de streaming adaptável dinâmico através de HTTP (DASH) para recuperar um fluxo de mídia compreendendo a pluralidade de períodos, o conteúdo de mídia secundário, e os indicadores de tempo.[0010] In another example, a method of sending media data includes dividing, by a media server, main content of media data into a plurality of periods including a first period and a second period, wherein the first period and the second period are temporally sequential, by the media server inserting secondary media content between the first period and the second period, signaling by the media server a time pointer for each of the plurality of periods, where the time pointer defines one or more time characteristics for each of the plurality of periods, and receiving, by the media server, a request from a dynamic adaptive streaming client over HTTP (DASH) to retrieve a stream of media comprising the plurality of periods, secondary media content, and time indicators.

[0011] Em outro exemplo, um dispositivo para enviar dados de mídia inclui uma memória configurada para armazenar dados de mídia, e um ou mais processadores baseados em hardware configurados para dividir conteúdo principal dos dados de mídia em uma pluralidade de períodos incluindo um primeiro período e um segundo período que são temporalmente sequenciais, inserir conteúdo de mídia secundário entre o primeiro período e o segundo período, sinalizar um indicador de tempo para cada da pluralidade de períodos, em que o indicador de temo define uma ou mais características de tempo para cada da pluralidade de períodos, e receber uma solicitação a partir de um cliente de streaming adaptável dinâmico através de HTTP (DASH) para recuperar um fluxo de mídia compreendendo a pluralidade de períodos, o conteúdo de mídia secundário e os indicadores de tempo.[0011] In another example, a device for sending media data includes a memory configured to store media data, and one or more hardware-based processors configured to divide the main content of the media data into a plurality of periods including a first period and a second period that are temporally sequential, inserting secondary media content between the first period and the second period, signaling a time indicator for each of the plurality of periods, wherein the time indicator defines one or more time characteristics for each of the plurality of periods, and receiving a request from a dynamic adaptive streaming client over HTTP (DASH) to retrieve a media stream comprising the plurality of periods, secondary media content and time indicators.

[0012] Os detalhes de um ou mais exemplos são expostos nos desenhos em anexo e descrição abaixo. Outras características, objetivos e vantagens serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.[0012] Details of one or more examples are set out in the attached drawings and description below. Other features, objects and advantages will be apparent from the description and drawings, and from the claims.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0013] A figura 1 é um diagrama de blocos ilustrando um sistema de exemplo que implementa técnicas para streaming dados de mídia através de uma rede.[0013] Figure 1 is a block diagram illustrating an example system that implements techniques for streaming media data over a network.

[0014] A figura 2 é um diagrama conceptual ilustrando elementos de conteúdo de multimídia de exemplo.[0014] Figure 2 is a conceptual diagram illustrating sample multimedia content elements.

[0015] A figura 3 é um diagrama de blocos ilustrando outro sistema de exemplo que pode implementar as técnicas dessa revelação.[0015] Figure 3 is a block diagram illustrating another example system that can implement the techniques of this disclosure.

[0016] As figuras 4-6 são fluxogramas ilustrando uma ou mais técnicas de acordo com vários aspectos da presente revelação.[0016] Figures 4-6 are flowcharts illustrating one or more techniques in accordance with various aspects of the present disclosure.

[0017] A figura 7 é um fluxograma ilustrando um método de exemplo de executar certas técnicas dessa revelação por um servidor de mídia.[0017] Figure 7 is a flowchart illustrating an example method of performing certain techniques of this disclosure by a media server.

[0018] A figura 8 é um fluxograma ilustrando um método de exemplo de executar certas técnicas dessa revelação por um dispositivo de cliente.[0018] Figure 8 is a flowchart illustrating an example method of performing certain techniques of this disclosure by a client device.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0019] Em geral, essa revelação descreve técnicas para inserção de anúncio (ad) em um fluxo de multiperíodos contínuo. Essas técnicas podem ser usadas ao streaming dados de mídia, por exemplo, de acordo com um serviço unicast (como HTTP), broadcast, ou serviço multicast, como Serviço para Multicast Broadcast de multimídia aperfeiçoado (eMBMS). Por exemplo, as técnicas dessa revelação podem ser usadas em combinação com, ou para aumentar as técnicas de, Operação de MBMS aperfeiçoada- aperfeiçoamentos em MBMS (MI-EMO). Mi-EMO é descrito, por exemplo, em Visão Geral de 3GPP Release 12 VO.1.1, dezembro de 2013, disponível em HTTP://www.3gpp.org/ftp/Information/WORK PLAN/Descritpion R eleasea/Rel-12 description 20131224.zip.[0019] In general, this disclosure describes techniques for inserting ad (ad) into a continuous multiperiod stream. These techniques can be used when streaming media data, for example, under a unicast service (such as HTTP), broadcast, or multicast service, such as Enhanced Multimedia Broadcast Service for Multicast (eMBMS). For example, the techniques of this disclosure can be used in combination with, or to augment the techniques of, Improved MBMS Operation - Improvements in MBMS (MI-EMO). Mi-EMO is described, for example, in Overview of 3GPP Release 12 VO.1.1, December 2013, available at HTTP://www.3gpp.org/ftp/Information/WORK PLAN/Descritpion R eleasea/Rel-12 description 20131224.zip.

[0020] Deve ser entendido que os dados de anúncio são dados de mídia, isto é, dados apresentados a um usuário durante uma ou mais intermissões breves da apresentação dos dados de mídia primários. Os dados de mídia adicionais (por exemplo, dados de mídia de anúncio) são genericamente apresentados substancialmente do mesmo modo que os dados de mídia primários. Por exemplo, se os dados de mídia primários incluírem dados tanto de áudio como de vídeo, os dados de mídia de anúncio provavelmente também incluem dados de vídeo e áudio. Desse modo, os dados de anúncio não devem ser confundidos com um anúncio de servidor para um dispositivo de cliente que genericamente não é apresentado a um usuário.[0020] It should be understood that ad data is media data, that is, data presented to a user during one or more brief intermissions of the presentation of the primary media data. Additional media data (eg ad media data) is generally presented in substantially the same way as the primary media data. For example, if the primary media data includes both audio and video data, the ad media data will likely also include video and audio data. As such, the advertisement data should not be confused with a server advertisement for a client device that is generally not presented to a user.

[0021] As técnica dessa revelação podem ser aplicadas no contexto de um protocolo de rede de streaming, como Streaming adaptável dinâmico através de HTTP (DASH). Em DASH, conteúdo de mídia é dividido em um conjunto de representações, onde cada representação corresponde a uma combinação específica de características, por exemplo, características de codificação (como CODEC, perfil, nível e similares), características de fornecimento (por exemplo, ângulo de visão, dimensões de imagem, taxa de quadro, e similares) e taxa de bits. O conteúdo de mídia pode incluir ainda conjuntos de adaptação, onde cada conjunto de adaptação inclui uma pluralidade de representações que atuam como alternativas comutáveis entre si, de modo que as representações compartilham as mesmas características de fornecimento porém diferem por taxa de bits, por exemplo, para fins de adaptação de largura de banda. Essas características das representações, bem como indicações de conjuntos de adaptação, são tipicamente sinalizadas em um arquivo de manifesto. Além disso, cada conjunto de adaptação pode corresponder a um período específico do conteúdo de mídia, onde cada período pode incluir um ou mais conjuntos de adaptação. Um período corresponde em geral a uma seção do conteúdo de mídia definida por um tempo de reprodução de início para o período até o tempo de reprodução de início para um período subsequente. O conteúdo de mídia pode incluir um ou mais períodos.[0021] The techniques in this disclosure can be applied in the context of a streaming network protocol, such as Dynamic Adaptive Streaming over HTTP (DASH). In DASH, media content is split into a set of representations, where each representation corresponds to a specific combination of characteristics, e.g. encoding characteristics (such as CODEC, profile, level and the like), delivery characteristics (e.g. angle of view, image dimensions, frame rate, and the like) and bit rate. The media content may further include adaptation sets, where each adaptation set includes a plurality of representations that act as switchable alternatives to one another, such that the representations share the same delivery characteristics but differ by bitrate, e.g. for bandwidth adaptation purposes. These characteristics of representations, as well as indications of adaptation sets, are typically flagged in a manifest file. Additionally, each adaptation set can correspond to a specific period of media content, where each period can include one or more adaptation sets. A period generally corresponds to a section of media content defined by a start playing time for the period to the start playing time for a subsequent period. Media content can include one or more time periods.

[0022] Essa revelação refere-se à conversão de um arquivo de manifesto, como uma Descrição de Apresentação de mídia (MPD), e conteúdo gerado como Em-demanda ou conteúdo ao vivo para um MPD (ou outro arquivo de manifesto) com múltiplos períodos fornecendo continuidade de período. Conteúdo com múltiplos períodos podem ser criados por motivos diferentes. Por exemplo, múltiplos períodos podem ser criados para permitir junção de conteúdo, por exemplo, para inserção de anúncio. Em outro exemplo, múltiplos períodos podem ser criados para fornecer um ponto de sincronização para evitar derivação em numeração de segmento. Em outro exemplo, múltiplos períodos podem ser criados para remover ou adicionar certas representações em um conjunto de adaptação. Em outro exemplo, múltiplos períodos podem ser criados para remover ou adicionar certos conjuntos de adaptação. Em outro exemplo, múltiplos períodos podem ser criados para adicionar ou remover conteúdo oferecido em certas redes de distribuição de conteúdo (CDNs). Em outro exemplo, múltiplos períodos podem ser criados para permitir sinalização de segmentos mais curtos, se produzidos pelo codificador. Essas técnicas de exemplo podem ser usadas individualmente ou em qualquer combinação.[0022] This disclosure concerns the conversion of a manifest file, such as a Media Presentation Description (MPD), and generated content such as On-demand or live content to an MPD (or other manifest file) with multiple periods providing period continuity. Multi-period content can be created for different reasons. For example, multiple time periods can be created to allow content merging, for example for ad insertion. In another example, multiple periods can be created to provide a synchronization point to avoid drift in segment numbering. In another example, multiple periods can be created to remove or add certain representations in an adaptation set. In another example, multiple periods can be created to remove or add certain adaptation sets. In another example, multiple periods can be created to add or remove content offered on certain content delivery networks (CDNs). In another example, multiple periods can be created to allow for shorter segment signaling if produced by the encoder. These sample techniques can be used individually or in any combination.

[0023] Períodos fornecem oportunidades para inserção de anúncio, também conhecido como sugestões. Porém anúncios podem ou não ser adicionados, com base em decisões tomadas pelo remetente ou cliente. Portanto, conteúdo para o qual nenhum anúncio é inserido, é tipicamente contínuo em termos de análise e fornecimento de mídia. Se os períodos forem contínuos, playout contínuo para o cliente é sinalizado, de modo que o cliente não tenha de reinicializar e evitar possivelmente qualquer resultado de uma falha no limite de período. Para tratar de playout contínuo, essa revelação descreve várias técnicas. Em um exemplo, um fornecedor de conteúdo divide Conteúdo em- demanda regular em múltiplos períodos e fornece sinalização de continuidade de período. Em outro exemplo, um fornecedor de conteúdo divide Conteúdo ao vivo regular em múltiplos períodos e fornece sinalização de continuidade de período. Em outro exemplo, um fornecedor de conteúdo sinaliza múltiplos períodos com base em informação de MPD somente sem modificar o conteúdo de mídia, isto é, as representações.[0023] Periods provide opportunities for ad insertion, also known as suggestions. However, advertisements may or may not be added, based on decisions made by the sender or customer. Therefore, content for which no ads are inserted is typically continuous in terms of analytics and media delivery. If the periods are continuous, continuous playout to the client is signaled so that the client does not have to reboot and possibly avoid any result of a period limit failure. To address continuous playout, this disclosure describes several techniques. In one example, a content provider divides regular On-Demand Content into multiple periods and provides period continuation signaling. In another example, a content provider divides regular Live Content into multiple periods and provides period continuation signaling. In another example, a content provider signals multiple periods based on MPD information only without modifying the media content, ie representations.

[0024] Em alguns exemplos, ao receber conteúdo de mídia usando broadcast ou multicast, um cliente MBMS ou cliente eMBMS pode receber o conteúdo de mídia, a seguir tornar o conteúdo de mídia disponível para um cliente de streaming, como um cliente DASH. O cliente DASH pode recuperar o conteúdo de mídia a partir do cliente MBMS usando, por exemplo, operações de recuperação de HTTP. Em streaming de HTTP, como DASH, operações frequentemente usadas incluem HEAD, GET e GET parcial. A operação HEAD recupera um cabeçalho de um arquivo associado a um localizador de recurso uniforme dado (URL) ou nome de recurso uniforme (URN), sem recuperar uma carga útil associada ao URL ou URN. A operação GET recupera um arquivo inteiro associado a um URL ou URN dado. A operação GET parcial recebe uma faixa de bytes como um parâmetro de entrada e recupera um número contínuo de bytes de um arquivo, onde o número de bytes corresponde à faixa de bytes recebida. Desse modo, fragmentos de filme podem ser fornecidos para streaming HTTP, porque uma operação GET parcial pode obter um ou mais fragmentos de filme individuais. Em um fragmento de filme, pode haver vários fragmentos de faixa de faixas diferentes. Em streaming HTTP, uma apresentação de mídia pode ser uma coleção estruturada de dados que podem ser acessíveis ao cliente. O cliente pode solicitar e download informação de dados de mídia para apresentar um serviço de streaming para um usuário.[0024] In some examples, when receiving media content using broadcast or multicast, an MBMS client or eMBMS client can receive the media content, then make the media content available to a streaming client, such as a DASH client. The DASH client can retrieve media content from the MBMS client using, for example, HTTP retrieval operations. In HTTP streaming such as DASH, frequently used operations include HEAD, GET, and partial GET. The HEAD operation retrieves a header from a file associated with a given uniform resource locator (URL) or uniform resource name (URN), without retrieving a payload associated with the URL or URN. The GET operation retrieves an entire file associated with a given URL or URN. The partial GET operation takes a range of bytes as an input parameter and retrieves a continuous number of bytes from a file, where the number of bytes corresponds to the received range of bytes. In this way, movie fragments can be provided for HTTP streaming, because a partial GET operation can get one or more individual movie fragments. In one film fragment, there can be several track fragments from different tracks. In HTTP streaming, a media presentation can be a structured collection of data that can be accessed by the client. The client can request and download media data information to present a streaming service to a user.

[0025] No exemplo de streaming dados 3GPP usando streaming HTTP, pode haver múltiplas representações para dados de vídeo e/ou áudio de conteúdo de multimídia. Como explicado abaixo, representações diferentes podem corresponder a características de codificação diferentes (Por exemplo, perfis ou níveis diferentes de um padrão de codificação de vídeo), padrões de codificação diferentes ou extensões de padrões de codificação (como extensões de multivista e/ou escalonáveis) ou taxas de bits diferentes. O manifesto de tais representações pode ser definido em uma estrutura de dados de Descrição de apresentação de mídia (MPD). Uma apresentação de mídia pode corresponder a uma coleção estruturada de dados que pode ser acessível a um dispositivo de cliente de streaming HTTP. O dispositivo de cliente de streaming HTTP pode solicitar e baixar informação de dados de mídia para apresentar um serviço de streaming a um usuário do dispositivo de cliente. Uma apresentação de mídia pode ser descrita na estrutura de dados de MPD, que pode incluir atualizações da MPD.[0025] In the example of streaming 3GPP data using HTTP streaming, there may be multiple representations for video data and/or audio of multimedia content. As explained below, different representations can correspond to different coding characteristics (e.g. different profiles or levels of a video coding standard), different coding standards or extensions of coding standards (such as multiview and/or scalable extensions) or different bit rates. The manifest of such representations can be defined in a Media Presentation Description (MPD) data structure. A media presentation can be a structured collection of data that can be accessed by an HTTP streaming client device. The HTTP streaming client device can request and download media data information to present a streaming service to a user of the client device. A media presentation can be described in the MPD data structure, which can include updates to the MPD.

[0026] Uma apresentação de mídia pode conter uma sequência de um ou mais períodos. Períodos podem ser definidos por um elemento de período na MPD. A MPD pode incluir um atributo de iniciar e um atributo availableStartTime para cada período. Para serviços ao vivo, a soma do atributo iniciar do período e o atributo de MPD availableStartTime pode especificar o tempo de disponibilidade do período em formato de UTC, em particular o primeiro Segmento de mídia de cada representação no período correspondente. Para serviços em-demanda, o atributo iniciar do primeiro período pode ser 0. Para qualquer outro período, o atributo iniciar pode especificar um deslocamento de tempo entre o tempo de início do período correspondente em relação ao tempo de início do primeiro período. Cada período pode estender até o início do período seguinte, ou até o término da apresentação de mídia no caso do último período. Tempos de início de período podem ser precisos. Os mesmos podem refletir a temporização efetiva resultando de tocar a mídia de todos os períodos anteriores.[0026] A media presentation may contain a sequence of one or more periods. Periods can be defined by a period element in the MPD. The MPD can include a start attribute and an availableStartTime attribute for each period. For live services, the sum of the start of period attribute and the availableStartTime MPD attribute can specify the availability time of the period in UTC format, in particular the first Media Segment of each representation in the corresponding period. For on-demand services, the start attribute of the first period can be 0. For any other period, the start attribute can specify a time offset between the start time of the corresponding period versus the start time of the first period. Each period can extend until the beginning of the next period, or until the end of the media presentation in the case of the last period. Period start times can be accurate. They may reflect the actual timing resulting from playing media from all previous periods.

[0027] Cada período pode conter uma ou mais representações para o mesmo conteúdo de mídia. Uma representação pode ser uma de um número de versões codificadas alternativas de dados de áudio ou vídeo. As representações podem diferir por tipos de codificação, por exemplo, por taxa de bits, resolução e/ou codec para dados de vídeo e taxa de bits, linguagem e/ou codec para dados de áudio. O termo representação pode ser usado para se referir a uma seção de dados de áudio ou vídeo codificados correspondendo a um período específico do conteúdo de multimídia e codificado em um modo específico.[0027] Each period can contain one or more representations for the same media content. A representation can be one of a number of alternative encoded versions of audio or video data. Representations may differ by encoding types, for example by bitrate, resolution and/or codec for video data and bitrate, language and/or codec for audio data. The term representation can be used to refer to a section of encoded audio or video data corresponding to a specific period of multimedia content and encoded in a specific way.

[0028] Representações de um período específico podem ser atribuídas a um grupo indicado por um atributo na MPD indicativo de um conjunto de adaptações ao qual as representações pertencem. Representações no mesmo conjunto de adaptações são genericamente consideradas alternativas entre si, em que um dispositivo de cliente pode comutar dinâmica e continuamente entre essas representações, por exemplo, para executar adaptação de largura de banda. Por exemplo, cada representação de dados de vídeo para um período específico pode ser atribuída ao mesmo conjunto de adaptações, de modo que quaisquer das representações podem ser selecionadas para decodificação para apresentar dados de mídia, como dados de vídeo ou dados de áudio, do conteúdo de multimídia para o período correspondente. O conteúdo de mídia em um período pode ser representado por uma representação do grupo 0, se presente, ou combinação de no máximo uma representação de cada grupo não zero, em alguns exemplos. Dados de temporização para cada representação de um período podem ser expressos em relação ao tempo de início do período.[0028] Representations of a specific period can be assigned to a group indicated by an attribute in the MPD indicative of a set of adaptations to which the representations belong. Representations in the same adaptation set are generally considered to be alternatives to each other, where a client device can dynamically and continuously switch between these representations, for example, to perform bandwidth adaptation. For example, each representation of video data for a specific period can be assigned the same set of adaptations, so that any of the representations can be selected for decoding to present media data, such as video data or audio data, from the content. of multimedia for the corresponding period. The media content in a period can be represented by a representation of group 0, if present, or a combination of at most one representation of each non-zero group, in some examples. Timing data for each representation of a period can be expressed in terms of the start time of the period.

[0029] Uma representação pode incluir um ou mais segmentos. Cada representação pode incluir um segmento de inicialização, ou cada segmento de uma representação pode ser de auto-inicialização. Quando presente, o segmento de inicialização pode conter informações de inicialização para acessar a representação. Em geral, o segmento de inicialização não contém dados de mídia. Um segmento pode ser exclusivamente referenciado por um identificador, como um localizador de recurso uniforme (URL), nome de recurso uniforme (URN), ou identificador de recurso uniforme (URI). A MPD pode fornecer os identificadores para cada segmento. Em alguns exemplos, a MPD pode também fornecer faixas de bytes na forma de um atributo de faixa, que pode corresponder aos dados para um segmento em um arquivo acessível pelo URL, URN ou URI.[0029] A representation may include one or more segments. Each representation can include an initialization segment, or each segment of a representation can be bootstrap. When present, the initialization segment can contain initialization information for accessing the representation. In general, the boot segment does not contain media data. A segment can be uniquely referenced by an identifier, such as a uniform resource locator (URL), uniform resource name (URN), or uniform resource identifier (URI). MPD can provide identifiers for each segment. In some examples, MPD may also provide ranges of bytes in the form of a range attribute, which may correspond to data for a segment in a file accessible by URL, URN, or URI.

[0030] Representações diferentes podem ser selecionadas para recuperação substancialmente simultânea para tipos diferentes de dados de mídia. Por exemplo, um dispositivo de cliente pode selecionar uma representação de áudio, uma representação de vídeo, e uma representação de texto temporizado do qual recuperar segmentos. Em alguns exemplos, o dispositivo de cliente pode selecionar conjuntos de adaptação específicos para executar adaptação de largura de banda. Isto é, o dispositivo de cliente pode selecionar um conjunto de adaptação incluindo representações de vídeo, um conjunto de adaptação incluindo representações de áudio, e/ou um conjunto de adaptação incluindo exto temporizado. Alternativamente, o dispositivo de cliente pode selecionar conjuntos de adaptação para certos tipos de mídia (por exemplo, vídeo), e diretamente selecionar representações para outros tipos de mídia (por exemplo, áudio e/ou texto temporizado).[0030] Different representations can be selected for substantially simultaneous recovery for different types of media data. For example, a client device can select an audio representation, a video representation, and a timed text representation from which to retrieve segments. In some examples, the client device may select specific adaptation sets to perform bandwidth adaptation. That is, the client device may select a adaptation set including video representations, a adaptation set including audio representations, and/or a adaptation set including exto-timed. Alternatively, the client device may select adaptation sets for certain media types (eg, video), and directly select representations for other media types (eg, audio and/or timed text).

[0031] Tipicamente, nenhuma continuidade é necessária em um limite de período em termos de oferta de conteúdo. O conteúdo pode ser oferecido com codecs diferentes, atributos de linguagem, proteção de conteúdo e assim por diante. Espera-se que o cliente reproduza o conteúdo continuamente através de períodos, porém pode haver implicações em termos de implementação para tornar o playout totalmente contínuo e sem emenda.[0031] Typically, no continuity is needed over a period limit in terms of offering content. Content can be served with different codecs, language attributes, content protection, and so on. The client is expected to play the content continuously over time, but there may be implementation implications to make the playout fully continuous and seamless.

[0032] Em geral, a comutação de áudio/vídeo através de limites de período pode não ser contínua. De acordo com ISO/IEC 23009-1, seção 7.2.1, no início de um período novo, o procedimento de playout dos componentes de conteúdo de mídia pode necessitar ser ajustado no final do período precedente para casar o tempo periodStart do período novo visto que pode haver pequenas sobreposições ou folgas com a representação ao término do período precedente. Sobreposições (respectivamente folgas) podem resultar de Segmentos de mídia com duração de apresentação efetiva do fluxo de mídia mais longo (respectivamente mais curto) do que indicado pela duração de período. Também no início de um período, se o tempo de apresentação mais cedo de qualquer unidade de acesso de uma representação não puder ser igual ao deslocamento de tempo de apresentação sinalizado no @presentationTimeOffset, então os procedimentos de playout necessitam ser ajustados de acordo.[0032] In general, audio/video switching across period boundaries may not be seamless. According to ISO/IEC 23009-1, section 7.2.1, at the beginning of a new period, the playout procedure of media content components may need to be adjusted at the end of the preceding period to match the periodStart time of the new period seen that there may be minor overlaps or gaps with representation at the end of the preceding period. Overlaps (respectively gaps) can result from Media Segments with media stream effective presentation duration longer (respectively shorter) than indicated by period length. Also at the beginning of a period, if the earliest presentation time of any access unit of a representation cannot equal the presentation time offset flagged in @presentationTimeOffset, then the playout procedures need to be adjusted accordingly.

[0033] Entretanto, em certas condições, a continuação sem emenda da apresentação através de períodos pode ser obtida, especialmente se o conteúdo for adequadamente condicionado. Essa seção fornece uma visão geral sobre exigências de oferta de conteúdo e recomendações através de períodos e o comportamento de cliente ao baixar e apresentar conteúdo através de períodos.[0033] However, under certain conditions, seamless continuation of presentation across periods may be achieved, especially if the content is suitably conditioned. This section provides an overview of content delivery requirements and recommendations across periods and customer behavior when downloading and serving content across periods.

[0034] Observe que a discussão abaixo se aplica tanto a Apresentações de Mídia estáticas como dinâmicas, e as técnicas descritas abaixo podem ser independentes do uso de xlink. As regras descritas abaixo podem se aplicar para o caso após os elementos remotos serem desreferenciados.[0034] Note that the discussion below applies to both static and dynamic Media Presentations, and the techniques described below may be independent of the use of xlink. The rules described below may apply for the case after remote elements are dereferenced.

[0035] A duração de apresentação de uma representação pode ser a diferença entre o tempo de apresentação final da representação e o tempo de apresentação mais cedo da representação. A duração de tempo de apresentação pode ter, por exemplo, a mesma unidade que o deslocamento de tempo de apresentação, isto é, @timescale, e expressa a duração exata de apresentação da representação.[0035] The presentation duration of a representation may be the difference between the final presentation time of the representation and the earliest presentation time of the representation. The display time duration can have, for example, the same unit as the display time offset, ie @timescale, and expresses the exact display duration of the representation.

[0036] A duração de apresentação pode ser sinalizada por uma das duas técnicas de exemplo seguintes, ou técnicas similares. Uma técnica de exemplo envolve um novo atributo opcional @presentationTimeDuration especificando a duração de apresentação da representação incluída na escala de tempo do atributo @timescale. Uma segunda técnica de exemplo envolve um descritor suplementar com @scheme_id_URI definido em “urn:mpeg:dash:period_continuity:2014”, que pode ser fornecido para um conjunto de adaptação com o @value do descritor, PID, casando o valor de um @id de um período que pode estar contido na MPD, o valor do AdaptationSet@id sendo AID, e o valor da @presentationTimeOffset para esses conjuntos de adaptação pode ser fornecido e pode ser PTO.[0036] The presentation duration can be signaled by one of the following two example techniques, or similar techniques. One example technique involves a new optional @presentationTimeDuration attribute specifying the presentation duration of the representation included in the timescale of the @timescale attribute. A second example technique involves a supplemental descriptor with @scheme_id_URI defined in “urn:mpeg:dash:period_continuity:2014”, which can be supplied to an adaptation set with the @value of the descriptor, PID, matching the value of an @ id of a period that may be contained in the MPD, the value of the AdaptationSet@id being AID, and the value of the @presentationTimeOffset for these adaptation sets may be provided and may be PTO.

[0037] Se esse sinal estiver presente, então para o período com o valor do period@id sendo PID e para o conjunto de adaptação com AdaptationSet@id sendo AID, a duração de apresentação de cada representação nesse conjunto de adaptação pode ser obtida como a diferença de PTO menos o valor de @presentationTimeOffset.[0037] If this signal is present, then for the period with the period@id value being PID and for the adaptation set with AdaptationSet@id being AID, the presentation duration of each representation in that adaptation set can be obtained as the PTO offset minus the @presentationTimeOffset value.

[0038] Se conteúdo pude ser oferecido com múltiplos períodos, então o fornecedor de conteúdo poderia oferecer o conteúdo de modo que tempo de apresentação de mídia efetiva possa ser tão próxima quanto possível à duração de período efetivo. Pode ser recomendado que a duração de período possa ser o máximo da duração de apresentação de todas as representações contidas no período.[0038] If content could be offered with multiple periods, then the content provider could offer the content in such a way that effective media display time can be as close as possible to the effective period duration. It may be recommended that the length of the period be the maximum of the duration of submission of all representations contained in the period.

[0039] Em certas circunstâncias, o fornecedor de conteúdo oferece conteúdo no período seguinte que pode ser um continuação do conteúdo no período anterior, possivelmente no período imediatamente seguinte ou em um período posterior. O caso mencionado por último se aplica, por exemplo, após um período de anúncio ter sido inserido. O fornecedor de conteúdo pode expressar que os componentes de mídia contidos em dois conjuntos de adaptação em dois períodos diferentes sejam associados por atribuir Identificadores de asset equivalentes a ambos os períodos e por identificar ambos os conjuntos de adaptação com valor idêntico para o atributo @id.[0039] In certain circumstances, the content provider offers content in the next period that may be a continuation of content in the previous period, possibly in the immediately following period or in a later period. The last mentioned case applies, for example, after an advertisement period has been entered. The content provider can express that media components contained in two adaptation sets in two different periods are associated by assigning equivalent Asset Identifiers to both periods and by identifying both adaptation sets with identical value for the @id attribute.

[0040] Se conjuntos de adaptação em dois períodos diferentes forem associados, então todos ou quaisquer dos parâmetros a seguir podem ser idênticos para os dois conjuntos de adaptação: a linguagem como descrito pelo atributo @lang, o tipo de componente de mídia descrito pelo atributo @contentType, a razão de aspecto de imagem como descrito pelo atributo @par, qualquer propriedade de papel como descrito pelos elementos de papel, qualquer propriedade de acessibilidade como descrito pelos elementos de Acessibilidade, e qualquer propriedade de ponto de vista como descrito pelos elementos de Ponto de vista. Em um exemplo, o padrão DASH pode ser modificado de acordo com as técnicas dessa revelação para exigir que, onde conjuntos de adaptação em dois períodos diferente são associados, cada dos parâmetros acima seja idêntico para os dois conjuntos de adaptação.[0040] If adaptation sets in two different periods are associated, then all or any of the following parameters may be identical for the two adaptation sets: the language as described by the @lang attribute, the type of media component described by the attribute @contentType, the image aspect ratio as described by the @par attribute, any role properties as described by the role elements, any accessibility properties as described by the Accessibility elements, and any viewpoint properties as described by the Accessibility elements. Point of view. In one example, the DASH pattern can be modified in accordance with the techniques of this disclosure to require that, where adaptation sets in two different periods are associated, each of the above parameters be identical for the two adaptation sets.

[0041] Além disso, dois conjuntos de adaptação em uma MPD podem ser ditos como sendo período-contínuo se cada das condições a seguir for verdadeira para os dois conjuntos de adaptação: . os conjuntos de adaptação são indicados como sendo, e/ou determinados como sendo, associados, . a @presentationTimeOffset pode estar presente ou pode ser inferida como 0 para todas as representações nos dois conjuntos de adaptação, . em um conjunto de adaptação, o valor de @presentationTimeOffset pode ser idêntico para todas as representações, . a soma do valor de @presentationTimeOffset e a duração de apresentação de todas as representações em um conjunto de adaptação é idêntica ao valor de @presentationTimeOffset do outro conjunto de adaptação, e . se representações nos dois conjuntos de adaptação tiverem o mesmo valor para @id, então têm Segmentos de Inicialização funcionalmente equivalentes, isto é, o Segmento de Inicialização de uma representação pode ser usado para continuar o layout da outra representação.[0041] Furthermore, two adaptation sets in an MPD can be said to be continuous-period if each of the following conditions is true for the two adaptation sets: . adaptation sets are indicated to be, and/or determined to be, associated, . @presentationTimeOffset may be present or may be inferred as 0 for all representations in both adaptation sets, . in an adaptation set, the value of @presentationTimeOffset can be identical for all representations, . the sum of the @presentationTimeOffset value and the presentation duration of all representations in one adaptation set is identical to the @presentationTimeOffset value of the other adaptation set, and . if representations in the two adaptation sets have the same value for @id, then they have functionally equivalent Initialization Segments, ie the Initialization Segment of one representation can be used to continue the layout of the other representation.

[0042] Autores de conteúdo poderiam sinalizar conjuntos de adaptação de período contínuo por sinalizar a duração de apresentação usando uma das duas técnicas de exemplo introduzidas acima (por exemplo, usando sinalização de duração de apresentação, como o atributo @presentationTimeDuration e/ou o descritor suplementar com @scheme_id_URI definido em “urn:mpeg:dash:period_continuity: 2014”). Autores de conteúdo poderiam oferecer uma MPD com conjuntos de adaptação de período contínuo se a MPD contiver períodos com Identificadores de asset idênticos. Além disso, se dois conjuntos de adaptação em uma MPD forem de período contínuo e o segundo conjunto de adaptação tiver associado um Descritor Suplementar com @schemeIDURI=”urn.mpeg:dash:period-switchable,” então a concatenação de qualquer representação da primeira Adaptação com qualquer representação a partir do segundo conjunto de adaptação sem o Segmento de Inicialização resulta em um formato de fluxo de bits que se conforma aos formatos de mídia em uso como sinalizado no primeiro conjunto de adaptação. Essa propriedade pode ser mencionada como conjuntos de adaptação de período concatenável. Para processamento simplificado em clientes, autores de conteúdo podem oferecer uma MPD com conjuntos de adaptação de período concatenável se a MPD contiver períodos com Identificadores de asset idênticos.[0042] Content authors could flag continuous period adaptation sets by flagging presentation duration using one of the two example techniques introduced above (e.g., using presentation duration flags such as the @presentationTimeDuration attribute and/or the descriptor supplement with @scheme_id_URI defined in “urn:mpeg:dash:period_continuity: 2014”). Content authors could provide an MPD with continuous period adaptation sets if the MPD contains periods with identical Asset Identifiers. Furthermore, if two adaptation sets in an MPD are continuous period and the second adaptation set has an associated Supplementary Descriptor with @schemeIDURI=”urn.mpeg:dash:period-switchable,” then the concatenation of any representation of the first Adaptation with any representation from the second adaptation set without the Initialization Segment results in a bitstream format that conforms to the media formats in use as signaled in the first adaptation set. This property can be referred to as concatenatable period fitting sets. For simplified processing on clients, content authors can provide an MPD with concatenatable span adaptation sets if the MPD contains spans with identical Asset Identifiers.

[0043] Tipicamente, nenhuma continuidade é assegurada em um limite de período, em termos de oferta de conteúdo. O conteúdo pode ser oferecido cm codecs diferentes, atributos de linguagem, e proteção diferente, entre outras coisas. O cliente pode tocar o conteúdo continuamente através de períodos, porém pode haver implicações em termos de implementação para fornecer playout totalmente contínuo e sem emenda. Pode ser o caso de que em limites de período (por exemplo, onde não haja continuidade), o motor de apresentação pode ser reinicializado, por exemplo, devido a alterações em formatos, codecs ou outras propriedades. Isso pode resultar em um retardo de reinicialização. Tal retardo de reinicialização pode ser reduzido ou minimizado.[0043] Typically, no continuity is assured over a period limit, in terms of offering content. Content may be offered with different codecs, language attributes, and different protection, among other things. The client can play the content continuously over time, but there may be implementation implications to provide fully continuous and seamless playout. It may be the case that on time limits (eg where there is no continuity) the rendering engine may be reset, for example due to changes in formats, codecs or other properties. This can result in a restart delay. Such restart delay can be reduced or minimized.

[0044] Se a MPD for do tipo estático, então a apresentação de mídia efetiva pode ser estendida pelos retardos de inicialização. Entretanto, no caso de serviços dinâmicos, a adição do retardo de reinicialização ao playout pode resultar em derivação entre o codificador e o motor de apresentação. Portanto, o playout pode ser ajustado ao término de cada período para fornecer uma apresentação contínua sem adicionar derivação entre o tempo documentado na MPD e o playout efetivo, isto é, a diferença entre o tempo de playout efetivo e o tempo de início de período pode permanecer constante.[0044] If the MPD is of static type, then effective media presentation may be extended by startup delays. However, in the case of dynamic services, adding restart delay to the playout can result in drift between the encoder and the presentation engine. Therefore, the playout can be adjusted at the end of each period to provide a continuous presentation without adding drift between the time documented in the MPD and the actual playout, i.e., the difference between the effective playout time and the period start time can remain constant.

[0045] Se o cliente apresentar componentes de mídia de um certo conjunto de adaptação em um período, e se o período seguinte tiver atribuído um Identificador de asset idêntico, então o cliente pode identificar um período associado e, na ausência de outras informações, continuar o tocar o conteúdo no conjunto de adaptação associado.[0045] If the client presents media components from a certain adaptation set in one period, and if the following period has been assigned an identical Asset Identifier, then the client may identify an associated period and, in the absence of other information, continue o touch the content in the associated adaptation set.

[0046] Se adicionalmente os conjuntos de adaptação forem de período contínuo, isto é, os tempos de apresentação são contínuos e isso pode ser sinalizado na MPD, então o cliente pode tocar continuamente o conteúdo através do limite de período. Mais adequadamente, o cliente pode continuar a tocar a representação no conjunto de adaptação com o mesmo @id, porém pode não haver garantia de que essa representação possa estar disponível. Nesse caso, o cliente comutará continuamente para qualquer outra representação no conjunto de adaptação.[0046] If additionally the adaptation sets are of continuous period, that is, the presentation times are continuous and this can be signaled in the MPD, then the client can continuously play the content through the period limit. More appropriately, the client can continue to play the representation in the adaptation set with the same @id, however there may be no guarantee that this representation can be available. In that case, the client will seamlessly switch to any other representation in the adaptation set.

[0047] O formato de entrada pode ser uma MPD que se conforma ao perfil Em demanda. Os elementos e atributos relevantes da MPD são fornecidos na tabela abaixo. No exemplo abaixo, a MPD contém dois conjuntos de adaptação.Tabela 1 - Informações relevantes para perfil em- demanda [0047] The input format can be an MPD that conforms to the On Demand profile. The relevant MPD elements and attributes are provided in the table below. In the example below, the MPD contains two fitting sets. Table 1 - Relevant information for the on-demand profile

[0048] Para cada representação, o Índice de segmento pode ser baixado com o URL da representação fornecida em BaseURL indicado como baseURL e o valor de SegmentBase@indexRange indicado como init como a seguir:GET baseURL HTTP/1.1 Faixa: bytes=0-(init-1)[0048] For each representation, the Segment Index can be downloaded with the representation URL given in BaseURL given as baseURL and the value of SegmentBase@indexRange given as init as follows:GET baseURL HTTP/1.1 Range: bytes=0- (init-1)

[0049] Então a faixa de byte recebida pode ser analisada para o Índice de segmento. A partir da primeira caixa de Índice de segmento, informações podem ser extraídas. A escala de tempo da faixa pode ser extraída a partir da escala de tempo de índice de segmento e pode ser indicada como escala de tempo. O número total de subsegmentos Nsub pode ser extraído a partir do Índice de segmento como a reference_count. O tempo de apresentação mais cedo ept pode ser extraído a partir do Índice de segmento como o earliest_presentation_time. O primeiro deslocamento fo pode ser extraído a partir do Índice de segmento como o first_offset. Para cada subsegmento de folha i, a duração subsequente no Índice de segmento de cada subsegmento de folha indicado como sdur[i], o tamanho do subsegment size[i], e outras informações relacionadas a subsegmento ssi[i].[0049] Then the received byte range can be analyzed for Segment Index. From the first Segment Index box, information can be extracted. Track timescale can be extracted from segment index timescale and can be specified as timescale. The total number of Nsub subsegments can be extracted from the Segment Index as the reference_count. The earliest ept presentation time can be extracted from the Segment Index as the earliest_presentation_time. The first offset fo can be extracted from the Segment Index as the first_offset. For each leaf subsegment i, the subsequent duration in the Segment Index of each leaf subsegment denoted as sdur[i], the subsegment size size[i], and other subsegment-related information ssi[i].

[0050] Em um exemplo de um fluxo em demanda, a apresentação pode ser dividida em dois períodos mais cedo em tempo de apresentação de mídia tsplit expresso em relação ao tempo de início de período. Pode haver dois conjuntos de adaptação e cada conjunto de adaptação pode ter uma representação. Em alguns exemplos, um alinhamento de um limite subsequente dos conjuntos de adaptação pode ser aplicado.[0050] In an example of an on-demand stream, the presentation can be split into two periods earlier in tsplit media presentation time expressed in relation to the period start time. There can be two adaptation sets and each adaptation set can have a representation. In some examples, an alignment of a subsequent boundary of adaptation sets may be applied.

[0051] As seguintes informações podem ser assumidas como sendo disponíveis para conteúdo de período único. . period@start ps . MPD@mediaPresentationDuration mpDUR . BaseURL bu1, bu2 . SegmentBase@indexRange ir1, ir2 . SegmentBase@timescale ts1, ts2 . SegmentBase@presentationDuration pd1, pd2 . o Índice de segmento da representação O Nsub1, Nsub2 O ept1, ept2 O fo1, fo2 O sdur1[i], sdur2[i] O fo1[i], fo2[i] O ss1[i], ss2[i][0051] The following information can be assumed to be available for single-period content. . period@start ps . MPD@mediaPresentationDuration mpDUR . BaseURL bu1, bu2 . SegmentBase@indexRange ir1, ir2 . SegmentBase@timescale ts1, ts2 . SegmentBase@presentationDuration pd1, pd2 . o Segment index of representation O Nsub1, Nsub2 O ept1, ept2 O fo1, fo2 O sdur1[i], sdur2[i] O fo1[i], fo2[i] O ss1[i], ss2[i]

[0052] Para gerar uma nova apresentação de mídia, as seguintes informações podem ser geradas: Atualização de atributos e elementos no primeiro período de para cada representação de cada conjunto de adaptação: a. period@start ps1 b. adicionar period@duration pdur1 = tsplit c. baseURL bu11, bu12 d. SegmentBase@indexRange ir11, ir12 e. SegmentBase@presentationTimeOffset pto11, pto12 f. SegmentBase@presentationDuration pd11, pd12 g. O Índice de segmento da representação i. Nsub11, Nsbu12 ii. Ept11, ept12 iii. Fo11, fo12 iv. Sdur11[i], sdur12[i] v. Ssi11[i], ssi12[i] h. A própria representação pode ser encurtada Atualização e adição de atributos e elementos no segundo período novo para cada representação: 1. adicionar period@duration pdur2 2. BaseURL bu21, bu22 3. SegmentBase@indexRange ir21, ir22 4. SegmentBase@presentationTimeOffset pto21, pto22 5. SegmentBase@presentationDuration pd21, pd22 f. O Índice de segmento da representação i. Nsub21, Nsbu22 ii. Ept21, ep22 iii. Fo21, fo22 iv. Sdur21[i], sdur22[i] v. Ssi21[i], ssi22[i] A própria representação pode ser gerada.[0052] To generate a new media presentation, the following information can be generated: Update of attributes and elements in the first period of for each representation of each adaptation set: a. period@start ps1 b. add period@duration pdur1 = tsplit c. baseURL bu11, bu12 d. SegmentBase@indexRange ir11, ir12 e. SegmentBase@presentationTimeOffset pto11, pto12 f. SegmentBase@presentationDuration pd11, pd12 g. The segment index of representation i. Nsub11, Nsbu12 ii. Ept11, ept12 iii. Pho11, fo12 iv. Sdur11[i], sdur12[i] v. Ssi11[i], ssi12[i] h. The representation itself can be shortened Update and add attributes and elements in the second new period for each representation: 1. add period@duration pdur2 2. BaseURL bu21, bu22 3. SegmentBase@indexRange ir21, ir22 4. SegmentBase@presentationTimeOffset pto21, pto22 5. SegmentBase@presentationDuration pd21, pd22 f. The segment index of representation i. Nsub21, Nsbu22 ii. Ept21, ep22iii. Fo21, fo22 iv. Sdur21[i], sdur22[i] v. Ssi21[i], ssi22[i] The representation itself can be generated.

[0053] A nova informação pode ser gerada como a seguir para a primeira representação que alinha com o limite de segmento. Primeiramente, o Nsub11 pode ser encontrado que corresponde a tsplit, por exemplo, de acordo com o seguinte algoritmo: . tempo = eptl — ptol . Nsub11 = 0 . enquanto (tempo < tsplit*tsl &&Nsubll < Nsubl)) . fazer O tempo + = sdur[Nsubll] O Nsubll++ . feito[0053] New information can be generated as follows for the first representation that aligns with the segment boundary. First, the Nsub11 can be found that corresponds to tsplit, for example, according to the following algorithm: . time = eptl — ptol . Nsub11 = 0 . while (time < tsplit*tsl &&Nsubll < Nsubl)) . do The time + = sdur[Nsubll] The Nsubll++ . done

[0054] Por esse algoritmo, Nsubll pode ser determinado. Nsbull pode ser menor que Nsubll. Se Nsubll não for menor que Nsubll, nenhuma divisão de período é necessariamente feita.[0054] By this algorithm, Nsubll can be determined. Nsbull can be smaller than Nsubll. If Nsubll is not less than Nsubll, no period division is necessarily done.

[0055] O tempo de divisão para representação l pode ser tsplitl = time/tsl >= tsplit visto que uma divisão em um limite de segmento exato pode ser desejada. Observe que a divisão anunciada pode ser tsplit, porém em um nível de representação, somente limites de segmento são divididos. O novo tamanho de índice de segmento pode ser menor que o anterior, isto é, o novo tamanho de índice de segmento pode ser (Nsubl - Nsbu11)*12 byte menor. Isso pode ser deduzido do primeiro deslocamento.[0055] The split time for l representation may be tsplitl = time/tsl >= tsplit since a split on an exact segment boundary may be desired. Note that the advertised split can be tsplit, but at a representation level, only segment boundaries are split. The new segment index size can be smaller than the previous one, that is, the new segment index size can be (Nsubl - Nsbu11)*12 byte smaller. This can be deducted from the first displacement.

[0056] Tempo pode ser a duração de apresentação pd11. O period@start do período 1 pode ser mantido. O period@duration pode ser definido em tsplit. O seguinte algoritmo é um exemplo de como a informação nova pode ser gerada para representação 1 no período 1. . bull = bul_period1 . ir11 = ir1 - (Nsubl - Nsub11)*12 . pto11 = pto1 . pd11 = tempo . ept11 = ept1 . fo11 = fo1 - (Nsub1 - Nsub11)*12 . i = 0 . enquanto (enquanto (i < Nsub11)) . fazer O ssi11[i] = ssi[i] O i++ . feito[0056] Time can be the pd11 presentation duration. The period@start of period 1 can be kept. The period@duration can be set in tsplit. The following algorithm is an example of how new information can be generated for representation 1 in period 1. . bull = bul_period1 . ir11 = ir1 - (Nsubl - Nsub11)*12 . pto11 = pto1 . pd11 = time . ept11 = ept1 . fo11 = fo1 - (Nsub1 - Nsub11)*12 . i = 0 . while (while (i < Nsub11)) . do O ssi11[i] = ssi[i] O i++ . done

[0057] A seguir Nsub12 pode ser encontrado que corresponde a tsplit, por exemplo, de acordo com o seguinte algoritmo: . tempo = ept2 - pto2 . Nsub12 = 0 . enquanto (tempo <tsplit*ts2 && Nsub12 < Nsub2)) . fazer O tempo += sdur[Nsub12] O Nsub12++ . feito[0057] The following Nsub12 can be found that corresponds to tsplit, for example according to the following algorithm: . time = ept2 - pto2 . Nsub12 = 0 . while (time <tsplit*ts2 && Nsub12 < Nsub2)) . do O time += sdur[Nsub12] O Nsub12++ . done

[0058] O tempo de divisão real para representação 2 pode ser tsplit2 = time/t2 >=tsplit, uma divisão em um limite subsequente exato pode ser desejada. O novo tamanho de índice de segmento pode ser menor que o anterior, por exemplo, pode ser (Nsub2 - Nsub12)*12 bytes menor. Isso pode ser deduzido a partir do primeiro deslocamento.[0058] The actual split time for representation 2 may be tsplit2 = time/t2 >=tsplit, a split at an exact subsequent boundary may be desired. The new segment index size can be smaller than the previous one, for example it can be (Nsub2 - Nsub12)*12 bytes smaller. This can be deduced from the first displacement.

[0059] Tempo pode ser a duração de apresentação pd21. O algoritmo abaixo é um exemplo de como a informação nova pode ser gerada para representação 2 no período 1. . bul2 = bu2_period1 . ir12 = ir2 - (Nsub2 - Nsub12)*12 . pto12 = pto2 . pd12 = tempo . ept12 = ept2 . fo12 = fo2 - (Nsub2 - Nsub12)*12 . i = 0 . enquanto (enquanto (i < Nsub12)) . fazer O ss12[i] = ss2[i] O i++ . feito[0059] Time can be the pd21 presentation duration. The algorithm below is an example of how new information can be generated for representation 2 in period 1. . bul2 = bu2_period1 . ir12 = ir2 - (Nsub2 - Nsub12)*12 . pto12 = pto2 . pd12 = time . ept12 = ept2 . fo12 = fo2 - (Nsub2 - Nsub12)*12 . i = 0 . while (while (i < Nsub12)) . make O ss12[i] = ss2[i] O i++ . done

[0060] Um novo período 2 pode ser gerado. Em particular, em um exemplo, um dispositivo de servidor pode gerar o novo period2. Primeiramente, o dispositivo de servidor 60 pode copiar a informação a partir do período 1 (também o identificador de asset, e conjuntos de adaptação com ids, e etc.) O period@start do novo período não necessita ser fornecido. O period@duration pdur2 do novo período pode ser mpDUR - tsplit. O seguinte algoritmo é um exemplo de como a informação nova pode ser gerada para representação 1 no período 2. . Nsub12 = Nsub1 - Nsub11 . but21 = bu1_period2 . ir21 = ir1 - (Nsub1 - Nsub12)*12 . pto21 = (tsplit1 - tsplit)*ts1 . pd21 = pd1 - pd11 . ept21 = pd11 . fo21 = fo1 - (Nsub1 - Nsub12)*12 . i = 0 . enquanto (enquanto (i < Nsub12)) . fazer O ssi21[1] = ss1[i + Nsub11] O i++ . feito[0060] A new period 2 can be generated. In particular, in an example, a server device can generate the new period2. Firstly, the server device 60 can copy the information from period 1 (also the asset identifier, and adaptation sets with ids, and etc.) The period@start of the new period need not be provided. The period@duration pdur2 of the new period can be mpDUR - tsplit. The following algorithm is an example of how new information can be generated for representation 1 in period 2. . Nsub12 = Nsub1 - Nsub11 . but21 = bu1_period2 . ir21 = ir1 - (Nsub1 - Nsub12)*12 . pto21 = (tsplit1 - tsplit)*ts1 . pd21 = pd1 - pd11 . ept21 = pd11 . fo21 = fo1 - (Nsub1 - Nsub12)*12 . i = 0 . while (while (i < Nsub12)) . do O ssi21[1] = ss1[i + Nsub11] O i++ . done

[0061] O seguinte algoritmo é um exemplo de como a informação nova pode ser gerada para representação 2 no período 2. . Nsub22 = Nsub2 - Nsub12 . bu22 = bu2_period2 . ir22 = ir2 - (Nsub2 - Nsub22)*12 . pto22 = (tsplit2 - tsplit)*ts2 . pd22 = pd2 - pd12 . ept22 = pd12 . fo22 = fo2 - (Nsub2 - Nsub22)*12 . i = 0 . enquanto (enquanto (i < Nsub22)) . fazer O ssi22[i] = ssi2[i+Nsub12] O i++ . feito[0061] The following algorithm is an example of how new information can be generated for representation 2 in period 2. . Nsub22 = Nsub2 - Nsub12 . bu22 = bu2_period2 . ir22 = ir2 - (Nsub2 - Nsub22)*12 . pto22 = (tsplit2 - tsplit)*ts2 . pd22 = pd2 - pd12 . ept22 = pd12 . fo22 = fo2 - (Nsub2 - Nsub22)*12 . i = 0 . while (while (i < Nsub22)) . do O ssi22[i] = ssi2[i+Nsub12] O i++ . done

[0062] Em outros exemplos, tsplit pode ser usado como um tempo de divisão para ter pto21 sendo 0. Esse pode ser o caso, visto que divisão pode ser feita no quadro IDR.[0062] In other examples, tsplit can be used as a time division to have pto21 be 0. This may be the case as division can be done on the IDR frame.

[0063] A informação acima pode ser mapeada de volta em uma MPD completa com a mesma informação, porém pelo algoritmo discutido acima, um ponto de junção em tempo tsplit pode ser gerado. Qualquer período pode ser inserido no ponto de junção. O esforço acima pode remover MPD@mediaPresentationDuration e adicionar e substituir como documentado acima.[0063] The above information can be mapped back into a complete MPD with the same information, however by the algorithm discussed above, a tsplit-time join point can be generated. Any period can be entered at the join point. The above effort can remove MPD@mediaPresentationDuration and add and replace as documented above.

[0064] Em outra técnica de exemplo dessa revelação, um fluxo ao vivo pode ser usado. Para uma informação de perfil ao vivo, a informação pode estar disponível a partir da MPD e dos Segmentos. A escala de tempo da faixa pode ser extraída a partir da escala de tempo de Índice de segmento e pode ser indicada como escala de tempo. O número total de segmentos Nseg pode ser extraído da Informação de segmento. O tempo de apresentação mais cedo ept pode ser extraído do Índice de segmento como o earliest_presentation_time. O primeiro deslocamento @startNumber pode ser extraído da MPD. Para cada segmento I, a duração de segmento no Índice de segmento de cada subsegmento de folha indicado como sdur[i] e outra informação relacionada a segmento si[i].[0064] In another example technique of this disclosure, a live stream can be used. For a live profile information, information can be available from MPD and Segments. Track timescale can be extracted from Segment index timescale and can be specified as timescale. The total number of Nseg segments can be extracted from Segment Information. The earliest ept presentation time can be extracted from the Segment Index as the earliest_presentation_time. The first @startNumber offset can be extracted from the MPD. For each segment I, the segment duration in the Segment Index of each leaf subsegment indicated as sdur[i] and other segment-related information si[i].

[0065] Em uma apresentação de exemplo, a apresentação pode ser dividida em dois períodos mais cedo em tempo de apresentação de mídia tsplit expresso em relação ao tempo de Início de período. Essa divisão pode não alinhar com o limite de segmento do segundo conjunto de adaptação. Pode haver dois conjuntos de adaptação e cada conjunto de adaptação pode ter uma representação.[0065] In an example presentation, the presentation can be divided into two periods earlier in tsplit media presentation time expressed in relation to the period Start time. This division might not line up with the segment boundary of the second adaptation set. There can be two adaptation sets and each adaptation set can have a representation.

[0066] A seguinte informação pode ser assumida como sendo disponível para o conteúdo de período único. . period@start ps . MPD@mediaPresentationDuration mpDUR . SegmentTemplate@media mt1, mt2 . SegmentTemplate@timescale ts1, ts2 . SegmentTemplate@presentationDuration pd1, pd2 . A informação de segmento O Nseg1, Nseg2 O ept1, ept2 O sn1, sn2 O sdur1[i], sdur2[i] O si1[i], si2[i][0066] The following information can be assumed to be available for single-period content. . period@start ps . MPD@mediaPresentationDuration mpDUR . SegmentTemplate@media mt1, mt2 . SegmentTemplate@timescale ts1, ts2 . SegmentTemplate@presentationDuration pd1, pd2 . The segment information The Nseg1, Nseg2 The ept1, ept2 The sn1, sn2 The sdur1[i], sdur2[i] The si1[i], si2[i]

[0067] Para gerar uma nova apresentação de mídia, as seguintes informações podem ser geradas: . um dispositivo de servidor pode atualizar atributos e elementos no primeiro período para cada representação de cada conjunto de adaptação, como a seguir: O period@start ps1 O adicionar period@duration pdur1 = tsplit O Segmenttemplate@media mt11, mt12 O segmentTemplate@presentationTimeOffset pto11, pto12 O segmentTemplate@presentationDuration pd11, pd12 O A informação de segmento da representação G Nseg11, Nseg12 G ept11, etp12 G sn11, sn12 Gsdur11[i], sdur12[i] G si11[i], si12[i] O a própria representação pode ser encurtada . um dispositivo de servidor pode atualizar e adicionar elementos e atributos no segundo período novo para cada representação, como a seguir: O adicionar period@duration pdur2 O Segmenttemplate@media mt21, mt22 O segmentTemplate@presentationTimeOffset pto21, pto22 O segmentTemplate@presentationDuration pd21, pd22 O A informação de segmento da representação G Nseg21, Nseg22 G ept21, etp22 G sn21, sn22 Gsdur21[i], sdur22[i] G si21[i], si22[i] O a própria representação pode ser gerada.[0067] To generate a new media presentation, the following information can be generated: . a server device can update attributes and elements in the first period for each representation of each adaptation set, as follows: The period@start ps1 The add period@duration pdur1 = tsplit The Segmenttemplate@media mt11, mt12 The segmentTemplate@presentationTimeOffset pto11 , pto12 O segmentTemplate@presentationDuration pd11, pd12 O The segment information of the representation G Nseg11, Nseg12 G ept11, etp12 G sn11, sn12 Gsdur11[i], sdur12[i] G si11[i], si12[i] O the representation itself can be shortened. a server device can update and add new elements and attributes in the second period for each representation, as follows: The add period@duration pdur2 The Segmenttemplate@media mt21, mt22 The segmentTemplate@presentationTimeOffset pto21, pto22 The segmentTemplate@presentationDuration pd21, pd22 O The segment information of the representation G Nseg21, Nseg22 G ept21, etp22 G sn21, sn22 Gsdur21[i], sdur22[i] G si21[i], si22[i] O the representation itself can be generated.

[0068] Um dispositivo de servidor pode gerar informações novas como a seguir para a primeira representação que alinha com o limite de segmento. Primeiramente, o Nseg11 pode ser encontrado que corresponde a tsplit, de acordo com o seguinte algoritmo: . tempo = eptl — ptol . Nseg11 = 0 . enquanto (tempo < tsplit*tsl && Nsegll < Nsegl)) . fazer O tempo + =sdur[Nsegll] O Nsegll++ . feito[0068] A server device can generate new information as follows for the first representation that aligns with the segment boundary. First, Nseg11 can be found that corresponds to tsplit, according to the following algorithm: . time = eptl — ptol . Nseg11 = 0 . while (time < tsplit*tsl && Nsegll < Nsegl)) . do The time + =sdur[Nsegll] The Nsegll++ . done

[0069] Por esse algoritmo, um dispositivo de servidor pode determinar Nsegll. Nsegll pode ser menor que Nsegl. Se Nsegll não for menor que Nsegl, nenhuma divisão de período pode ser feita. Tempo pode ser a duração de apresentação pdll. O tempo de divisão para representação l pode ser tsplitl = time/tsl >= tsplit como uma divisão em um limite de segmento exato pode ser desejado. Observe que a divisão anunciada pode ser tsplit, porém em um nível de representação somente limites de segmento podem ser divididos. O period@start do período l pode ser mantido. O period@duration pode ser definido em tsplit. O seguinte algoritmo é um exemplo de como a informação nova pode ser gerada para representação l no período l. . mtll = mtl . ptoll = ptol . pdll = tempo . eptll = eptl . sn11 = sn1 . i = 0 . enquanto (enquanto (i < Nseg11)) . fazer O si11[i] = si1[i] O i++ . feito[0069] By this algorithm, a server device can determine Nsegll. Nsegll can be smaller than Nsegl. If Nsegll is not less than Nsegl, no period division can be done. Time can be duration of pdll presentation. The split time for l representation may be tsplitl = time/tsl >= tsplit as a split on an exact segment boundary may be desired. Note that the advertised split can be tsplit, but at a representation level only segment boundaries can be split. The period@start of period l can be maintained. The period@duration can be set in tsplit. The following algorithm is an example of how new information can be generated for representation l in period l. . mtll = mtl. ptoll = ptol. pdll = time . eptll = eptl . sn11 = sn1 . i = 0 . while (while (i < Nseg11)) . do O si11[i] = si1[i] O i++ . done

[0070] Então Nseg12 pode ser encontrado que corresponde a tsplit, por exemplo, de acordo com o seguinte algoritmo de exemplo: . tempo = ept2 - pto2 . Nseg12 = 0 . enquanto (tempo < tsplit*ts2 && Nseg12 < Nseg2)) . fazer O tempo += sdurf[Nseg12] O Nseg12++ . feito[0070] Then Nseg12 can be found that corresponds to tsplit, for example, according to the following example algorithm: . time = ept2 - pto2 . Nseg12 = 0 . while (time < tsplit*ts2 && Nseg12 < Nseg2)) . do O time += sdurf[Nseg12] O Nseg12++ . done

[0071] O tempo de divisão real para representação 2 pode ser tsplit2 = tempo/ts2 >= tsplit como uma divisão em um limite de subsegmento exato pode ser desejado. Tempo pode ser a duração de apresentação pd12. O seguinte algoritmo é um exemplo de como a nova informação pode ser gerada para representação 2 no período 1. . mt12 = mt2 . pto12 = pto2 . pd12 = tempo . ept11 = ept1 . sn12 = sn2 . i = 0 . enquanto (enquanto (i < Nseg12)) . fazer O si12[i] = si2[i] O i++ . feito[0071] The actual split time for representation 2 may be tsplit2 = time/ts2 >= tsplit as a split on an exact subsegment boundary may be desired. Time can be the duration of pd12 presentation. The following algorithm is an example of how new information can be generated for representation 2 in period 1. . mt12 = mt2 . pto12 = pto2 . pd12 = time . ept11 = ept1 . sn12 = sn2 . i = 0 . while (while (i < Nseg12)) . do O si12[i] = si2[i] O i++ . done

[0072] Um novo período 2 pode ser gerado. Primeiramente, a informação a partir do período 1 pode ser copiada (também o identificador de asset, e conjuntos de adaptação com ids e etc.). O period@start do novo período pode não ser fornecido. O period@duration pdur2 do período novo pode ser mpDUR - tsplit. O algoritmo a seguir é um exemplo de como a informação nova pode ser gerada para representação 1 no período 2. . Nseg12 = Nseg1 - Nseg11 . mt21 = mt1 . pto21 = (tsplit1 - tsplit)*ts1 . pd21 = pd1 - pd11 . ept21 = pd11 . sn21 = sn1 + Nseg11 . i = 0 . enquanto (enquanto (i < Nseg12)) . fazer O si21[i] = si1[i+Nseg11] O i++ . feito[0072] A new period 2 can be generated. Firstly, information from period 1 can be copied (also the asset identifier, and adaptation sets with ids and etc.). The period@start of the new period may not be provided. The period@duration pdur2 of the new period can be mpDUR -tsplit. The following algorithm is an example of how new information can be generated for representation 1 in period 2. . Nseg12 = Nseg1 - Nseg11 . mt21 = mt1 . pto21 = (tsplit1 - tsplit)*ts1 . pd21 = pd1 - pd11 . ept21 = pd11 . sn21 = sn1 + Nseg11 . i = 0 . while (while (i < Nseg12)) . do O si21[i] = si1[i+Nseg11] O i++ . done

[0073] O seguinte algoritmo é um exemplo de como as informações novas podem ser geradas para representação 2 no período 2. . Nseg22 = Nseg2 - Nseg12 . mt22 = mt2 . pto22 = (tsplit1 - tsplit)*ts2 . pd22 = pd2 - pd12 . ept22 = pd12 . sn22 = sn2 + Nseg12 . i = 0 . enquanto (enquanto (i < Nseg22)) . fazer O si22[i] = si2[i+Nseg12] O i++ . feito[0073] The following algorithm is an example of how new information can be generated for representation 2 in period 2. . Nseg22 = Nseg2 - Nseg12 . mt22 = mt2 . pto22 = (tsplit1 - tsplit)*ts2 . pd22 = pd2 - pd12 . ept22 = pd12 . sn22 = sn2 + Nseg12 . i = 0 . while (while (i < Nseg22)) . do O si22[i] = si2[i+Nseg12] O i++ . done

[0074] Em alguns exemplos, tsplit1 pode ser usado como tempo de divisão para ter pto21 sendo 0. Esse pode ser o caso, quando divisão pode ser feita no quadro IDR.[0074] In some examples, tsplit1 can be used as time division to have pto21 be 0. This may be the case, when division can be done on the IDR frame.

[0075] A informação acima pode ser mapeada em uma MPD completa com a mesma informação, porém por isso um ponto de junção no tempo tsplit pode ser gerado. Qualquer período pode ser inserido aqui. O esforço acima pode remover MPD@mediaPresentationDuration e adicionar e substituir a informação documentada acima.[0075] The above information can be mapped into a complete MPD with the same information, however by doing so a tsplit-time junction point can be generated. Any period can be entered here. The above effort may remove MPD@mediaPresentationDuration and add and replace the information documented above.

[0076] Usando técnicas da revelação atual, perfil Em Demanda pode ser otimizado. O problema com a oferta de perfil Em Demanda pode ser que para fazer uma construção de período para inserção de anúncio, deve-se modificar fisicamente o arquivo. Isso tem duas consequências. Primeiramente, as modificações exigem modificações de nível de arquivo e são relativamente complexas. Isso significa que para inserção de anúncio, o conteúdo pode ser alterado. Em segundo lugar, se pontos de junção de anúncio diferentes são considerados, conteúdo diferente e URLs diferentes podem ser usados. Isso significa que para o mesmo conteúdo, armazenagem e especialmente eficiência de caching pode ser reduzida. Portanto, pode ser proposto a seguir permitir inserção de anúncio e período com base em informações de nível de MPD somente. Isso requer algumas modificações na MPD e essas ferramentas serão adicionadas ao perfil de inserção de anúncio recentemente desenvolvido que inclui xlink.[0076] Using techniques from the current development, On Demand profile can be optimized. The problem with the On Demand profile offering could be that to do a period build for ad insertion, you must physically modify the file. This has two consequences. First, modifications require file-level modifications and are relatively complex. This means that for ad insertion, the content can be changed. Second, if different ad junction points are considered, different content and different URLs may be used. This means that for the same content, storage and especially caching efficiency can be reduced. Therefore, it may be proposed below to allow ad insertion and period based on MPD level information only. This requires some modifications to the MPD and these tools will be added to the newly developed ad insertion profile that includes xlink.

[0077] Em um exemplo de um fluxo em demanda, a apresentação pode ser dividida em dois períodos mais cedo no tempo de apresentação de mídia tsplit expresso em relação ao tempo de Início de mperíodo. Pode haver dois conjuntos de adaptação e cada conjunto de adaptação pode ter uma representação. Em alguns exemplos, um alinhamento de um limite subsequente dos conjuntos de adaptação pode ser aplicado. As seguintes informações podem ser assumidas como sendo disponíveis para o conteúdo de período único. . period@start ps . MPD@mediaPresentationDuration mpDUR . BaseURL bu1, bu2 . SegmentBase@indexRange ir1, ir2 . SegmentBase@timescale ts1, ts2 . SegmentBase@presentationDuration pd1, pd2 . o Índice de segmento da representação O Nsub1, Nsub2 O ept1, ept2 O fo1, fo2 O sdur1[i], sdur2[i] O fo1[i], fo2[i] O ss1[i], ss2[i][0077] In an example of an on-demand stream, the presentation may be split into two periods earlier in the tsplit media presentation time expressed in relation to the Period Start time. There can be two adaptation sets and each adaptation set can have a representation. In some examples, an alignment of a subsequent boundary of adaptation sets may be applied. The following information can be assumed to be available for single-period content. . period@start ps . MPD@mediaPresentationDuration mpDUR . BaseURL bu1, bu2 . SegmentBase@indexRange ir1, ir2 . SegmentBase@timescale ts1, ts2 . SegmentBase@presentationDuration pd1, pd2 . o Segment index of representation O Nsub1, Nsub2 O ept1, ept2 O fo1, fo2 O sdur1[i], sdur2[i] O fo1[i], fo2[i] O ss1[i], ss2[i]

[0078] Para gerar uma nova apresentação de mídia, as seguintes informações podem ser geradas: . Atualização de atributos e elementos no primeiro período para cada representação de cada conjunto de adaptação: o. period@start ps1 o adicionar period@duration pdur1 = tsplit o SegmentBase@indexRange o SegmentBase@presentationTimeOffset pto11, pto12 o SegmentBase@presentationDuration pd11, pd12 Atualização e adição de atributos e elementos no segundo período novo para cada representação: O adicionar period@duration pdur2 O SegmentBase@indexRange O SegmentBase@presentationTimeOffset pto21, pto22 O SegmentBase@presentationDuration pd21, pd22[0078] To generate a new media presentation, the following information can be generated: . Update of attributes and elements in the first period for each representation of each adaptation set: o. period@start ps1 o add period@duration pdur1 = tsplit o SegmentBase@indexRange o SegmentBase@presentationTimeOffset pto11, pto12 o SegmentBase@presentationDuration pd11, pd12 Update and add attributes and elements in the second new period for each representation: o add period@duration pdur2 O SegmentBase@indexRange O SegmentBase@presentationTimeOffset pto21, pto22 O SegmentBase@presentationDuration pd21, pd22

[0079] As informações acima para pto e pd podem ser geradas do mesmo modo que para o Perfil em demanda. A única diferença pode ser que pode ser explicitamente dito na representação, que somente o tempo entre pto e pd pode ser tocado para essa representação, usando a informação no Índice de segmento.[0079] The above information for pto and pd can be generated in the same way as for the On Demand Profile. The only difference may be that it can be explicitly said in the representation, that only the time between pto and pd can be touched for that representation, using the information in the Segment Index.

[0080] O seguinte exemplo está em referência à figura 3. Uma MPD pode ser disponível que aponta para conteúdo em demanda na CDN contendo uma apresentação de período única. A MPD, com base em sugestões (oportunidades de inserção de anúncio), pode ser modificada para múltiplos períodos de anúncio sem alterar o conteúdo no servidor. Para cada oportunidade, um xlink para o servidor de Decisão de anúncio pode ser fornecido. A MPD pode ser fornecida para o cliente DASH. Para cada xlink na MPD, pode ser verificado se anúncios são acrescentados, possivelmente direcionados para o usuário. Em caso negativo, o período pode ser resolvido para 0. Em caso positivo, outro conteúdo pode ser adicionado. O cliente DASH toca o conteúdo continuamente, e se resolvido em zero, o motor de mídia pode não ser recentemente inicializado.[0080] The following example is in reference to Figure 3. An MPD may be available that points to on-demand content on the CDN containing a single-period presentation. The MPD, based on suggestions (ad insertion opportunities), can be modified for multiple ad periods without changing the content on the server. For each lead, an xlink to the Ad Decision server can be provided. The MPD can be provided to the DASH client. For each xlink in the MPD, it can be checked whether advertisements are added, possibly targeting the user. If not, the period can be set to 0. If so, other content can be added. The DASH client plays content continuously, and if set to zero, the media engine may not be freshly started.

[0081] A figura 1 é um diagrama de blocos ilustrando um sistema de exemplo 10 que implementa técnicas para streaming dados de mídia através de uma rede. Nesse exemplo, o sistema 10 inclui dispositivo de preparação de conteúdo 20, dispositivo de servidor 60 e dispositivo de cliente 40. O dispositivo de cliente 40 e dispositivo de servidor 60 são comunicativamente acoplados por rede 74, que pode compreender a Internet. Em alguns exemplos, o dispositivo de preparação de conteúdo 20 e dispositivo de servidor 60 podem também ser acoplados pela rede 74 ou outra rede, ou podem ser diretamente comunicativamente acoplados. Em alguns exemplos, o dispositivo de preparação de conteúdo 20 e dispositivo de servidor 60 podem compreender o mesmo dispositivo.[0081] Figure 1 is a block diagram illustrating an example system 10 that implements techniques for streaming media data over a network. In this example, system 10 includes content preparation device 20, server device 60, and client device 40. Client device 40 and server device 60 are communicatively coupled over network 74, which may comprise the Internet. In some examples, content preparation device 20 and server device 60 may also be coupled over network 74 or another network, or may be directly communicatively coupled. In some examples, content preparation device 20 and server device 60 may comprise the same device.

[0082] O dispositivo de preparação de conteúdo 20, no exemplo da figura 1, compreende fonte de áudio 22 e fonte de vídeo 24. A fonte de áudio 22 pode compreender, por exemplo, um microfone que produz sinais elétricos representativos de dados de áudio capturados a serem codificados pelo codificador de áudio 26. Alternativamente, a fonte de áudio 22 pode compreender uma mídia de armazenagem que armazena previamente dados de áudio gravados, um gerador de dados de áudio como um sintetizador computadorizado, ou qualquer outra fonte de dados de áudio. A fonte de vídeo 24 pode compreender uma câmera de vídeo que produz dados de vídeo a serem codificados pelo codificador de vídeo 28, uma mídia de armazenagem codificada com dados de vídeo previamente gravados, uma unidade de geração de dados de vídeo como uma fonte gráfica de computador, ou qualquer outra fonte de dados de vídeo. O dispositivo de preparação de conteúdo 20 não é necessariamente comunicativamente acoplado ao dispositivo de servidor 60 em todos os exemplos, porém pode armazenar conteúdo de multimídia em uma mídia separada que é lida pelo dispositivo de servidor 60.[0082] The content preparation device 20, in the example of Figure 1, comprises audio source 22 and video source 24. Audio source 22 may comprise, for example, a microphone that produces electrical signals representative of audio data captured to be encoded by the audio encoder 26. Alternatively, the audio source 22 may comprise a storage medium that stores pre-recorded audio data, an audio data generator such as a computer synthesizer, or any other source of audio data . The video source 24 may comprise a video camera producing video data to be encoded by the video encoder 28, a storage medium encoded with previously recorded video data, a video data generation unit as a graphic source of computer, or any other source of video data. Content preparation device 20 is not necessarily communicatively coupled to server device 60 in all examples, but may store multimedia content on separate media that is read by server device 60.

[0083] Dados de vídeo e áudio brutos podem compreender dados analógicos ou digitais. Dados analógicos podem ser digitalizados antes de serem codificados pelo codificador de áudio 26 e/ou codificador de vídeo 28. A fonte de áudio 22 pode obter dados de áudio a partir de um participante que fala enquanto o participante que fala está falando, e fonte de vídeo 24 pode simultaneamente obter dados de vídeo do participante que fala. Em outros exemplos, a fonte de áudio 22 pode compreender uma mídia de armazenagem legível em computador compreendendo dados de áudio armazenados, e a fonte de vídeo 24 pode compreender uma mídia de armazenagem legível em computador compreendendo dados de vídeo armazenados. Desse modo, as técnicas descritas nessa revelação podem ser aplicadas a dados de vídeo e áudio ao vivo, streaming, em tempo real ou em dados de vídeo e áudio pré-gravados, arquivados.[0083] Raw video and audio data can comprise analog or digital data. Analog data may be digitized before being encoded by audio encoder 26 and/or video encoder 28. Audio source 22 may obtain audio data from a speaking participant while the speaking participant is speaking, and Video 24 can simultaneously obtain video data from the speaking participant. In other examples, audio source 22 may comprise computer readable storage media comprising stored audio data, and video source 24 may comprise computer readable storage media comprising stored video data. Thus, the techniques described in this disclosure can be applied to live, streaming, real-time video and audio data or to pre-recorded, archived video and audio data.

[0084] Quadros de áudio que correspondem a quadros de vídeo são genericamente quadros de áudio contendo dados de áudio que foram capturados (ou gerados) pela fonte de áudio 22 contemporaneamente com dados de vídeo capturados (ou gerados) pela fonte de vídeo 24 que está contida nos quadros de vídeo. Por exemplo, enquanto um participante que fala produz em geral dados de áudio por falar, a fonte de áudio 22 captura os dados de áudio, e a fonte de vídeo 24 captura dados de vídeo do participante que fala ao mesmo tempo, isto é, enquanto a fonte de áudio 22 está capturando os dados de áudio. Consequentemente, um quadro de áudio pode corresponder temporalmente a um ou mais quadros de vídeo específicos. Por conseguinte, um quadro de áudio correspondendo a um quadro de vídeo corresponde em geral a uma situação na qual dados de áudio e dados de vídeo foram capturados ao mesmo tempo e para o qual um quadro de áudio e um quadro de vídeo compreendem, respectivamente, os dados de áudio e os dados de vídeo que foram capturados ao mesmo tempo.[0084] Audio frames that correspond to video frames are generically audio frames containing audio data that was captured (or generated) by the audio source 22 contemporaneously with video data captured (or generated) by the video source 24 that is contained in the video frames. For example, while a speaking participant generally produces audio data by speaking, audio source 22 captures the audio data, and video source 24 captures video data from the speaking participant at the same time, i.e., while audio source 22 is capturing the audio data. Consequently, an audio frame can temporally correspond to one or more specific video frames. Therefore, an audio frame corresponding to a video frame corresponds in general to a situation in which audio data and video data were captured at the same time and for which an audio frame and a video frame respectively comprise audio data and video data that were captured at the same time.

[0085] Em alguns exemplos, o codificador de áudio 26 pode codificar uma marca de tempo em cada quadro de áudio codificado que representa um tempo no qual os dados de áudio para o quadro de áudio codificado foram gravados, e similarmente, o codificador de vídeo 28 pode codificar uma marca de tempo em cada quadro de vídeo codificado que representa um tempo no qual os dados de vídeo para quadro de vídeo codificado foram gravados. Em tais exemplos, um quadro de áudio correspondendo a um quadro de vídeo pode compreender um quadro de audio compreende uma marca de tempo e um quadro de video compreendendo a mesma marca de tempo. O dispositivo de preparação de conteúdo 20 pode incluir um relógio interno a partir do qual o codificador de áudio 26 e/ou codificador de vídeo 28 pode gerar as marcas de tempo, ou que a fonte de áudio 22 e fonte de vídeo 24 podem usar para associar dados de vídeo e áudio, respectivamente, com uma marca de tempo.[0085] In some examples, the audio encoder 26 may encode a timestamp into each encoded audio frame that represents a time at which the audio data for the encoded audio frame was recorded, and similarly, the video encoder 28 can encode a time stamp into each encoded video frame that represents a time at which the video data for the encoded video frame was recorded. In such examples, an audio frame corresponding to a video frame may comprise an audio frame comprising a timestamp and a video frame comprising the same timestamp. Content preparation device 20 may include an internal clock from which audio encoder 26 and/or video encoder 28 may generate time stamps, or which audio source 22 and video source 24 may use to associate video and audio data respectively with a timestamp.

[0086] Em alguns exemplos, a fone de áudio 22 pode enviar dados para o codificador de áudio 26 correspondendo a um tempo no qual dados de áudio foram gravados, e a fonte de vídeo 24 pode enviar dados para o codificador de vídeo 28 correspondendo a um tempo no qual dados de vídeo foram gravados. Em alguns exemplos, o codificador de áudio 26 pode codificar um identificador de sequência em dados de áudio codificados para indicar uma ordenação temporal relativa de dados de áudio codificados, porém se necessariamente indicar um tempo absoluto no qual os dados de áudio foram gravados, e similarmente, o codificador de vídeo 28 pode usar também identificadores de sequência para indicar uma ordenação temporal relativa de dados de vídeo codificados. Similarmente, em alguns exemplos, um identificador de sequência pode ser mapeado ou de outro modo correlacionado com uma marca de tempo.[0086] In some examples, audio source 22 may send data to audio encoder 26 corresponding to a time at which audio data was recorded, and video source 24 may send data to video encoder 28 corresponding to a time in which video data was recorded. In some examples, the audio encoder 26 may encode a sequence identifier into the encoded audio data to indicate a relative temporal ordering of the encoded audio data, but if it necessarily indicates an absolute time at which the audio data was recorded, and similarly , video encoder 28 may also use sequence identifiers to indicate a relative temporal ordering of encoded video data. Similarly, in some examples, a sequence identifier may be mapped or otherwise correlated to a timestamp.

[0087] O codificador de áudio 26 produz em geral um fluxo de dados de áudio codificados, enquanto o codificador de vídeo 28 produz um fluxo de dados de vídeo codificados. Cada fluxo individual de dados (quer áudio ou vídeo) pode ser mencionado como um fluxo elementar. Um fluxo elementar é um componente digitalmente codificado, único (possivelmente comprimido) de uma representação. Por exemplo, a parte de áudio ou vídeo codificado da representação pode ser um fluxo elementar. Um fluxo elementar pode ser convertido em um fluxo elementar empacotado (PES) antes de ser encapsulado em um arquivo de vídeo. Na mesma representação, um ID de fluxo pode ser usado para distinguir os pacotes PES que pertencem a um fluxo elementar a partir do outro. A unidade básica de dados de um fluxo elementar é um pacote de fluxo elementar empacotado (PES). Desse modo, dados de vídeo codificados correspondem, em geral, a fluxos de vídeo elementares. Similarmente, dados de áudio correspondem a um ou mais fluxos elementares respectivos.[0087] The audio encoder 26 generally produces an encoded audio data stream, while the video encoder 28 produces an encoded video data stream. Each individual stream of data (either audio or video) can be referred to as an elementary stream. An elementary stream is a digitally encoded, single (possibly compressed) component of a representation. For example, the encoded audio or video portion of the representation can be an elementary stream. An elementary stream can be converted to a packaged elementary stream (PES) before being encapsulated into a video file. In the same representation, a flow ID can be used to distinguish the PES packets belonging to one elementary flow from the other. The basic data unit of an elementary stream is a packetized elementary stream (PES) packet. Thus, encoded video data generally corresponds to elementary video streams. Similarly, audio data corresponds to one or more respective elementary streams.

[0088] Muitos padrões de codificação de vídeo, como ITU-T H.264/AVC e o padrão de Codificação de vídeo com eficiência elevada (HEVC) próximo, definem a sintaxe, semântica e processo de decodificação para fluxos de bit isentos de erro, qualquer um dos quais se conforma a um certo perfil ou nível. Padrões de codificação de vídeo tipicamente não especificam o codificador, porém o codificador tem a tarefa de assegurar que os fluxos de bits gerados estejam em conformidade com o padrão para um decodificador. No contexto de padrões de codificação de vídeo, um “perfil” corresponde a um subconjunto de algoritmos, características ou ferramentas e limitações que se aplicam aos mesmos. Como definido pelo padrão H.264, por exemplo, um “perfil” é um subconjunto da sintaxe de fluxo de bits inteira que é especificada pelo padrão H.264. Um “nível” corresponde às limitações do consumo de recurso de decodificador como, por exemplo, memória de decodificador e computação, que são relacionados à resolução das imagens, taxa de bits, e taxa de processamento de bloco. Um perfil pode ser sinalizado com um valor de profile_idc (indicador de perfil), enquanto um nível pode ser sinalizado com um valor de level_idc (indicador de nível).[0088] Many video encoding standards, such as ITU-T H.264/AVC and the nearby High Efficiency Video Coding (HEVC) standard, define the syntax, semantics, and decoding process for error-free bit streams , any of which conform to a certain profile or level. Video coding standards typically do not specify the encoder, but the encoder is tasked with ensuring that the generated bitstreams conform to the standard for a decoder. In the context of video coding standards, a “profile” is a subset of algorithms, features or tools, and limitations that apply to them. As defined by the H.264 standard, for example, a “profile” is a subset of the entire bitstream syntax that is specified by the H.264 standard. A “level” corresponds to limitations on decoder resource consumption, such as decoder and compute memory, which are related to image resolution, bit rate, and block processing rate. A profile can be flagged with a profile_idc (profile indicator) value, while a level can be flagged with a level_idc (level indicator) value.

[0089] O padrão H.264, por exemplo, reconhece que, nos limites impostos pela sintaxe de um perfil dado, é ainda possível exigir uma grande variação no desempenho de codificadores e decodificados dependendo dos valores tomados por elementos de sintaxe no fluxo de bits como o tamanho especificado das imagens decodificadas. O padrão H.264 reconhece ainda que, em muitas aplicações, não é prático nem econômico implementar um decodificador capaz de lidar com todos os usos hipotéticos da sintaxe em um perfil específico. Por conseguinte, o padrão H.264 define um “nível” como um conjunto especificado de limitações impostas sobre valores dos elementos de sintaxe no fluxo de bis. Essas limitações podem ser limites simples sobre valores. Alternativamente, essas limitações podem ter a forma de limitações sobre combinações aritméticas de valores (por exemplo, largura de imagem multiplicada por altura de imagem multiplicada por número de imagens decodificadas por segundo). O padrão H.264 provê ainda que implementações individuais possam suportar um nível diferente para cada perfil suportado.[0089] The H.264 standard, for example, recognizes that, within the limits imposed by the syntax of a given profile, it is still possible to demand a large variation in the performance of encoders and decoders depending on the values taken by syntax elements in the bit stream as the specified size of the decoded images. The H.264 standard further recognizes that, in many applications, it is neither practical nor economical to implement a decoder capable of handling all hypothetical uses of the syntax in a specific profile. Accordingly, the H.264 standard defines a “level” as a specified set of constraints imposed on values of syntax elements in the bis stream. These limitations can be simple limits on values. Alternatively, these limitations may take the form of limitations on arithmetic combinations of values (eg, image width multiplied by image height multiplied by number of decoded images per second). The H.264 standard further provides that individual implementations can support a different level for each supported profile.

[0090] Um decodificador se conformando a um perfil suporta comumente todas as características definidas no perfil. Por exemplo, como uma característica de codificação, codificação de imagem-B não é suportada no perfil de linha de base de H.264/AVC, porém é suportada em outros perfis de H.264/AVC. Um decodificador se conformando a um nível pode ser capaz de decodificar qualquer fluxo de bits que não exija recursos além das limitações definidas no nível. Definições de perfis e níveis podem ser úteis para capacidade de interpretação. Por exemplo, durante transmissão de vídeo, um par de definições de perfil e nível pode ser negociado e acordado para uma sessão de transmissão inteira. Mais especificamente, em H.264/AVC, um nível pode definir limitações sobre o número de macroblocos que necessitam ser processados, tamanho de buffer de imagem decodificada (DPB), tamanho de buffer de imagem codificada (CPB), faixa de vetor de movimento vertical, número máximo de vetores de movimento por dois MBs consecutivos, e se um bloco-B pode ter divisões de sub-macrobloco menores que 8x8 pixels. Desse modo, um decodificador pode determinar se o decodificador é capaz de adequadamente decodificar o fluxo de bits.[0090] A decoder conforming to a profile commonly supports all features defined in the profile. For example, as an encoding feature, B-picture encoding is not supported in the baseline H.264/AVC profile, but is supported in other H.264/AVC profiles. A decoder conforming to a level may be able to decode any bit stream that does not require resources beyond the limitations defined in the level. Profile definitions and levels can be useful for interpretability. For example, during video streaming, a pair of profile and level settings can be negotiated and agreed upon for an entire streaming session. More specifically, in H.264/AVC, a level can set limitations on the number of macroblocks that need to be processed, decoded picture buffer (DPB) size, encoded picture buffer (CPB) size, motion vector range vertical, maximum number of motion vectors for two consecutive MBs, and whether a B-block can have sub-macroblock divisions smaller than 8x8 pixels. In this way, a decoder can determine whether the decoder is capable of properly decoding the bit stream.

[0091] No exemplo da figura 1, a unidade de encapsulação 30 do dispositivo de preparação de conteúdo 20 recebe fluxos elementares compreendendo dados de vídeo codificados a partir do codificador de vídeo 28 e fluxos elementares compreendendo dados de áudio codificados a partir do codificador de áudio 26. Em alguns exemplos, o codificador de vídeo 28 e codificador de áudio 26 podem individualmente incluir empacotadores para formar pacotes PES a partir de dados codificados. Em outros exemplos, o codificador de vídeo 28 e codificador de áudio 26 podem individualmente fazer interface com empacotadores respectivos para formar pacotes PES a partir de dados codificados. Ainda em outros exemplos, a unidade de encapsulação 30 pode incluir empacotadores para formar pacotes PES a partir de dados de vídeo e áudio codificados.[0091] In the example of Figure 1, the encapsulation unit 30 of the content preparation device 20 receives elementary streams comprising encoded video data from the video encoder 28 and elementary streams comprising encoded audio data from the audio encoder 26. In some examples, the video encoder 28 and audio encoder 26 may individually include packers to form PES packets from encoded data. In other examples, video encoder 28 and audio encoder 26 can individually interface with respective packers to form PES packets from encoded data. In yet other examples, encapsulation unit 30 may include packers for forming PES packets from encoded video and audio data.

[0092] O codificador de vídeo 28 pode codificar dados de vídeo de conteúdo de multimídia em uma variedade de modos para produzir representações diferentes do conteúdo de multimídia em várias taxas de bits e com várias características, como resoluções de pixel, taxas de quadro, conformidade com vários padrões de codificação, conformidade com vários perfis e/ou níveis de perfis para vários padrões de codificação, representações tendo uma ou múltiplas vistas (por exemplo, para reprodução bidimensional ou tridimensional) ou outras tais características. Uma representação, como usada nessa revelação, pode compreender um entre dados de áudio, dados de vídeo, dados de texto (por exemplo, para closedcaptions), ou outros tais dados. A representação pode incluir um fluxo elementar, como um fluxo elementar de áudio ou um fluxo elementar de vídeo. Cada pacote PES pode incluir um stream_id que identifica o fluxo elementar ao qual o pacote PES pertence. A unidade de encapsulação 30 é responsável por montar fluxos elementares em arquivos de vídeo (por exemplo, segmentos) de várias representações.[0092] Video encoder 28 can encode multimedia content video data in a variety of ways to produce different representations of multimedia content at various bitrates and with various characteristics such as pixel resolutions, frame rates, compliance with various encoding standards, compliance with various profiles and/or levels of profiles for various encoding standards, representations having single or multiple views (e.g., for two-dimensional or three-dimensional reproduction) or other such features. A representation, as used in this disclosure, may comprise one of audio data, video data, text data (eg, for closedcaptions), or other such data. The representation can include an elementary stream, such as an audio elementary stream or a video elementary stream. Each PES packet can include a stream_id that identifies the elementary stream to which the PES packet belongs. The encapsulation unit 30 is responsible for assembling elementary streams into video files (eg segments) of various representations.

[0093] A unidade de encapsulação 30 recebe pacotes PES para fluxos elementares de uma representação a partir de codificador de áudio 26 e codificador de vídeo 28 e forma unidades de camada de abstração de rede (NAL) correspondentes a partir dos pacotes PES. No exemplo de H.264/AVC (Codificação avançada de vídeo), segmentos de vídeo codificados são organizados em unidades NAL, que fornecem uma representação de vídeo “favorável à rede” tratando de aplicações como telefonia de vídeo, armazenagem, broadcast ou streaming. Unidades NAL podem ser categorizadas para unidades NAL de Camada de codificação de vídeo (VCL) e unidades NAL não VCL. Unidades VCL podem conter o motor de compressão de núcleo e podem incluir bloco, macrobloco, e/ou dados de nível de fatia. Outras unidades NAL podem ser unidades NAL não VCL. Em alguns exemplos, uma imagem codificada em uma instância de tempo, normalmente apresentada como uma imagem codificada primária, pode estar contida em uma unidade de acesso, que pode incluir uma ou mais unidades NAL.[0093] The encapsulation unit 30 receives PES packets for elementary streams of a representation from audio encoder 26 and video encoder 28 and forms corresponding Network Abstraction Layer (NAL) units from the PES packets. In the H.264/AVC (Advanced Video Coding) example, encoded video segments are organized into NAL units, which provide a “network-friendly” video representation addressing applications such as video telephony, storage, broadcast or streaming. NAL units can be categorized into Video Coding Layer (VCL) NAL units and non-VCL NAL units. VCL units may contain the core compression engine and may include block, macroblock, and/or slice level data. Other NAL units may be non-VCL NAL units. In some examples, a time-encoded image, normally presented as a primary encoded image, may be contained in an access unit, which may include one or more NAL units.

[0094] Unidades NAL não VCL podem incluir unidades NAL de conjunto de parâmetros e unidades NAL SEI, entre outras. Conjuntos de parâmetro podem conter informações de cabeçalho de nível de sequência (em conjuntos de parâmetro de sequência (SPS)) e as informações de cabeçalho de nível de imagem de alteração não frequente (em conjuntos de parâmetro de imagem (PPS)). Com conjuntos de parâmetro (por exemplo, PPS e SPS), informações com alteração não frequente não necessitam ser repetidas para cada sequência ou imagem, consequentemente a eficiência de codificação pode ser melhorada. Além disso, o uso de conjuntos de parâmetros pode permitir transmissão fora de faixa das informações de cabeçalho importantes, evitando a necessidade de transmissões redundantes para resiliência de erro. Em exemplos de transmissão fora de faixa, unidades NAL de conjunto de parâmetros podem ser transmitidas em um canal diferente do que outras unidades NAL, como unidades NAL SEI.[0094] Non-VCL NAL units may include parameter set NAL units and NAL SEI units, among others. Parameter sets can contain sequence-level header information (in sequence parameter sets (SPS)) and infrequently changing image-level header information (in image parameter sets (PPS)). With parameter sets (eg PPS and SPS), infrequently changing information does not need to be repeated for each sequence or image, consequently the coding efficiency can be improved. Furthermore, the use of parameter sets can allow out-of-band transmission of important header information, avoiding the need for redundant transmissions for error resiliency. In examples of out-of-band transmission, parameter set NAL units may be transmitted on a different channel than other NAL units, such as NAL SEI units.

[0095] Informação de aperfeiçoamento suplementar (SEI) pode conter informações que não são necessárias para decodificar as amostras de imagem codificadas a partir de unidades NAL VCL, porém pode auxiliar em processos relacionados à decodificação, exibição, resiliência de erro e outras finalidades. Mensagens SEI podem estar contidas em unidades NAL não VCL. Mensagens SEI são a parte normativa de algumas especificações padrão, e desse modo nem sempre são obrigatórias para implementação de decodificador em conformidade com padrão. Mensagens SEI podem ser mensagens SEI de nível de sequência ou mensagens SEI de nível de imagem. Algumas informações de nível de sequência podem estar contidas em mensagens SEI, como mensagens SEI de informação de escalabilidade no exemplo de SVC e mensagens SEI de informação de escalabilidade de vista em MVC. Essas mensagens SEI de exemplo podem transmitir informações, por exemplo, em extração de pontos de operação e características dos pontos de operação. Além disso, a unidade de encapsulação 30 pode formar um arquivo de manifesto, como um descritor de apresentação de mídia (MPD) que descrever características das representações. A unidade de encapsulação 30 pode formatar o MPD de acordo com linguagem de marcação extensível (XML).[0095] Supplemental Enhancement Information (SEI) may contain information that is not required to decode the encoded image samples from NAL VCL units, but may assist in processes related to decoding, display, error resiliency, and other purposes. SEI messages can be contained in non-VCL NAL units. SEI messages are the normative part of some standard specifications, and thus are not always mandatory for standard-compliant decoder implementation. SEI messages can be sequence-level SEI messages or picture-level SEI messages. Some sequence-level information may be contained in SEI messages, such as scalability information SEI messages in the SVC example and view scalability information SEI messages in MVC. These sample SEI messages can convey information, for example, on operating point extraction and operating point characteristics. Furthermore, the encapsulation unit 30 can form a manifest file such as a media presentation descriptor (MPD) that describes characteristics of the representations. The encapsulation unit 30 can format the MPD according to Extensible Markup Language (XML).

[0096] A unidade de encapsulação 30 pode fornecer dados para uma ou mais representações de conteúdo de multimídia, juntamente com o arquivo de manifesto (Por exemplo, o MPD) para a interface de transmissão 32. A interface de transmissão 32 pode compreender uma interface de rede ou uma interface para gravar em uma mídia de armazenagem, como uma interface de barramento serial universal (USB), um gravador de CD ou DVD, uma interface para mídia de armazenagem flash ou magnética, ou outras interfaces para armazenar ou transmitir dados de mídia. A unidade de encapsulação 30 pode fornecer dados de cada das representações de conteúdo de multimídia para a interface de transmissão 32, que pode enviar os dados para o dispositivo de servidor 60 através de transmissão de rede ou mídia de armazenagem. No exemplo da figura 1, o dispositivo de servidor 60 inclui mídia de armazenagem 62 que armazenagem vários conteúdos de multimídia 64, cada incluindo um arquivo de manifesto respectivo 66 e uma ou mais representações 68A - 68N (representações 68). Em alguns exemplos, a interface de saída 32 pode também enviar dados diretamente para a rede 74.[0096] The encapsulation unit 30 may provide data for one or more multimedia content representations, along with the manifest file (eg, the MPD) to the transmission interface 32. The transmission interface 32 may comprise an interface network interface or an interface for writing to storage media, such as a universal serial bus (USB) interface, a CD or DVD burner, an interface for flash or magnetic storage media, or other interfaces for storing or transmitting data from media. Encapsulation unit 30 can provide data from each of the multimedia content representations to transmission interface 32, which can send the data to server device 60 via network transmission or storage media. In the example of Figure 1, the server device 60 includes storage media 62 that store various multimedia contents 64, each including a respective manifest file 66 and one or more representations 68A - 68N (representations 68). In some examples, output interface 32 may also send data directly to network 74.

[0097] Em alguns exemplos, as representações 68 podem ser separadas em conjuntos de adaptação. Isto é, vários subconjuntos de representações 68 podem incluir conjuntos comuns respectivos de características, como codec, perfil e nível, resolução, número de vistas, formato de arquivo para segmentos, informação de tipo de texto que pode identificar uma linguagem ou outras características de texto a serem exibidas com a representação e/ou dados de áudio a serem decodificados e apresentados, por exemplo, por alto-falantes, informação de ângulo de câmera que pode descrever um ângulo de câmera ou perspectiva de câmera em mundo real de uma cena para representações no conjunto de adaptação, informações de rating que descrevem adequação de conteúdo para audiências específicas, ou similares.[0097] In some examples, the 68 representations can be separated into adaptation sets. That is, various subsets of representations 68 may include respective common sets of characteristics, such as codec, profile and level, resolution, number of views, file format for segments, text type information that can identify a language, or other text characteristics. to be displayed with the representation and/or audio data to be decoded and presented, for example by speakers, camera angle information that can describe a camera angle or real world camera perspective of a scene for representations in the adaptation set, rating information describing content suitability for specific audiences, or similar.

[0098] O arquivo de manifesto 66 pode incluir dados indicativos dos subconjuntos de representações 68 correspondendo a conjuntos de adaptação específicos, bem como características comuns para os conjuntos de adaptação. O arquivo de manifesto 66 pode incluir também dados representativos de características individuais, como taxas de bits, para representações individuais de conjuntos de adaptação. Desse modo, um conjunto de adaptação pode fornecer adaptação de largura de banda de rede simplificada. Representações em um conjunto de adaptação podem ser indicadas utilizando elementos de filho de um elemento de conjunto de adaptação de arquivo de manifesto 66. De acordo com as técnicas dessa revelação, o dispositivo de servidor 60 pode modificar arquivo de manifesto 66 para indicar que conteúdo de multimídia 64 inclui dois ou mais períodos contínuos, entre os quais o conteúdo de anúncio pode ser inserido.[0098] The manifest file 66 may include data indicative of subsets of representations 68 corresponding to specific adaptation sets, as well as common characteristics for the adaptation sets. Manifest file 66 may also include data representative of individual characteristics, such as bitrates, for individual representations of adaptation sets. In this way, an adaption set can provide simplified network bandwidth adaptation. Representations in an adaptation set may be indicated using child elements of an adaptation set element of manifest file 66. In accordance with the techniques of this disclosure, the server device 60 may modify manifest file 66 to indicate that content of multimedia 64 includes two or more continuous periods, between which advertising content may be inserted.

[0099] Em particular, o dispositivo de servidor 60 pode construir arquivo de manifesto 66 usando quaisquer das várias técnicas descritas acima, ou técnicas similares, para indicar que há períodos contínuos em conteúdo de multimídia 64, de modo que conteúdo adicional (como conteúdo de anúncio) possa ser inserido entre os períodos contínuos. Por exemplo, o dispositivo de servidor 60 pode adicionar um atributo Period@duration ao arquivo de manifesto 66 para cada período que é dividido em dois períodos contínuos. De modo semelhante, o dispositivo de servidor 60 pode adicionar dados indicativos do período contínuo, novo ao arquivo de manifesto 66, como um elemento de Period@duration, elementos baseURL, elementos de SegmentBase@indexRange, elementos de SegmentBase@presentationTimeOffset, e elementos de SegmentBase@presentationDuration. Além disso, o dispositivo de servidor 60 pode sinalizar os vários elementos de índice de segmento discutidos acima, e gerar novas representações para o período novo a partir das representações existentes.[0099] In particular, server device 60 may construct manifest file 66 using any of the various techniques described above, or similar techniques, to indicate that there are continuous periods in multimedia content 64, so that additional content (such as content from ad) can be inserted between continuous periods. For example, server device 60 can add a Period@duration attribute to manifest file 66 for each period that is divided into two continuous periods. Similarly, the server device 60 can add new rolling period indicative data to the manifest file 66 such as a Period@duration element, baseURL elements, SegmentBase@indexRange elements, SegmentBase@presentationTimeOffset elements, and SegmentBase@presentationDuration. Furthermore, the server device 60 can signal the various segment index elements discussed above, and generate new representations for the new period from the existing representations.

[0100] Por conseguinte, em alguns exemplos, o dispositivo de servidor 60 pode dividir conteúdo principal de dados de mídia em uma pluralidade de períodos incluindo um primeiro período e um segundo período, onde o primeiro período e o segundo período são temporalmente sequenciais. Isto é, o primeiro e segundo períodos incluem dados para o conteúdo principal que é destinado a ser played out continuamente. O dispositivo de servidor 60 pode inserir conteúdo de mídia secundário (por exemplo, conteúdo de mídia de anúncio) entre o primeiro e segundo períodos. Além disso, o dispositivo de servidor 60 pode sinalizar um indicador de tempo para cada da pluralidade de períodos que define uma ou mais características de tempo para cada da pluralidade de períodos. O indicador de tempo pode compreender, por exemplo, atributos Period@duration em arquivo de manifesto 66 para os períodos. O dispositivo de servidor 60 pode então receber uma solicitação, por exemplo, do dispositivo de cliente 40 para recuperar um fluxo de mídia compreendendo os períodos, o conteúdo de mídia secundário, e os indicadores de tempo. A solicitação pode ser uma de uma pluralidade de solicitações para recuperar dados do fluxo de mídia a partir do dispositivo de cliente 40. Por exemplo, a pluralidade de solicitações pode ser solicitações GET parcial ou GET HTTP.[0100] Therefore, in some examples, the server device 60 may divide media data main content into a plurality of periods including a first period and a second period, where the first period and the second period are temporally sequential. That is, the first and second periods include data for core content that is intended to be played out continuously. Server device 60 may insert secondary media content (eg, advertisement media content) between the first and second periods. Furthermore, server device 60 may signal a time indicator for each of the plurality of periods that defines one or more time characteristics for each of the plurality of periods. The time indicator may comprise, for example, Period@duration attributes in manifest file 66 for periods. Server device 60 may then receive a request, for example, from client device 40 to retrieve a media stream comprising periods, secondary media content, and time indicators. The request may be one of a plurality of requests to retrieve media stream data from client device 40. For example, the plurality of requests may be partial GET or HTTP GET requests.

[0101] Embora as técnicas acima sejam descritas com relação ao dispositivo de servidor 60, deve ser entendido que o dispositivo de preparação de conteúdo 20 pode também (isto é, além de ou na alternativa) ser configurado para dividir um período em dois períodos contínuos e inserir dados de mídia de anúncio entre os períodos contínuos.[0101] Although the above techniques are described with respect to the server device 60, it should be understood that the content preparation device 20 can also (i.e., in addition to or alternatively) be configured to split a period into two continuous periods and insert ad media data between rolling periods.

[0102] O dispositivo de servidor 60 inclui unidade de processamento de solicitação 70 e interface de rede 72. Em alguns exemplos, o dispositivo de servidor 60 pode incluir uma pluralidade de interfaces de rede. Além disso, todas ou quaisquer das características de dispositivo de servidor 60 podem ser implementadas em outros dispositivos de uma rede de distribuição de conteúdo, como roteadores, ligações, dispositivos proxy, comutadores ou outros dispositivos. Em alguns exemplos, dispositivos intermediários de uma rede de distribuição de conteúdo podem cache dados de conteúdo de multimídia 64, e incluem componentes que se conformam substancialmente àqueles do dispositivo de servidor 60. Em geral, a interface de rede 72 é configurada para enviar e receber dados através da rede 74.[0102] Server device 60 includes request processing unit 70 and network interface 72. In some examples, server device 60 may include a plurality of network interfaces. Furthermore, any or all of the features of server device 60 may be implemented in other devices in a content delivery network, such as routers, links, proxy devices, switches, or other devices. In some examples, intermediate devices of a content delivery network may cache multimedia content data 64, and include components that substantially conform to those of server device 60. In general, network interface 72 is configured to send and receive data over the network 74.

[0103] A unidade de processamento de solicitação 70 é configurada para receber solicitações de rede a partir dos dispositivos de cliente, como dispositivo de cliente 40, para dados da mídia de armazenagem 62. Por exemplo, a unidade de processamento de solicitação 70 pode implementar versão de protocolo de transferência de hipertexto (HTTP) 1.1, como descrito em RFC 2616, “Hypertext Transfer protocol - HTTP/1.1,” por R. Fielding e outros, Network Working Group, IETF, junho de 1999. Isto é, a unidade de processamento de solicitação 70 pode ser configurada para receber solicitações GET parcial ou GET HTTP e fornecer dados de conteúdo de multimídia 64 em respostas às solicitações. As solicitações podem especificar um segmento de uma das representações 68, por exemplo, usando um URL do segmento. Em alguns exemplos, as solicitações podem também especificar uma ou mais faixas de byte do segmento, desse modo compreendendo solicitações de GET parcial. A unidade de processamento de solicitação 70 pode ser adicionalmente configurada para atender solicitações HEAD HTTP para fornecer dados de cabeçalho de um segmento de uma das representações 68. Em qualquer caso, a unidade de processamento de solicitação 70 pode ser configurada para processar as solicitações para fornecer dados solicitados a um dispositivo de solicitação, como dispositivo de cliente 40.[0103] Request processing unit 70 is configured to receive network requests from client devices, such as client device 40, for data on storage media 62. For example, request processing unit 70 can implement Hypertext Transfer Protocol (HTTP) version 1.1, as described in RFC 2616, “Hypertext Transfer protocol - HTTP/1.1,” by R. Fielding et al., Network Working Group, IETF, June 1999. That is, the unit request processing 70 can be configured to receive partial GET or HTTP GET requests and provide multimedia content data 64 in responses to the requests. Requests can specify a segment from one of the 68 representations, for example using a segment URL. In some examples, requests may also specify one or more byte ranges of the segment, thus comprising partial GET requests. The request processing unit 70 can be further configured to listen for HEAD HTTP requests to provide header data for a segment of one of the representations 68. In any case, the request processing unit 70 can be configured to process the requests to provide requested data to a requesting device such as client device 40.

[0104] Adicionalmente ou alternativamente, a unidade de processamento de solicitação 70 pode ser configurada para distribuir dados de mídia através de um protocolo de broadcast ou multicast, como eMBMS. O dispositivo de preparação de conteúdo 20 pode criar segmentos DASH e/ou subsegmentos substancialmente do mesmo modo como descrito, porém o dispositivo de servidor 60 pode distribuir esses segmentos ou subsegmentos usando eMBMS ou outro protocolo de transporte de rede de broadcast ou multicast. Por exemplo, a unidade de processamento de solicitação 70 pode ser configurada para receber uma solicitação de união ao grupo de multicast a partir do dispositivo de cliente 40. Isto é, o dispositivo de servidor 60 pode anunciar um endereço de protocolo de internet (IP) associado a um grupo de multicast para dispositivos de cliente, incluindo dispositivo de cliente 40, associado ao conteúdo de mídia específico (por exemplo, um broadcast de um evento ao vivo). O dispositivo de cliente 40 por sua vez, pode submeter uma solicitação para unir-se ao grupo de multicast. Essa solicitação pode ser propagada por toda a rede 74, por exemplo, roteadores compondo a rede 74, de modo que os roteadores sejam induzidos a orientar tráfego destinado ao endereço IP associado ao grupo de multicast para dispositivos de cliente que assinam, como o dispositivo de cliente 40.[0104] Additionally or alternatively, the request processing unit 70 can be configured to distribute media data via a broadcast or multicast protocol, such as eMBMS. Content preparation device 20 may create DASH segments and/or subsegments in substantially the same manner as described, however server device 60 may distribute these segments or subsegments using eMBMS or another broadcast or multicast network transport protocol. For example, request processing unit 70 may be configured to receive a multicast group join request from client device 40. That is, server device 60 may advertise an internet protocol (IP) address. associated with a multicast group for client devices, including client device 40, associated with specific media content (eg, a broadcast of a live event). Client device 40 in turn may submit a request to join the multicast group. This request may be propagated throughout network 74, for example, routers comprising network 74, such that the routers are induced to direct traffic destined for the IP address associated with the multicast group to subscribing client devices, such as the customer 40.

[0105] Como ilustrado no exemplo da figura 1, o conteúdo de multimídia 64 inclui arquivo de manifesto 66, que pode corresponder a uma descrição de apresentação de mídia (MPD). O arquivo de manifesto 66 pode conter descrições de representações alternativas diferentes 68 (por exemplo, serviços de vídeo com qualidades diferentes) e a descrição pode incluir, por exemplo, informações de codec, um valor de perfil, um valor de nível, uma taxa de bits, e outras características descritivas de representações 68. O dispositivo de cliente 40 pode recuperar a MPD de uma apresentação de mídia para determinar como acessar segmentos de representações 68.[0105] As illustrated in the example of figure 1, multimedia content 64 includes manifest file 66, which may correspond to a media presentation description (MPD). The manifest file 66 may contain descriptions of different alternative representations 68 (e.g. video services with different qualities) and the description may include, for example, codec information, a profile value, a level value, a bits, and other descriptive characteristics of representations 68. Client device 40 may retrieve the MPD of a media presentation to determine how to access segments of representations 68.

[0106] Em particular, a unidade de recuperação 52 (que pode implementar as técnicas dessa revelação) pode recuperar dados de configuração (não mostrados) de dispositivo de cliente 40 para determinar capacidades de decodificação de decodificador de vídeo 48 e capacidades de fornecimento de transmissão de vídeo 44. Os dados de configuração podem incluir também quaisquer ou todos de uma preferência de linguagem selecionada por um usuário de dispositivo de cliente 40, uma ou mais perspectivas de câmera correspondendo a preferências de profundidade definidas pelo usuário do dispositivo de cliente 40, e/ou uma preferência de rating selecionada pelo usuário do dispositivo de cliente 40. A unidade de recuperação 52 pode compreender, por exemplo, um navegador de rede ou um cliente de mídia configurado para submeter solicitações de GET parcial e GET HTTP. A unidade de recuperação 52 pode corresponder a instruções de software executadas por um ou mais processadores ou unidades de processamento (não mostradas) do dispositivo de cliente 40. Em alguns exemplos, todas ou porções da funcionalidade descritas com relação à unidade de recuperação 52 podem ser implementadas em hardware, ou uma combinação de hardware, software e/ou firmware, onde hardware necessário pode ser fornecido para executar instruções para software ou firmware.[0106] In particular, retrieval unit 52 (which may implement the techniques of this disclosure) may retrieve configuration data (not shown) from client device 40 to determine video decoder 48 decoding capabilities and stream delivery capabilities video 44. The configuration data may also include any or all of a language preference selected by a user of client device 40, one or more camera perspectives corresponding to depth preferences defined by the user of client device 40, and /or a user-selected rating preference of the client device 40. The retrieval unit 52 may comprise, for example, a web browser or media client configured to submit partial GET and HTTP GET requests. The retrieval unit 52 may correspond to software instructions executed by one or more processors or processing units (not shown) of the client device 40. In some examples, all or portions of the functionality described in connection with the retrieval unit 52 may be implemented in hardware, or a combination of hardware, software and/or firmware, where necessary hardware may be provided to execute instructions for software or firmware.

[0107] A unidade de recuperação 52 pode comparar as capacidades de decodificação e fornecimento de dispositivo de cliente 40 com as características de representações 68 indicadas por informação de arquivo de manifesto 66. A unidade de recuperação 52 pode incialmente recuperar pelo menos uma porção do arquivo de manifesto 66 para determinar características de representações 68. Por exemplo, a unidade de recuperação 52 pode solicitar uma porção do arquivo de manifesto 66 que descreve características de um ou mais conjuntos de adaptação. A unidade de recuperação 52 pode selecionar um subconjunto de representações 68 (por exemplo, um conjunto de adaptação) tendo características que podem ser atendidas pelas capacidades de codificação e fornecimento do dispositivo de cliente 40. A unidade de recuperação 52 pode determinar taxas de bits para representações no conjunto de adaptação, determinar uma quantidade atualmente disponível de largura de banda de rede, e recuperar segmentos de uma das representações tendo uma taxa de bits que pode ser atendida pela largura de banda de rede.[0107] The retrieval unit 52 can compare the decoding and provisioning capabilities of client device 40 with the characteristics of representations 68 indicated by manifest file information 66. The retrieval unit 52 can initially retrieve at least a portion of the file of manifest file 66 to determine characteristics of representations 68. For example, the retrieval unit 52 may request a portion of the manifest file 66 that describes characteristics of one or more adaptation assemblies. Retrieval unit 52 can select a subset of representations 68 (e.g., an adaptation set) having characteristics that can be met by the encoding and provisioning capabilities of client device 40. Retrieval unit 52 can determine bit rates for representations in the adaptation set, determine a currently available amount of network bandwidth, and retrieve segments from one of the representations having a bitrate that can be serviced by the network bandwidth.

[0108] Em geral, representações de taxa de bit mais elevadas podem fornecer reprodução de vídeo de qualidade mais elevada, enquanto representações de taxa de bit mais baixas podem fornecer reprodução de vídeo de qualidade suficiente quando largura de banda de rede disponível diminui. Por conseguinte, quando largura de banda de rede disponível é relativamente elevada, a unidade de recuperação 52 pode recuperar dados a partir de representações de taxa de bit relativamente elevadas, ao passo que quando largura de banda de rede disponível é baixa, a unidade de recuperação 52 pode recuperar dados de representações de taxa de bits relativamente baixas. Desse modo, o dispositivo de cliente 40 pode fluir dados de multimídia através da rede 74 enquanto também se adapta a disponibilidade de largura de banda de rede em alteração da rede 74.[0108] In general, higher bitrate renderings can provide higher quality video playback, while lower bitrate renderings can provide sufficient quality video playback when available network bandwidth decreases. Therefore, when available network bandwidth is relatively high, the recovery unit 52 can recover data from relatively high bit rate representations, whereas when available network bandwidth is low, the recovery unit 52 can recover data from relatively low bit rate representations. In this way, client device 40 can stream multimedia data over network 74 while also adapting to changing network bandwidth availability on network 74.

[0109] Adicionalmente ou alternativamente, a unidade de recuperação 52 pode ser configurada para receber dados de acordo com um protocolo de rede broadcast ou multicast, como eMBMS ou multicast IP. Em tais exemplos, a unidade de recuperação 52 pode submeter uma solicitação para se unir a um grupo de rede multicast associado a conteúdo de mídia específico. Após unir-se ao grupo multicast, a unidade de recuperação 52 pode receber dados do grupo de multicast sem solicitações adicionais emitidas para um dispositivo de servidor 60 ou dispositivo de preparação de conteúdo 20. A unidade de recuperação 52 pode submeter uma solicitação para sair do grupo de multicast quando dados do grupo de multicast não mais são necessários, por exemplo, parar reprodução ou alterar canais para um grupo de multicast diferente.[0109] Additionally or alternatively, the recovery unit 52 can be configured to receive data according to a broadcast or multicast network protocol, such as eMBMS or IP multicast. In such examples, retrieval unit 52 may submit a request to join a multicast network group associated with specific media content. After joining the multicast group, the retrieval unit 52 can receive data from the multicast group without further requests issued to a server device 60 or content preparation device 20. The retrieval unit 52 can submit a request to leave the multicast group. multicast group when multicast group data is no longer needed, for example, stopping playback or changing channels to a different multicast group.

[0110] Além disso, de acordo com as técnicas dessa revelação, a unidade de recuperação 52 pode ser configurada para determinar se o arquivo de manifesto 66 indica que dois ou mais períodos de conteúdo de multimídia 64 são contínuos. Por exemplo, a unidade de recuperação 52 pode determinar que dois conjuntos de adaptação de dois períodos são períodos contínuos quando os conjuntos de adaptação são associados, o arquivo de manifesto 66 inclui um elemento de @presentationTimeOffset, ou pode ser inferido como 0, para todas as representações nos conjuntos de adaptação, em um conjunto de adaptação o valor de @presentationTimeOffset é idêntico para todas as representações, a soma do valor do @presentationTimeOffset, e a duração de apresentação de todas as representações em um conjunto de adaptação é idêntica ao valor de @presentationTimeOffset do outro conjunto de adaptação.[0110] Furthermore, in accordance with the techniques of this disclosure, the retrieval unit 52 can be configured to determine whether the manifest file 66 indicates that two or more periods of multimedia content 64 are continuous. For example, the unit of recovery 52 may determine that two adaptation sets of two periods are continuous periods when the adaptation sets are joined, the manifest file 66 includes an element of @presentationTimeOffset, or it may be inferred as 0, for all the representations in the adaptation sets, in an adaptation set the value of @presentationTimeOffset is identical for all representations, the sum of the value of @presentationTimeOffset, and the presentation duration of all representations in an adaptation set is identical to the value @presentationTimeOffset from the other adaptation set.

[0111] Além disso, a unidade de recuperação 52 pode usar o segmento de inicialização de uma representação em um conjunto de adaptação de um período como um segmento de inicialização para uma representação de outro conjunto de adaptação de outro período, onde os conjuntos de adaptação são períodos contínuos, se as representações tiverem o mesmo valor para @id. De modo semelhante, onde dois conjuntos de adaptação são períodos contínuos e o conjunto de adaptação posterior tem um descritor suplementar associado com @schemeIDURI=”urn.mpeg:dash:period-switchable,” a unidade de recuperação 52 pode determinar que representações em um dos conjuntos de adaptação podem ser concatenadas com qualquer representação a partir do outro conjunto de adaptação sem o segmento de inicialização do outro conjunto de adaptação. Desse modo, a unidade de recuperação 52 pode selecionar um conjunto de adaptação do segundo período com base em uma seleção de um conjunto de adaptação do primeiro período (por exemplo, sem analisar adicionalmente características do conjunto de adaptação do segundo período), assumindo que os primeiro e segundo períodos são contínuos.[0111] Furthermore, the recovery unit 52 may use the initialization segment of a representation in an adaptation set of one period as an initialization segment for a representation of another adaptation set of another period, where the adaptation sets are continuous periods, if the representations have the same value for @id. Similarly, where two adaptation sets are continuous periods and the later adaptation set has a supplemental descriptor associated with @schemeIDURI=”urn.mpeg:dash:period-switchable,” the retrieval unit 52 may determine which representations in a from the adaptation sets can be concatenated with any representation from the other adaptation set without the initialization segment of the other adaptation set. Thus, the retrieval unit 52 can select a second period adaptation set based on a selection of a first period adaptation set (e.g., without further analyzing characteristics of the second period adaptation set), assuming that the first and second periods are continuous.

[0112] Desse modo, a unidade de recuperação 52 pode ser configurada para determinar que um arquivo de manifesto para conteúdo de mídia indica que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indica que o primeiro e segundo períodos são contínuos, e que dados de mídia de anúncio são disponíveis para inserção entre os primeiro e segundo períodos. A unidade de recuperação 52 pode ser também reconfigurada para selecionar um primeiro conjunto de adaptação no primeiro período com base pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação. Tais características podem incluir, por exemplo, características de codificação e fornecimento, como codec, perfil, nível, dimensões de imagem, taxa de quadro ou similares. Para selecionar o conjunto de adaptação, a unidade de recuperação 52 pode comparar capacidades de codificação e fornecimento do dispositivo de cliente 40 com as características dos vários conjuntos de adaptação disponíveis, e selecionar um conjunto de adaptação que pode ser codificado e fornecido pelo dispositivo de cliente 40.[0112] Thus, the unit of recovery 52 can be configured to determine that a manifest file for media content indicates that the media content includes a first period and a second period, that the manifest file indicates that the first and second periods are continuous, and what ad media data is available for insertion between the first and second periods. The retrieval unit 52 may also be reconfigured to select a first adaptation set in the first period based at least in part on signaled characteristics for the first adaptation set. Such characteristics may include, for example, encoding and delivery characteristics such as codec, profile, level, image dimensions, frame rate or the like. To select the adaptation set, the retrieval unit 52 can compare coding and provisioning capabilities of the client device 40 with the characteristics of the various available adaptation sets, and select a adaptation set that can be encoded and provided by the client device. 40.

[0113] A unidade de recuperação 52 pode então recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação. Mais particularmente, a unidade de recuperação 52 pode selecionar uma representação do conjunto de adaptação (se mais de uma representação estiver disponível), por exemplo, com base em largura de banda de rede disponível e taxas de bit para as representações do conjunto de adaptação, de modo que a taxa de bits para a representação não excede a largura de banda de rede disponível. A unidade de recuperação 52 pode também recuperar os dados de mídia de anúncio. Além disso, a unidade de recuperação 52 pode recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que é associado ao primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação. Desse modo, a unidade de recuperação 52 pode simplesmente determinar que o segundo conjunto de adaptação é período contínuo com o primeiro conjunto de adaptação, e simplesmente selecionar o segundo conjunto de adaptação porque é período contínuo com o primeiro conjunto de adaptação que já foi selecionado, ao invés de analisar características de conjuntos de adaptação do segundo período como foi feito para o primeiro conjunto de adaptação.[0113] The recovery unit 52 can then recover media data from the first adaptation set based on the selection of the first adaptation set. More particularly, the retrieval unit 52 can select an adaptation set representation (if more than one representation is available), for example, based on available network bandwidth and bit rates for the adaptation set representations, so that the bit rate for the representation does not exceed the available network bandwidth. Retrieval unit 52 can also retrieve advertisement media data. Furthermore, the recovery unit 52 can recover media data from a second adaptation set in the second period that is associated with the first adaptation set based on the selection of the first adaptation set. In this way, the retrieval unit 52 can simply determine that the second adaptation set is period continuous with the first adaptation set, and simply select the second adaptation set because it is period continuous with the first adaptation set that has already been selected, instead of analyzing features of adaptation sets from the second period as was done for the first adaptation set.

[0114] A interface de rede 54 pode receber e fornecer dados de segmentos de uma representação selecionada para a unidade de recuperação 52, que pode, por sua vez, fornecer os segmentos para a unidade de descapsulação 50. A unidade de descapsulação 50 pode descapsular elementos de um arquivo de vídeo em fluxos PES constituintes, desempacotar os fluxos PES para recuperar dados codificados, e enviar os dados codificados para o decodificador de áudio 46 ou decodificador de vídeo 40, dependendo de se os dados codificados fazem parte de um fluxo de áudio ou vídeo, por exemplo, como indicado por cabeçalhos de pacote de PES do fluxo. O decodificador de áudio 46 decodifica dados de áudio e envia os dados de áudio decodificados para a saída de áudio 42, enquanto o decodificador de vídeo 48 decodifica dados de vídeo codificados e envia os dados de vídeo decodificados, que podem incluir uma pluralidade de vistas de um fluxo, para a saída de vídeo 44.[0114] The network interface 54 can receive and provide data from segments of a selected representation to the recovery unit 52, which can, in turn, provide the segments to the decapsulation unit 50. The decapsulation unit 50 can decapsulate elements of a video file into constituent PES streams, unpacking the PES streams to retrieve encoded data, and sending the encoded data to audio decoder 46 or video decoder 40, depending on whether the encoded data is part of an audio stream or video, for example, as indicated by the stream's PES packet headers. Audio decoder 46 decodes audio data and outputs the decoded audio data to audio output 42, while video decoder 48 decodes encoded video data and outputs the decoded video data, which may include a plurality of video views. a stream, to video output 44.

[0115] O codificador de vídeo 28, decodificador de vídeo 48, codificador de áudio 26, decodificador de áudio 46, unidade de encapsulação 30, unidade de recuperação 52, e unidade de descapsulação 50 cada podem ser implementados como qualquer de uma variedade de conjunto de circuitos de processamento adequado, como aplicável, como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASICs), disposições de porta programáveis em campo (FPGAs), conjunto de circuitos de lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Cada do codificador de vídeo 28 e decodificador de vídeo 48 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo combinado (CODEC). De modo semelhante, cada do codificador de áudio 26 e decodificador de áudio 46 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um CODEC combinado. Um aparelho incluindo codificador de vídeo 28, decodificador de vídeo 48, codificador de áudio 26, decodificador de áudio 46, unidade de encapsulação 30, unidade de recuperação 52, e/ou unidade de descapsulação 50 pode compreender um circuito integrado, um microprocessador, e/ou um dispositivo de comunicação sem fio, como um telefone celular.[0115] The video encoder 28, video decoder 48, audio encoder 26, audio decoder 46, encapsulation unit 30, recovery unit 52, and decapsulation unit 50 each can be implemented as any of a variety of sets of suitable processing circuitry, as applicable, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic circuitry, software , hardware, firmware or any combination thereof. Each of the video encoder 28 and video decoder 48 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined video encoder/decoder (CODEC). Similarly, each of the audio encoder 26 and audio decoder 46 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined CODEC. An apparatus including video encoder 28, video decoder 48, audio encoder 26, audio decoder 46, encapsulation unit 30, recovery unit 52, and/or decapsulation unit 50 may comprise an integrated circuit, a microprocessor, and /or a wireless communication device such as a cell phone.

[0116] O dispositivo de cliente 40, dispositivo de servidor 60, e/ou dispositivo de preparação de conteúdo 20 podem ser configurados para operar de acordo com as técnicas dessa revelação. Para fins de exemplo, essa revelação descreve essas técnicas com relação ao dispositivo de cliente 40 e dispositivo de servidor 60. Entretanto, pode ser entendido que o dispositivo de preparação de conteúdo 20 pode ser configurado para executar essas técnicas, ao invés de (ou além de) dispositivo de servidor 60.[0116] Client device 40, server device 60, and/or content preparation device 20 can be configured to operate in accordance with the techniques of this disclosure. For purposes of example, this disclosure describes these techniques with respect to client device 40 and server device 60. However, it can be understood that content preparation device 20 may be configured to perform these techniques, rather than (or in addition to) de) server device 60.

[0117] A unidade de encapsulação 30 pode formar unidades NAL compreendendo um cabeçalho que identifica um programa ao qual a unidade NAL pertence, bem como uma carga útil, dados de áudio, dados de vídeo, ou dados que descrevem o fluxo de programa ou transporte ao qual a unidade NAL corresponde. Por exemplo, em H.264/AVC, uma unidade NAL inclui um cabeçalho de 1 byte e uma carga útil de tamanho variável. Uma unidade NAL incluindo dados de vídeo em sua carga útil podem compreender vários níveis de granularidade de dados de vídeo. Por exemplo, uma unidade NAL pode compreender um bloco de dados de vídeo, uma pluralidade de blocos, uma fatia de dados de vídeo, ou uma imagem inteira de dados de vídeo. A unidade de encapsulação 30 pode receber dados de vídeo codificados a partir do codificador de vídeo 28 na forma de pacotes PES de fluxos elementares. A unidade de encapsulação 30 pode associar cada fluxo elementar com um programa correspondente.[0117] The encapsulation unit 30 can form NAL units comprising a header identifying a program to which the NAL unit belongs, as well as a payload, audio data, video data, or data describing the program stream or transport to which the NAL unit corresponds. For example, in H.264/AVC, a NAL unit includes a 1-byte header and a variable-length payload. A NAL unit including video data in its payload can comprise several levels of video data granularity. For example, a NAL unit may comprise a block of video data, a plurality of blocks, a slice of video data, or an entire frame of video data. The encapsulation unit 30 can receive encoded video data from the video encoder 28 in the form of elementary stream PES packets. The encapsulation unit 30 can associate each elementary stream with a corresponding program.

[0118] A unidade de encapsulação 30 pode também montar unidades de acesso de uma pluralidade de unidades NAL. Em geral, uma unidade de acesso pode compreender uma ou mais unidades NAL para representar um quadro de dados de vídeo, bem como dados de áudio correspondendo ao quadro quando tais dados de áudio são disponíveis. Uma unidade de acesso inclui em geral todas as unidades NAL para uma instância de tempo de saída, por exemplo, todos os dados de vídeo e áudio para uma instância de tempo. Por exemplo, se cada vídeo tiver uma taxa de quadro de 20 quadros por segundo (fps), cada instância de tempo pode corresponder a um intervalo de tempo de 0,05 segundos. Durante esse intervalo de tempo, os quadros específicos para todas as vistas da mesma unidade de acesso (a mesma instância de tempo) podem ser fornecidos simultaneamente. Em um exemplo, uma unidade de acesso pode compreender uma imagem codificada em uma instância de tempo, que pode ser apresentada como uma imagem codificada primária.[0118] The encapsulation unit 30 can also assemble access units from a plurality of NAL units. In general, an access unit may comprise one or more NAL units for representing a frame of video data, as well as audio data corresponding to the frame when such audio data is available. An access unit generally includes all NAL units for an output time instance, for example all video and audio data for a time instance. For example, if each video has a frame rate of 20 frames per second (fps), each time instance might correspond to a time interval of 0.05 seconds. During that time interval, specific frames for all views of the same access unit (the same time instance) can be provided simultaneously. In one example, an access unit may comprise an encoded image at a time instance, which may be presented as a primary encoded image.

[0119] Por conseguinte, uma unidade de acesso pode compreender todos os quadros de vídeo e áudio de uma instância temporal comum, por exemplo, todas as vistas correspondendo a tempo X. Essa revelação também se refere a uma imagem codificada de uma vista específica como um “componente de vista.” Isto é, um componente de vista pode compreender uma imagem codificada (ou quadro) para uma vista específica em um tempo específico. Por conseguinte, uma unidade de acesso pode ser definida como compreendendo todos os componentes de vistas de uma instância temporal comum. A ordem de decodificação de unidades de acesso não precisa necessariamente ser igual à ordem de exibição ou saída.[0119] Therefore, an access unit can comprise all video and audio frames of a common temporal instance, for example, all views corresponding to time X. This revelation also refers to an encoded image of a specific view as a “view component.” That is, a view component may comprise an encoded image (or frame) for a specific view at a specific time. Therefore, an access unit can be defined as comprising all view components of a common temporal instance. The decoding order of access units need not necessarily be the same as the display or output order.

[0120] Uma apresentação de mídia pode incluir uma descrição de apresentação de mídia (MPD), que pode conter descrições de representações alternativas diferentes (por exemplo, serviços de vídeo com qualidades diferentes) e a descrição pode incluir, por exemplo, informação de codec, um valor de perfil, e um valor de nível. Uma MPD é um exemplo de um arquivo de manifesto, como arquivo de manifesto 66. O dispositivo de cliente 40 pode recuperar a MPD de uma apresentação de mídia para determinar como acessar fragmentos de filme de várias apresentações. Fragmentos de filme podem ser localizados em caixas de fragmento de filme (caixas moof) de arquivos de vídeo.[0120] A media presentation may include a media presentation description (MPD), which may contain descriptions of different alternative representations (for example, video services with different qualities), and the description may include, for example, codec information , a profile value, and a level value. An MPD is an example of a manifest file, such as manifest file 66. Client device 40 may retrieve the MPD from a media presentation to determine how to access movie fragments from various presentations. Movie snippets can be located in movie snippet boxes (moof boxes) of video files.

[0121] O arquivo de manifesto 66 (que pode compreender, por exemplo, uma MPD) pode anunciar disponibilidade de segmentos de representações 68. Isto é, a MPD pode incluir informações indicando o tempo de relógio de parede no qual um primeiro segmento de uma das representações 68 se torna disponível, bem como informações indicando as durações de segmentos nas representações 68. Desse modo, a unidade de recuperação 52 do dispositivo de cliente 40 pode determinar quando cada segmento é disponível, com base no horário de início bem como as durações dos segmentos precedendo um segmento específico.[0121] The manifest file 66 (which may comprise, for example, an MPD) may announce availability of segments of representations 68. That is, the MPD may include information indicating the wall clock time at which a first segment of a of the representations 68 becomes available, as well as information indicating the durations of segments in the representations 68. In this way, the retrieval unit 52 of the client device 40 can determine when each segment is available, based on the start time as well as the durations. of segments preceding a specific segment.

[0122] Após a unidade de encapsulação 30 ter montado unidades NAL e/ou unidades de acesso em um arquivo de vídeo baseado em dados recebidos, a unidade de encapsulação 30 passa o arquivo de vídeo para a interface de transmissão 32 para transmissão. em alguns exemplos, a unidade de encapsulação 30 pode armazenar o arquivo de vídeo localmente ou enviar o arquivo de vídeo para um servidor remoto através da interface de saída 32, ao invés de enviar o arquivo de vídeo diretamente para o dispositivo de cliente 40. A interface de saída 32 pode compreender, por exemplo, um transmissor, um transceptor, um dispositivo para gravar dados para uma mídia legível em computador como, por exemplo, uma unidade ótica, uma unidade de mídia magnética (por exemplo, unidade flexível), uma porta de barramento serial universal (USB), uma interface de rede, ou outra interface de saída. A interface de saída 32 transmite o arquivo de vídeo para uma mídia legível em computador 34, como, por exemplo, um sinal de transmissão, uma mídia magnética, uma mídia ótica, uma memória, uma unidade flash, ou outra mídia legível em computador.[0122] After the encapsulation unit 30 has mounted NAL units and/or access units on a video file based on received data, the encapsulation unit 30 passes the video file to the transmission interface 32 for transmission. in some examples, encapsulation unit 30 may store the video file locally or send the video file to a remote server via output interface 32, rather than sending the video file directly to client device 40. output interface 32 may comprise, for example, a transmitter, a transceiver, a device for recording data to computer readable media such as, for example, an optical drive, a magnetic media drive (e.g., floppy drive), a universal serial bus (USB) port, a network interface, or other output interface. Output interface 32 transmits the video file to computer readable media 34, such as a broadcast signal, magnetic media, optical media, memory, flash drive, or other computer readable media.

[0123] A interface de rede 54 pode compreender uma unidade NAL ou unidade de acesso através de rede 74 e fornecer a unidade NAL ou unidade de acesso à unidade de encapsulação 50, através da unidade de recuperação 52. A unidade de descapsulação 50 pode descapsular um elemento de um arquivo de vídeo em fluxos PES constituintes, desempacotar os fluxos PES para recuperar dados codificados, e enviar os dados codificados para o decodificador de áudio 46 ou decodificador de vídeo 48, dependendo de se os dados codificados fazem parte de um fluxo de áudio ou vídeo, por exemplo, como indicado por cabeçalhos de pacote PES do fluxo. O decodificador de áudio 46 decodifica dados de áudio codificados e envia os dados de áudio decodificados para a saída de áudio 42, enquanto o decodificador de vídeo 48 decodifica dados de vídeo codificados e envia os dados de vídeo decodificados, que podem incluir uma pluralidade de vista de um fluxo, para a saída de vídeo 44.[0123] The network interface 54 may comprise a NAL unit or network access unit 74 and provide the NAL unit or access unit to the encapsulation unit 50 via the recovery unit 52. The decapsulation unit 50 can decapsulate an element of a video file into constituent PES streams, unpacking the PES streams to retrieve encoded data, and sending the encoded data to audio decoder 46 or video decoder 48, depending on whether the encoded data is part of a video stream. audio or video, for example, as indicated by the stream's PES packet headers. Audio decoder 46 decodes encoded audio data and outputs the decoded audio data to audio output 42, while video decoder 48 decodes encoded video data and outputs the decoded video data, which may include a plurality of views. of a stream, to video output 44.

[0124] Em um exemplo, um método de recuperar dados de mídia é descrito, o método compreendendo dividir, por um servidor de mídia, conteúdo principal de dados de mídia em uma pluralidade de períodos, inserir, pelo servidor de mídia, conteúdo de mídia secundário entre um primeiro período e um segundo período, em que o primeiro período e o segundo período são temporalmente sequenciais, sinalizar, pelo servidor de mídia, um indicador de tempo para cada da pluralidade de períodos, em que o indicador de tempo define uma ou mais características de tempo para cada da pluralidade de períodos, e receber, pelo servidor de mídia, uma solicitação para recuperar, a partir de um cliente de streaming adaptável dinâmico sobre HTTP (DASH), um fluxo de mídia compreendendo a pluralidade de períodos, o conteúdo de mídia secundário, e os indicadores de tempo.[0124] In an example, a method of retrieving media data is described, the method comprising dividing, by a media server, main content of media data into a plurality of periods, inserting, by the media server, media content secondary between a first period and a second period, wherein the first period and the second period are temporally sequential, signaling, by the media server, a time pointer for each of the plurality of periods, wherein the time pointer defines one or more time characteristics for each of the plurality of periods, and receiving, by the media server, a request to retrieve, from a dynamic adaptive streaming over HTTP (DASH) client, a media stream comprising the plurality of periods, the secondary media content, and time indicators.

[0125] Em outro exemplo, um método de recuperar dados de mídia é descrito, o método compreendendo determinar que um arquivo de manifesto para conteúdo de mídia indica que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indica que os primeiro e segundo períodos são contínuos, e que dados de mídia de anúncio são disponíveis para inserção entre os primeiro e segundo períodos, selecionar um primeiro conjunto de adaptação no primeiro período com base pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação, recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação, recuperar os dados de mídia de anúncio, e recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que o arquivo de manifesto indica ser associado ao primeiro conjunto de adaptação na seleção do primeiro conjunto de adaptação.[0125] In another example, a method of retrieving media data is described, the method comprising determining that a manifest file for media content indicates that the media content includes a first sentence and a second sentence, that the manifest file indicates that the first and second periods are continuous, and that ad media data is available for insertion between the first and second periods, select a first fitting set in the first period based at least in part on features flagged for the first set of adaptation, retrieve media data from the first adaptation set based on the selection of the first adaptation set, retrieve the announcement media data, and retrieve media data from a second adaptation set in the second period that the manifest file indicates be associated with the first adaptation set in the selection of the first adaptation set.

[0126] Em outro exemplo, um método de recuperar dados de mídia é descrito, o método compreendendo determinar se conteúdo de mídia inclui um primeiro período e um segundo período, determinar se o primeiro período e o segundo período são contínuos, determinar se dados de mídia de anúncio são disponíveis para inserção entre o primeiro e segundo períodos, e formar um arquivo de manifesto, em que o arquivo de manifesto inclui indicações de se o conteúdo de mídia inclui o primeiro período e o segundo período, se o primeiro e o segundo período são contínuos, e se os dados de mídia de anúncio são disponíveis para inserção entre o primeiro e segundo períodos.[0126] In another example, a method of retrieving media data is described, the method comprising determining whether media content includes a first period and a second period, determining whether the first period and the second period are continuous, determining whether data from advertisement media are available for insertion between the first and second periods, and form a manifest file, where the manifest file includes indications of whether the media content includes the first period and the second period, whether the first and second periods period are continuous, and whether ad media data is available for insertion between the first and second periods.

[0127] A figura 2 é um diagrama conceptual ilustrando elementos de conteúdo de multimídia de exemplo 102. O conteúdo de multimídia 102 pode corresponder a conteúdo de multimídia 64 (figura 1), ou outro conteúdo de multimídia armazenado em memória 62. No exemplo da figura 2, o conteúdo de multimídia 102 inclui descrição de apresentação de mídia (MPD) 104 e uma pluralidade de representações 110A-110N. A representação 110A inclui dados de cabeçalho opcionais 112 e segmentos 114A-114N (segmentos 114), enquanto a representação 110N inclui dados de cabeçalho opcionais 122 e segmentos 124A-124N (segmentos 124). A letra N é usada para designar o último fragmento de filme em cada das representações 110A, 110N como uma questão de conveniência. Em alguns exemplos, pode haver números diferentes de fragmentos de filme entre representações 110A, 110N.[0127] Figure 2 is a conceptual diagram illustrating sample multimedia content elements 102. Multimedia content 102 may correspond to multimedia content 64 (Figure 1), or other multimedia content stored in memory 62. In the example of Figure 2, multimedia content 102 includes Media Presentation Description (MPD) 104 and a plurality of representations 110A-110N. Representation 110A includes optional header data 112 and segments 114A-114N (segments 114), while representation 110N includes optional header data 122 and segments 124A-124N (segments 124). The letter N is used to designate the last film fragment in each of representations 110A, 110N as a matter of convenience. In some examples, there may be different numbers of film fragments between representations 110A, 110N.

[0128] MPD 104 pode compreender uma estrutura de dados separada de representações 110A-110N. A MPD 104 pode corresponder ao arquivo de manifesto 66 da figura 1. De modo semelhante, representações 110A-110N podem corresponder a representações 68 da figura 1. Em geral, MPD 104 pode incluir dados que genericamente descrevem características de representações 110A-110N, como características de codificação e fornecimento, conjuntos de adaptação, um perfil ao qual MPD 104 corresponde, informações do tipo de texto, informações de ângulo de câmera, informação de classificação, informação de modo de artifício (por exemplo, informação indicativa de representações que incluem subsequências temporais), e/ou informação para recuperar períodos remotos (por exemplo, para inserção de anúncio direcionada em conteúdo de mídia durante reprodução).[0128] MPD 104 may comprise a separate data structure of representations 110A-110N. MPD 104 may correspond to manifest file 66 of Figure 1. Similarly, representations 110A-110N may correspond to representations 68 of Figure 1. In general, MPD 104 may include data that generically describes features of representations 110A-110N, such as encoding and supply characteristics, adaptation sets, a profile to which MPD 104 corresponds, text type information, camera angle information, classification information, device mode information (e.g., information indicative of representations that include substrings temporal), and/or information to retrieve remote periods (e.g., for targeted ad insertion into media content during playback).

[0129] Dados de cabeçalho 112, quando presentes, podem descrever características de segmentos 114, por exemplo, locais temporais de pontos de acesso aleatórios (RAPs, também mencionados como pontos de acesso de fluxo (SAPs)), qual dos segmentos 114 inclui pontos de acesso aleatórios, deslocamentos de byte para pontos de acesso aleatório nos segmentos 114, localizadores de recurso uniforme (URLs) de segmentos 114, ou outros aspectos de segmentos 114. Dados de cabeçalho 122, quando presentes, podem descrever características similares para segmentos 124. Adicionalmente ou alternativamente, tais características podem ser totalmente incluídas na MPD 104.[0129] Header data 112, when present, can describe characteristics of segments 114, for example, temporal locations of random access points (RAPs, also referred to as flow access points (SAPs)), which of the segments 114 includes points access points, byte offsets to random access points in segments 114, uniform resource locators (URLs) of segments 114, or other aspects of segments 114. Header data 122, when present, may describe similar characteristics for segments 124. Additionally or alternatively, such features can be fully included in MPD 104.

[0130] Segmentos 114, 124 incluem uma ou mais amostras de vídeo codificadas, cada uma das quais pode incluir quadros ou fatias de dados de vídeo. Cada das amostras de vídeo codificadas de segmentos 114 pode ter características similares, por exemplo, altura, largura e exigências de largura de banda. Tais características podem ser descritas por dados de MPD 104, embora tais dados não sejam ilustrados no exemplo da figura 2. MPD 104 pode incluir características como descrito pela Especificação de 3GPP, com a adição de todas ou quaisquer das informações sinalizadas descritas nessa revelação.[0130] Segments 114, 124 include one or more encoded video samples, each of which may include frames or slices of video data. Each of the segments encoded video samples 114 may have similar characteristics, for example, height, width and bandwidth requirements. Such features may be described by MPD data 104, although such data is not illustrated in the example of Figure 2. MPD 104 may include features as described by the 3GPP Specification, with the addition of any or all of the flagged information described in that disclosure.

[0131] Cada dos segmentos 114, 124 pode ser associado a um localizador de recurso uniforme exclusivo (URL). Desse modo, cada dos segmentos 114, 124 pode ser independentemente recuperável usando um protocolo de rede de streaming, como DASH. Desse modo, um dispositivo de destino, como dispositivo de cliente 40, pode usar uma solicitação GET HTTP para recuperar segmentos 114 ou 124. Em alguns exemplos, o dispositivo de cliente 40 pode usar solicitações GET parcial HTTP para recuperar faixas de byte específicas de segmentos 114 ou 124.[0131] Each of the segments 114, 124 can be associated with a unique uniform resource locator (URL). In this way, each of the segments 114, 124 may be independently retrievable using a streaming network protocol such as DASH. Thus, a target device such as client device 40 can use an HTTP GET request to retrieve segments 114 or 124. In some examples, client device 40 can use HTTP partial GET requests to retrieve specific byte ranges from segments 114 or 124.

[0132] A descrição de apresentação de mídia 104 pode, de acordo com as técnicas dessa revelação, indicar que um período ao qual representações 110A-110N correspondem é contínuo com outro período, duas representações subsequentes (não mostradas) podem corresponder. Por conseguinte, um conjunto de adaptação incluindo representações 110A-110N podem ser iguais ao outro conjunto de adaptação, onde tais características podem incluir toda ou qualquer da linguagem como descrito por um atributo @lang de descrição de apresentação de mídia 104, tipo de componente de mídia descrito por um atributo @contentType de descrição de apresentação de mídia 104, razão de aspecto de imagem como descrito por um atributo @par de descrição de apresentação de mídia 104, qualquer propriedade de papel como descrito por Elementos de Papel de descrição de apresentação de mídia 104, qualquer propriedade de acessibilidade como descrito por elementos de Acessibilidade de descrição de apresentação de mídia 104, e/ou qualquer propriedade de ponto de vista como descrito por elementos de Ponto de vista de descrição de apresentação de mídia 104.[0132] Media presentation description 104 may, in accordance with the techniques of this disclosure, indicate that a period to which representations 110A-110N correspond is continuous with another period two subsequent representations (not shown) may correspond. Therefore, an adaptation set including representations 110A-110N may be the same as another adaptation set, where such features may include all or any of the language as described by a media presentation description @lang attribute 104, component type of media described by a media presentation description @contentType attribute 104, image aspect ratio as described by a media presentation description @pair attribute 104, any role property as described by a media presentation description Role Elements media 104, any accessibility property as described by Media Presentation Description Accessibility elements 104, and/or any viewpoint property as described by Media Presentation Description Viewpoint elements 104.

[0133] Desse modo, o dispositivo de cliente 40 pode selecionar o conjunto de adaptação incluindo representações 110A-110N com base em características sinalizadas em descrição de apresentação de mídia 104, e então recuperar dados de mídia do outro conjunto de adaptação (do período contínuo, subsequente) com base na seleção do conjunto de adaptação incluindo representações 110A-110N. Isto é, o dispositivo de cliente 40 não necessita avaliar características do conjunto de adaptação associado, porque tais características são idênticas (com base na indicação em descrição de apresentação de mídia 104 que o conjunto de adaptação do período subsequente é associado ao conjunto de adaptação incluindo representações 110A-110N).[0133] In this way, the client device 40 can select the adaptation set including representations 110A-110N based on characteristics signaled in media presentation description 104, and then retrieve media data from the other adaptation set (from the continuous period , subsequent) based on the selection of the adaptation set including representations 110A-110N. That is, the client device 40 need not evaluate features of the associated fitting set, because such features are identical (based on the indication in media presentation description 104 that the fitting set of the subsequent period is associated with the fitting set including representations 110A-110N).

[0134] A figura 3 é um diagrama de blocos ilustrando outro sistema de exemplo 200 que pode implementar as técnicas dessa revelação. Os elementos do sistema 200 na figura 4 podem corresponder em geral aos elementos da figura 1. Por exemplo, o sistema 200 inclui servidor de decisão de anúncio (anúncio) 208, sistema de distribuição de conteúdo 212, e dispositivo de cliente 206. Os elementos do sistema de distribuição de conteúdo 212 podem corresponder em geral ao dispositivo de preparação de conteúdo 20 e/ou dispositivo de servidor 60 da figura 1, enquanto os elementos do dispositivo de cliente 206 podem corresponder ao dispositivo de cliente 40 da figura 1. Em alguns exemplos, os elementos do dispositivo de cliente 206 podem corresponder à unidade de recuperação 52 da figura 1.[0134] Figure 3 is a block diagram illustrating another example system 200 that can implement the techniques of this disclosure. Elements of system 200 in Figure 4 may generally correspond to elements of Figure 1. For example, system 200 includes advertisement (advertisement) decision server 208, content delivery system 212, and client device 206. elements of the content delivery system 212 may generally correspond to the content preparation device 20 and/or server device 60 of Figure 1, while elements of the client device 206 may correspond to the client device 40 of Figure 1. For example, elements of client device 206 may correspond to recovery unit 52 of Figure 1.

[0135] Nesse exemplo, o dispositivo de cliente 206 inclui motor de mídia 202 e cliente de acesso DASH 204. O sistema de distribuição de conteúdo 212 inclui gerador de MPD 214, empacotador 216, e rede de distribuição de conteúdo (CDN)/servidor de Origem 218. O servidor de origem 218 armazena MPD 220, conteúdo principal 222A-222C, e dados de anúncio 224A-224C.[0135] In this example, the client device 206 includes media engine 202 and DASH access client 204. The content delivery system 212 includes MPD generator 214, packer 216, and content delivery network (CDN)/server Origin 218. Origin server 218 stores MPD 220, main content 222A-222C, and advertisement data 224A-224C.

[0136] O motor de mídia 202, cliente de acesso DASH 204, gerador de MPD 214, e empacotador 216 podem ser implementados em hardware ou software. Quando implementado em software, é presumido que hardware necessário, como uma ou mais unidades de processamento e uma ou mais mídia de armazenagem legível em computador, são também fornecidos. A mídia de armazenagem legível em computador pode armazenar instruções para o software, e as unidades de processamento podem executar as instruções para executar a funcionalidade descrita acima.[0136] The media engine 202, DASH access client 204, MPD generator 214, and packer 216 can be implemented in hardware or software. When implemented in software, it is assumed that necessary hardware, such as one or more processing units and one or more computer-readable storage media, are also provided. Computer-readable storage media can store instructions for the software, and processing units can execute the instructions to perform the functionality described above.

[0137] Uma MPD é disponível que aponta para conteúdo em Demanda no CDN contendo uma apresentação de período único. A MPD, com base em sugestões (oportunidades de inserção de anúncio), é modificada para adicionar múltiplos períodos sem alterar o conteúdo no servidor. Para cada oportunidade, um xlink para o servidor de Decisão de anúncio é fornecido. A MPD é fornecida para o cliente DASH. Para cada xlink na MPD, é verificado se anúncios são adicionados, possivelmente direcionados ao usuário. Em caso negativo, o período é resolvido para 0. Em caso positivo, outro conteúdo é adicionado. O cliente DASH toca o conteúdo continuamente, e se resolvido para zero, o motor de mídia não é recentemente inicializado.[0137] An MPD is available that points to On Demand content on the CDN containing a single period presentation. The MPD, based on suggestions (ad insertion opportunities), is modified to add multiple periods without changing the content on the server. For each lead, an xlink to the Ad Decision server is provided. The MPD is provided for the DASH client. For each xlink in the MPD, it is checked whether advertisements are added, possibly targeting the user. If not, the period is resolved to 0. If so, another content is added. The DASH client plays content continuously, and if set to zero, the media engine is not freshly started.

[0138] O gerador de MPD 214 da figura 3 pode ser configurado para indicar que dois ou mais Períodos são contínuos. Por conseguinte, o gerador de MPD 214 pode indicar conjuntos de adaptação dos períodos que são associados, como discutido acima, em uma MPD (ou outro arquivo de manifesto), de acordo com as técnicas dessas revelação. Desse modo, o dispositivo de cliente 206 pode selecionar um conjunto de adaptação de um período e um conjunto de adaptação associado de outro período contínuo, com base em características do conjunto de adaptação do primeiro período sinalizado na MPD gerada pelo gerador de MPD 214.[0138] The MPD generator 214 of figure 3 can be configured to indicate that two or more Periods are continuous. Accordingly, the MPD generator 214 may indicate adaptation sets of periods that are associated, as discussed above, in an MPD (or other manifest file), in accordance with the techniques of such disclosure. Thus, client device 206 can select a one period adaptation set and an associated other continuous period adaptation set, based on characteristics of the first period adaptation set signaled in the MPD generated by the MPD generator 214.

[0139] Desse modo, o sistema de distribuição de conteúdo 212 e servidor de Origem/CND 218 representam exemplos de um dispositivo para enviar dados de mídia, o dispositivo incluindo uma memória configurada para armazenar dados de mídia, e um ou mais processadores à base de hardware configurados para dividir o conteúdo principal dos dados de mídia em uma pluralidade de períodos incluindo um primeiro período e um segundo período que são temporalmente sequenciais, inserir conteúdo de mídia secundário entre o primeiro período e o segundo período, sinalizar um indicador de tempo para cada da pluralidade de períodos, em que o indicador de tempo define uma ou mais características de tempo para cada da pluralidade de períodos, e receber uma solicitação de um cliente de streaming adaptável dinâmico através de HTTP (DASH) para recuperar um fluxo de mídia compreendendo a pluralidade de períodos, o conteúdo de mídia secundário e os indicadores de tempo.[0139] Thus, the content distribution system 212 and Origin/CND server 218 represent examples of a device for sending media data, the device including a memory configured to store media data, and one or more processors based on devices configured to divide the main content of the media data into a plurality of periods including a first period and a second period that are temporally sequential, inserting secondary media content between the first period and the second period, signaling a time indicator for each of the plurality of periods, wherein the time indicator defines one or more time characteristics for each of the plurality of periods, and receiving a request from a dynamic adaptive streaming client over HTTP (DASH) to retrieve a stream of media comprising the plurality of periods, secondary media content and time indicators.

[0140] De modo semelhante, o dispositivo de cliente 206 representa um exemplo de um dispositivo para recuperar dados de mídia, o dispositivo incluindo uma memória configurada para armazenar dados de mídia; e um ou mais processadores baseados em hardware configurados para determinar que um arquivo de manifesto para conteúdo de mídia indique que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indique os primeiro e segundo períodos são contínuos, e que dados de mídia de anúncio estão disponíveis para inserção entre o primeiro e segundo períodos, selecionar um primeiro conjunto de adaptação no primeiro período com base pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação, recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação, recuperar dados de mídia de anúncio, e recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que o arquivo de manifesto indica estar associado ao primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação e armazenar os dados de mídia recuperados para a memória.[0140] Similarly, client device 206 represents an example of a device for retrieving media data, the device including a memory configured to store media data; and one or more hardware-based processors configured to determine that a manifest file for media content indicates that the media content includes a first period and a second period, that the manifest file indicates that the first and second periods are continuous, and what ad media data is available for insertion between the first and second periods, selecting a first adaptation set in the first period based at least in part on characteristics flagged for the first adaptation set, retrieving media data from the first adaptation set adaptation based on the selection of the first adaptation set, retrieve media data from the advertisement, and retrieve media data from a second adaptation set in the second period that the manifest file indicates is associated with the first adaptation set based on the selection of the first adaptation set and store the retrieved media data to memory.

[0141] A figura 4 é um fluxograma ilustrando um método de enviar dados de mídia de acordo com uma ou mais técnicas da revelação atual. Nesse exemplo, um servidor de mídia pode dividir o conteúdo principal de dados de mídia em uma pluralidade de períodos (300). O servidor de mídia pode inserir conteúdo de mídia secundário entre um primeiro período e um segundo período (302), em que o primeiro período e o segundo período são temporalmente sequenciais. O conteúdo de mídia secundário pode ser, por exemplo, conteúdo de mídia de anúncio, que deve ser apresentado substancialmente do mesmo modo que o conteúdo de mídia principal. O servidor de mídia pode sinalizar um indicador de tempo para cada da pluralidade de períodos (304), em que o indicador de tempo define uma ou mais características de tempo para cada da pluralidade de períodos. O servidor de mídia pode receber uma solicitação para recuperar um fluxo de mídia (306), por exemplo, de um cliente de streaming adaptável dinâmico através de HTTP (DASH). A solicitação para o fluxo de mídia pode corresponder a uma solicitação para recuperar um fluxo de mídia compreendendo a pluralidade de períodos, o conteúdo de mídia secundário, e os indicadores de tempo.[0141] Figure 4 is a flowchart illustrating a method of sending media data in accordance with one or more techniques of the current disclosure. In this example, a media server may divide the main content of media data into a plurality of periods (300). The media server may insert secondary media content between a first period and a second period (302), wherein the first period and second period are temporally sequential. Secondary media content can be, for example, advertising media content, which must be presented in substantially the same way as primary media content. The media server may signal a time pointer for each of the plurality of periods (304), wherein the time pointer defines one or more time characteristics for each of the plurality of periods. The media server may receive a request to retrieve a media stream (306), for example from a dynamic adaptive streaming client over HTTP (DASH). The request for the media stream may correspond to a request to retrieve a media stream comprising the plurality of periods, secondary media content, and time indicators.

[0142] A figura 5 é um fluxograma ilustrando um método de recuperar dados de mídia de acordo com uma ou mais técnicas da presente revelação. Nesse exemplo, um dispositivo determina características de um arquivo de manifesto (310). Por exemplo, o dispositivo pode determinar que o arquivo de manifesto para conteúdo de mídia indique que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indique que o primeiro e o segundo períodos são contínuos, e que dados de mídia de anúncio estão disponíveis para inserção entre o primeiro e segundo períodos. O dispositivo pode selecionar um primeiro conjunto de adaptação (312). Em um exemplo, o primeiro conjunto de adaptação pode estar no primeiro período, e a seleção pode ser baseada pelo menos em parte nas características sinalizadas para o primeiro conjunto de adaptação. O dispositivo pode então recuperar dados de mídia do primeiro conjunto de adaptação (314) com base na seleção do primeiro conjunto de adaptação. O dispositivo pode então recuperar os dados de mídia de anúncio (316). Além disso, o dispositivo pode recuperar dados de mídia de um segundo conjunto de adaptação com base na seleção do primeiro conjunto de adaptação (318). O segundo conjunto de adaptação pode estar no segundo período, e o arquivo de manifesto pode indicar que o segundo conjunto de adaptação é associado ao primeiro conjunto de adaptação.[0142] Fig. 5 is a flowchart illustrating a method of recovering media data according to one or more techniques of the present disclosure. In this example, a device determines characteristics of a manifest file (310). For example, the device may determine that the manifest file for media content states that the media content includes a first period and a second period, that the manifest file indicates that the first and second periods are continuous, and that data of ad media are available for insertion between the first and second periods. The device may select a first adaptation set (312). In one example, the first adaptation set may be in the first period, and the selection may be based at least in part on the traits flagged for the first adaptation set. The device may then retrieve media data from the first adaptation set (314) based on the selection of the first adaptation set. The device can then retrieve the ad media data (316). Furthermore, the device may retrieve media data from a second adaptation set based on the selection of the first adaptation set (318). The second adaptation set can be in the second period, and the manifest file can indicate that the second adaptation set is associated with the first adaptation set.

[0143] A figura 6 é um fluxograma ilustrando um método de enviar dados de mídia de acordo com uma ou mais técnicas da presente revelação. Nesse exemplo, um dispositivo pode determinar se conteúdo de mídia inclui um primeiro período e um segundo período (320). O dispositivo pode determinar se o primeiro período e o segundo período são contínuos (322). O dispositivo pode determinar se dados de mídia de anúncio são disponíveis para inserção (324), por exemplo, entre o primeiro e segundo períodos. O dispositivo pode formar um arquivo de manifesto (326), em que o arquivo de manifesto inclui indicações de se o conteúdo de mídia inclui o primeiro período e o segundo período, se o primeiro período e o segundo período são contínuos, e se os dados de mídia de anúncio são disponíveis para inserção entre os primeiro e segundo períodos.[0143] Fig. 6 is a flowchart illustrating a method of sending media data according to one or more techniques of the present disclosure. In this example, a device can determine whether media content includes a first period and a second period (320). The device can determine whether the first period and the second period are continuous (322). The device can determine if ad media data is available for insertion (324), for example, between the first and second periods. The device may form a manifest file (326), wherein the manifest file includes indications of whether the media content includes the first period and second period, whether the first period and second period are continuous, and whether the data of ad media are available for insertion between the first and second periods.

[0144] A figura 7 é um fluxograma ilustrando um método de exemplo de executar certas técnicas dessa revelação por um servidor de mídia. Esse método de exemplo inclui divisão, por um servidor de mídia, o conteúdo principal de dados de mídia em uma pluralidade de períodos incluindo um primeiro período e um segundo período, em que o primeiro período e o segundo período são temporalmente sequenciais (350). Esse método de exemplo também inclui sinalizar, pelo servidor de mídia, informação indicando que conteúdo de mídia secundário está disponível para inserção entre o primeiro período e o segundo período (352). Esse método de exemplo inclui ainda sinalizar, pelo servidor de mídia, um indicador de tempo para cada da pluralidade de períodos, em que o indicador de tempo define uma ou mais características para cada da pluralidade de períodos (354).[0144] Figure 7 is a flowchart illustrating an example method of performing certain techniques of this disclosure by a media server. This exemplary method includes dividing, by a media server, the main content of media data into a plurality of periods including a first period and a second period, wherein the first period and second period are temporally sequential (350). This example method also includes signaling, by the media server, information indicating that secondary media content is available for insertion between the first period and the second period (352). This exemplary method further includes signaling, by the media server, a time pointer for each of the plurality of periods, wherein the time pointer defines one or more characteristics for each of the plurality of periods (354).

[0145] A figura 8 é um fluxograma ilustrando um método de exemplo de executar certas técnicas dessa revelação por um dispositivo de cliente. Esse método de exemplo inclui determinar que um arquivo de manifesto para conteúdo de mídia indique que o conteúdo de mídia inclui um primeiro período e um segundo período, que o arquivo de manifesto indique que o primeiro e o segundo períodos são contínuos, e que dados de mídia de anúncio são disponíveis para inserção entre os primeiro e segundo períodos (370). Esse método de exemplo também inclui selecionar um primeiro conjunto de adaptação no primeiro período com base pelo menos em parte em características sinalizadas para o primeiro conjunto de adaptação (372). Esse método de exemplo inclui ainda recuperar dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação (374). Finalmente, esse método de exemplo inclui recuperar dados de mídia de um segundo conjunto de adaptação no segundo período que é associado ao primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação (376).[0145] Figure 8 is a flowchart illustrating an example method of performing certain techniques of this disclosure by a client device. This example method includes determining that a manifest file for media content indicates that the media content includes a first period and a second period, that the manifest file indicates that the first and second periods are continuous, and that ad media are available for insertion between the first and second periods (370). This example method also includes selecting a first adaptation set in the first period based at least in part on characteristics flagged for the first adaptation set (372). This example method further includes retrieving media data from the first adaptation set based on the selection of the first adaptation set (374). Finally, this example method includes retrieving media data from a second adaptation set in the second period that is associated with the first adaptation set based on the selection of the first adaptation set (376).

[0146] Deve ser entendido que em alguns exemplos, um dispositivo de cliente pode ser configurado para executar todas ou quaisquer das técnicas do primeiro exemplo, o segundo exemplo, e o terceiro exemplo descritos acima. Por exemplo, redes de distribuição de conteúdo diferentes podem suportar mecanismos diferentes para inserção de anúncio direcionado, e um dispositivo de cliente pode implementar as técnicas de todos ou quaisquer do primeiro exemplo, segundo exemplo e/ou terceiro exemplo. Como outro exemplo, uma rede de distribuição de conteúdo pode suportar todas ou quaisquer das técnicas do primeiro exemplo, segundo exemplo e /ou terceiro exemplo descrito acima. Além disso, as técnicas do primeiro exemplo, segundo exemplo e/ou terceiro exemplo descritos acima podem ser realizadas juntas em qualquer combinação.[0146] It should be understood that in some examples, a client device may be configured to perform all or any of the techniques of the first example, the second example, and the third example described above. For example, different content delivery networks may support different mechanisms for targeted advertisement insertion, and a client device may implement the techniques of all or any of the first example, second example, and/or third example. As another example, a content delivery network may support all or any of the techniques of the first example, second example and/or third example described above. Furthermore, the techniques of the first example, second example and/or third example described above can be performed together in any combination.

[0147] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou quaisquer combinações dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas através como uma ou mais instruções ou código em uma mídia legível em computador e executadas por uma unidade de processamento baseado em hardware. Mídia legível em computador pode incluir mídia de armazenagem legível em computador, que corresponde a uma mídia tangível como mídia de armazenagem de dados, ou mídia de comunicação incluindo qualquer mídia que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desse modo, mídia legível em computador pode corresponder em geral a (1) mídia de armazenagem legível em computador que é não transitória ou (2) uma mídia de comunicação como um sinal ou onda portadora. Mídia de armazenagem de dados pode ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa revelação. Um produto de programa de computador pode incluir uma mídia legível em computador.[0147] In one or more examples, the described functions can be implemented in hardware, software, firmware or any combination thereof. If implemented in software, functions may be stored in or transmitted through as one or more instructions or code on computer-readable media and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to tangible media such as data storage media, or communication media including any media that facilitates the transfer of a computer program from one place to another, for example , according to a communication protocol. Thus, computer-readable media can generally correspond to (1) computer-readable storage media that is non-transient or (2) a communication medium such as a signal or carrier wave. Data storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementing the techniques described in this disclosure. A computer program product may include computer readable media.

[0148] Como exemplo, e não limitação, tal mídia de armazenagem legível em computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outra armazenagem de disco ótica, armazenagem de disco magnético, ou outros dispositivos de armazenagem magnética, memória flash, ou qualquer outra mídia que possa ser usada para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Também, qualquer conexão é adequadamente denominada uma mídia legível em computador. Por exemplo, se instruções são transmitidas a partir de um website, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par torcido, linha de assinante digital (DSL), ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra ótica, par torcido, DSL, ou tecnologias sem fio como infravermelho, rádio e micro-onda são incluídos na definição de mídia. Deve ser entendido, entretanto, que mídia de armazenagem legível em computador e mídia de armazenagem de dados não incluem conexões, ondas portadoras, sinais ou outra mídia transitória, porém são ao invés dirigidas a mídia de armazenagem tangível, não transitória. Disk e disco, como usado aqui, incluem compact disc (CD), disco a laser, disco ótico, digital versatile disc (DVD), disco flexível e disco Blu-ray, onde disks normalmente reproduzem dados magneticamente, enquanto discs reproduzem dados oticamente com lasers. Combinações dos acima devem ser também incluídas no escopo de mídia legível em computador.[0148] By way of example, and not limitation, such computer-readable storage media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other media that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and micro- waves, so coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. It should be understood, however, that computer readable storage media and data storage media do not include connections, carrier waves, signals or other transient media, but are instead intended for tangible, non-transient storage media. Disk and disc, as used here, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically play data magnetically, while discs play data optically with lasers. Combinations of the above shall also be included within the scope of computer readable media.

[0149] Instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), disposições de lógica programável em campo (FPGAs), ou outro conjunto de circuitos de lógica discreta ou integrada equivalente. Por conseguinte, o termo “processador” como usado aqui pode se referir a qualquer uma das estruturas acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Além disso, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida nos módulos de hardware e/ou software dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Também, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos de lógica.[0149] Instructions can be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrangements (FPGAs), or another set of equivalent discrete or integrated logic circuits. Accordingly, the term "processor" as used herein may refer to any of the above frameworks or any other framework suitable for implementing the techniques described herein. Furthermore, in some respects, the functionality described here may be provided in dedicated hardware and/or software modules configured to encode and decode, or incorporated into a combined codec. Also, the techniques can be fully implemented in one or more circuits or logic elements.

[0150] As técnicas dessa revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa revelação para enfatizar aspectos funcionais de dispositivos configurados para executar as técnicas reveladas, porém não exigem necessariamente realização por diferentes unidades de hardware. Ao invés, como descrito acima, várias unidades podem se combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware inter- operativas, incluindo um ou mais processadores como descrito acima, em combinação com software e/ou firmware adequado.[0150] The techniques of this disclosure can be implemented in a wide variety of devices or apparatus, including a cordless telephone handset, an integrated circuit (IC) or a set of ICs (eg, a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require performance by different hardware units. Rather, as described above, multiple units can be combined into a codec hardware unit or provided by a collection of interoperable hardware units, including one or more processors as described above, in combination with suitable software and/or firmware. .

[0151] Vários exemplos foram descritos. Esses e outros exemplos estão compreendidos no escopo das reivindicações a seguir.[0151] Several examples have been described. These and other examples are within the scope of the following claims.

Claims (10)

1. Método de recuperar dados de mídia, sendo o método caracterizado pelo fato de que compreende: determinar (370) a partir de um arquivo de manifesto para conteúdo de mídia que o conteúdo de mídia inclui um primeiro período e um segundo período, que o primeiro e o segundo períodos são contínuos, e que dados de mídia de anúncio estão disponíveis para inserção entre o primeiro e o segundo períodos; selecionar (372) um primeiro conjunto de adaptação no primeiro período dentre uma pluralidade de conjuntos de adaptação no primeiro período com base, pelo menos em parte, em características de fornecimento sinalizadas no arquivo de manifesto para o primeiro conjunto de adaptação, cada conjunto de adaptação compreendendo uma respectiva pluralidade de representações do primeiro período de conteúdo de mídia, cada uma da pluralidade de representações compartilhando as mesmas características de fornecimento mas tendo um taxa de bits diferente; recuperar (374) dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação; com base na determinação que dados de mídia de anúncio estão disponíveis para inserção entre o primeiro e o segundo períodos e na seleção do primeiro conjunto de adaptação, determinar que um segundo conjunto de adaptação no segundo período está associado ao primeiro conjunto de adaptação, em que cada segundo conjunto de adaptação é um de uma pluralidade de conjuntos de adaptação no segundo período, cada conjunto de adaptação compreendendo uma respectiva pluralidade de representações do segundo período de conteúdo de mídia, cada uma da pluralidade respectiva de representações compartilhando as mesmas características de fornecimento mas tendo um taxa de bits diferente, em que determinar que o segundo conjunto de adaptação está associado ao primeiro conjunto de adaptação compreende determinar que o arquivo de manifesto sinaliza o mesmo valor para identificadores de ativo do primeiro conjunto de adaptação e do segundo conjunto de adaptação e o arquivo de manifesto indica que o primeiro conjunto de adaptação e o segundo conjunto de adaptação têm o mesmo valor para respectivos atributos de “@id”; e recuperar (376) dados de mídia do segundo conjunto de adaptação; e com base no atributo de “@id” de representações no primeiro conjunto de adaptação sendo o mesmo de “@id” de representações em um segundo conjunto de adaptação, usando um segmento de inicialização de uma representação do primeiro conjunto de adaptação como um segmento de inicialização de uma representação correspondente no segundo conjunto de adaptação.1. Method of retrieving media data, the method being characterized in that it comprises: determining (370) from a manifest file for media content that the media content includes a first sentence and a second sentence, that the first and second periods are continuous, and what ad media data is available for insertion between the first and second periods; selecting (372) a first period fitting set from a plurality of first period fitting sets based, at least in part, on flagged supply characteristics in the manifest file for the first fitting set, each fitting set comprising a respective plurality of representations of the first period of media content, each of the plurality of representations sharing the same delivery characteristics but having a different bit rate; retrieving (374) media data from the first adaptation set based on the selection of the first adaptation set; based on determining that ad media data is available for insertion between the first and second periods and selecting the first adaptation set, determining that a second adaptation set in the second period is associated with the first adaptation set, where each second adaptation set is one of a plurality of adaptation sets in the second period, each adaptation set comprising a respective plurality of representations of the second period of media content, each of the respective plurality of representations sharing the same delivery characteristics but having a different bitrate, wherein determining that the second adaptation set is associated with the first adaptation set comprises determining that the manifest file flags the same value for asset identifiers of the first adaptation set and the second adaptation set, and the manifest file indicates that the first adaptation set and the second adaptation set have the same value for the respective “@id” attributes; and retrieving (376) media data from the second adaptation set; and based on the attribute of "@id" of representations in the first adaptation set being the same as "@id" of representations in a second adaptation set, using an initialization segment of a representation of the first adaptation set as a segment initialization of a corresponding representation in the second adaptation set. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de em que o arquivo de manifesto compreende uma descrição de apresentação de mídia (MPD).2. Method according to claim 1, characterized in that the manifest file comprises a media presentation description (MPD). 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente determinar, a partir do arquivo de manifesto, uma duração de representação para uma representação do primeiro conjunto de adaptação com o uso de pelo menos um dentre dados que sinalizam um valor para um elemento de sintaxe @presentationTimeDuration que especifica a duração de apresentação ou dados que sinalizam um descritor complementar com um elemento @scheme_id_URI definido para “urn:mpeg:dash:period_continuity:2014” para o primeiro conjunto de adaptação.3. Method, according to claim 1, characterized in that it further comprises determining, from the manifest file, a representation duration for a representation of the first adaptation set using at least one of the data that signal a value for a @presentationTimeDuration syntax element that specifies the presentation duration, or data signaling a complementary descriptor with a @scheme_id_URI element set to “urn:mpeg:dash:period_continuity:2014” for the first adaptation set. 4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o primeiro conjunto de adaptação inclui adicionalmente um elemento “@value” de um identificador de pacote (PID) que corresponde a um valor de um elemento “@id” de um período que é descrito no arquivo de manifesto, um valor para um elemento de “AdaptationSet@id” que representa um identificador de conjunto de adaptação, e um valor de um “@presentationTimeOffset” para o primeiro conjunto de adaptação.4. Method, according to claim 3, characterized in that the first adaptation set additionally includes an element "@value" of a packet identifier (PID) that corresponds to a value of an element "@id" of a period that is described in the manifest file, a value for an “AdaptationSet@id” element that represents an adaptation set identifier, and a value of an “@presentationTimeOffset” for the first adaptation set. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente determinar que o segundo conjunto de adaptação tem uma ou mais características em comum com o primeiro conjunto de adaptação, em que as características em comum incluem uma ou mais dentre uma linguagem, um tipo de componente de mídia, uma razão de aspecto de figuração, uma propriedade de papel, uma propriedade de acessibilidade, ou uma propriedade de ponto de vista.5. Method according to claim 1, characterized in that it further comprises determining that the second adaptation set has one or more characteristics in common with the first adaptation set, where the characteristics in common include one or more of a language, a media component type, a figuration aspect ratio, a role property, an accessibility property, or a point of view property. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente determinar que o segundo conjunto de adaptação é de período contínuo com o primeiro conjunto de adaptação quando: o primeiro e o segundo conjuntos de adaptação estão associados; um “@presentationTimeOffset” está presente no arquivo de manifesto ou pode ser inferido como 0 para todas as representações em ambos os conjuntos de adaptação; o arquivo de manifesto indica, para pelo menos um dentre o primeiro conjunto de adaptação e o segundo conjunto de adaptação, que o valor de “@presentationTimeOffset” é idêntico para todas as representações; e uma soma do valor do “@presentationTimeOffset” e uma duração de apresentação de todas as representações no primeiro conjunto de adaptação é idêntica ao valor do “@presentationTimeOffset” do segundo conjunto de adaptação.6. Method according to claim 1, characterized in that it further comprises determining that the second adaptation set is continuous with the first adaptation set when: the first and second adaptation sets are associated; an “@presentationTimeOffset” is present in the manifest file or can be inferred as 0 for all representations in both adaptation sets; the manifest file indicates, for at least one of the first adaptation set and the second adaptation set, that the value of “@presentationTimeOffset” is identical for all representations; and a sum of the “@presentationTimeOffset” value and a presentation duration of all representations in the first adaptation set is identical to the “@presentationTimeOffset” value of the second adaptation set. 7. Dispositivo para recuperar dados de mídia, sendo o dispositivo caracterizado pelo fato de que compreende: uma memória configurada para armazenar dados de mídia; e um ou mais processadores baseados em hardware configurados para: determinar (370) a partir de um arquivo de manifesto para conteúdo de mídia que o conteúdo de mídia inclui um primeiro período e um segundo período, que o primeiro e o segundo períodos são contínuos, e que dados de mídia de anúncio estão disponíveis para inserção entre o primeiro e o segundo períodos; selecionar (372) um primeiro conjunto de adaptação no primeiro período, dentre uma pluralidade de conjuntos de adaptação no primeiro período, com base, pelo menos em parte, em características de fornecimento sinalizadas no arquivo de manifesto para o primeiro conjunto de adaptação, cada conjunto de adaptação compreendendo uma respectiva pluralidade de representações do primeiro período de conteúdo de mídia, cada de uma pluralidade de representações compartilhando as mesmas características de fornecimento mas tendo um taxa de bits diferente; recuperar (374) dados de mídia do primeiro conjunto de adaptação com base na seleção do primeiro conjunto de adaptação; com base na determinação que dados de mídia de anúncio estão disponíveis para inserção entre o primeiro e o segundo períodos e na seleção do primeiro conjunto de adaptação, determinar que um segundo conjunto de adaptação no segundo período está associado ao primeiro conjunto de adaptação, em que cada segundo conjunto de adaptação é um de uma pluralidade de conjuntos de adaptação no segundo período, cada conjunto de adaptação compreendendo uma respectiva pluralidade de representações do segundo período de conteúdo de mídia, cada uma da pluralidade respectiva de representações compartilhando as mesmas características de fornecimento mas tendo um taxa de bits diferente, em que determinar que o segundo conjunto de adaptação está associado ao primeiro conjunto de adaptação compreende determinar que o arquivo de manifesto sinaliza o mesmo valor para identificadores de ativo do primeiro conjunto de adaptação e do segundo conjunto de adaptação e o arquivo de manifesto indica que o primeiro conjunto de adaptação e o segundo conjunto de adaptação têm o mesmo valor para respectivos atributos de “@id”; recuperar (376) dados de mídia do segundo conjunto de adaptação e armazenar os dados de mídia recuperados para a memória; e com base no atributo de “@id” de representações no primeiro conjunto de adaptação sendo o mesmo de “@id” de representações em um segundo conjunto de adaptação, usando um segmento de inicialização de uma representação do primeiro conjunto de adaptação como um segmento de inicialização de uma representação correspondente no segundo conjunto de adaptação.7. Device for retrieving media data, the device being characterized in that it comprises: a memory configured to store media data; and one or more hardware-based processors configured to: determine (370) from a manifest file for media content that the media content includes a first period and a second period, that the first period and second period are continuous, and what ad media data is available for insertion between the first and second periods; select (372) a first period adaptation set, from a plurality of first period adaptation sets, based, at least in part, on flagged supply characteristics in the manifest file for the first period adaptation, each set adaptation comprising a respective plurality of representations of the first period of media content, each of a plurality of representations sharing the same delivery characteristics but having a different bitrate; retrieving (374) media data from the first adaptation set based on the selection of the first adaptation set; based on determining that ad media data is available for insertion between the first and second periods and selecting the first adaptation set, determining that a second adaptation set in the second period is associated with the first adaptation set, where each second adaptation set is one of a plurality of adaptation sets in the second period, each adaptation set comprising a respective plurality of representations of the second period of media content, each of the respective plurality of representations sharing the same delivery characteristics but having a different bitrate, wherein determining that the second adaptation set is associated with the first adaptation set comprises determining that the manifest file flags the same value for asset identifiers of the first adaptation set and the second adaptation set, and the manifest file indicates that the first adaptation set and the second adaptation set have the same value for the respective “@id” attributes; retrieving (376) media data from the second adaptation set and storing the retrieved media data into memory; and based on the attribute of "@id" of representations in the first adaptation set being the same as "@id" of representations in a second adaptation set, using an initialization segment of a representation of the first adaptation set as a segment initialization of a corresponding representation in the second adaptation set. 8. Dispositivo, de acordo com a reivindicação 7, caracterizado pelo fato de que o arquivo de manifesto compreende uma descrição de apresentação de mídia (MPD).8. Device according to claim 7, characterized in that the manifest file comprises a media presentation description (MPD). 9. Dispositivo, de acordo com a reivindicação 7, caracterizado pelo fato de que o um ou mais processadores baseados em hardware são configurados para determinar, a partir do arquivo de manifesto, que o segundo conjunto de adaptação tem uma ou mais características em comum com o primeiro conjunto de adaptação, em que as características em comum incluem uma ou mais dentre uma linguagem, um tipo de componente de mídia, uma razão de aspecto de figuração, uma propriedade de papel, uma propriedade de acessibilidade, ou uma propriedade de ponto de vista.9. Device according to claim 7, characterized in that the one or more hardware-based processors are configured to determine, from the manifest file, that the second adaptation set has one or more characteristics in common with the first adaptation set, where the common features include one or more of a language, a type of media component, a figuration aspect ratio, a role property, an accessibility property, or a point of view property View. 10. Dispositivo, de acordo com a reivindicação 7, caracterizado pelo fato de que o um ou mais processadores baseados em hardware são configurados para determinar que o segundo conjunto de adaptação é de período contínuo com o primeiro conjunto de adaptação quando: o primeiro e o segundo conjuntos de adaptação estão associados; um “@presentationTimeOffset” está presente no arquivo de manifesto ou pode ser inferido como 0 para todas as representações e ambos os conjuntos de adaptação; o arquivo de manifesto indica, para pelo menos um dentre o primeiro conjunto de adaptação e o segundo conjunto de adaptação, que o valor de “@presentationTimeOffset” é idêntico para todas as representações; e uma soma do valor do “@presentationTimeOffset” e uma duração de apresentação de todas as representações no primeiro conjunto de adaptação é idêntica ao valor do “@presentationTimeOffset” do segundo conjunto de adaptação.10. Device according to claim 7, characterized in that the one or more hardware-based processors are configured to determine that the second adaptation set is continuous period with the first adaptation set when: the first and the second adaptation sets are associated; an “@presentationTimeOffset” is present in the manifest file or can be inferred as 0 for all representations and both adaptation sets; the manifest file indicates, for at least one of the first adaptation set and the second adaptation set, that the value of “@presentationTimeOffset” is identical for all representations; and a sum of the “@presentationTimeOffset” value and a presentation duration of all representations in the first adaptation set is identical to the “@presentationTimeOffset” value of the second adaptation set.
BR112016022245-8A 2014-03-24 2015-03-24 METHOD AND DEVICE TO RECOVER MEDIA DATA BR112016022245B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461969777P 2014-03-24 2014-03-24
US61/969,777 2014-03-24
US14/665,252 2015-03-23
US14/665,252 US9866608B2 (en) 2014-03-24 2015-03-23 Processing continuous multi-period content
PCT/US2015/022264 WO2015148519A1 (en) 2014-03-24 2015-03-24 Processing continuous multi-period content

Publications (3)

Publication Number Publication Date
BR112016022245A2 BR112016022245A2 (en) 2017-08-15
BR112016022245A8 BR112016022245A8 (en) 2021-07-13
BR112016022245B1 true BR112016022245B1 (en) 2023-06-06

Family

ID=

Similar Documents

Publication Publication Date Title
US10397295B2 (en) Processing continuous multi-period content
AU2016226206B2 (en) File format based streaming with dash formats based on LCT
AU2016219369B2 (en) Low latency video streaming
CA2807157C (en) Manifest file updates for network streaming of coded video data
BR112020015214A2 (en) dynamic conditional ad insertion
CA2933203C (en) Robust live operation of dash
CA3029026A1 (en) Retrieving and accessing segment chunks for media streaming
BR112020022899A2 (en) flag, in a manifest file, missing sections of media data for streaming network
BR112016022245B1 (en) METHOD AND DEVICE TO RECOVER MEDIA DATA
BR112016016434B1 (en) DYNAMIC ADAPTIVE TRANSMISSION METHOD OVER HTTP, DEVICE FOR RECEIVING, FROM A SERVER DEVICE, DATA RELATED TO DASH STREAMING MEDIA DATA, SIGNALING METHOD AND DEVICE