Exemplos de DASH MPD - AWS Elemental MediaTailor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de DASH MPD

As seções a seguir fornecem exemplos de origem MPDs e personalização MPDs do DASH. Compreender esses exemplos pode ajudá-lo a configurar e solucionar problemas em seus MediaTailor fluxos de trabalho.

Entendendo a estrutura do DASH MPD

O Dynamic Adaptive Streaming over HTTP (DASH) usa um manifesto Media Presentation Description (MPD) para fornecer conteúdo de streaming. O MPD é um documento XML que descreve a estrutura e a disponibilidade do conteúdo de mídia.

MPD (Descrição da apresentação de mídia)

O MPD é o arquivo de manifesto principal no streaming do DASH que descreve a estrutura e a disponibilidade do conteúdo de mídia. Ele contém informações sobre períodos, conjuntos de adaptação, representações e segmentos que compõem o conteúdo de streaming.

Esse tipo de manifesto também é conhecido por vários outros nomes em vários contextos, incluindo manifesto DASH, DASH MPD, manifesto mestre (quando comparado ao HLS) ou manifesto de apresentação.

Em MediaTailor fluxos de trabalho, o MPD é o ponto de entrada para solicitações de reprodução e é onde a personalização de anúncios começa.

Período

Um período é uma seção temporal de uma apresentação do DASH. Cada período contém um ou mais conjuntos de adaptação e representa um período de tempo de mídia. Em fluxos de trabalho de inserção de anúncios, períodos separados são normalmente usados para delimitar entre conteúdo e anúncios.

Nos MediaTailor fluxos de trabalho, os períodos são usados para separar o conteúdo principal do conteúdo do anúncio, com cada anúncio normalmente representado por seu próprio período.

AdaptationSet

E AdaptationSet agrupa um conjunto de versões codificadas intercambiáveis de um ou vários componentes de conteúdo de mídia. Por exemplo, um AdaptationSet pode conter vários níveis de qualidade de vídeo, enquanto outro pode conter várias opções de idioma de áudio.

Nos MediaTailor fluxos de trabalho, AdaptationSets são preservados durante a inserção do anúncio para manter os tipos de mídia consistentes entre o conteúdo e os anúncios.

Representação

Uma representação é uma versão codificada específica do conteúdo de mídia em um AdaptationSet. Cada representação normalmente difere em taxa de bits, resolução ou outros parâmetros de codificação, permitindo que os clientes selecionem a versão mais apropriada com base nas condições da rede e nos recursos do dispositivo.

Em MediaTailor fluxos de trabalho, as Representações em Períodos de Anúncios são combinadas da forma mais próxima possível com as Representações em Períodos de conteúdo para garantir uma experiência de visualização tranquila.

Para obter informações mais detalhadas sobre os tipos de manifesto DASH, consulteTipos de manifesto DASH.

Exemplos de DASH MPD ao vivo

Esta seção fornece exemplos de DASH MPDs ao vivo. Cada exemplo lista um MPD como recebido do servidor de origem e depois MediaTailor personalizou o MPD com anúncios.

Exemplo de inserção de emenda DASH MPD

Exemplo de MPD de origem DASH para inserção de emenda

O exemplo a seguir de um MPD mostra um anúncio disponível em um manifesto recebido pelo DASH da origem do conteúdo. Este exemplo usa o SpliceInsert marcador para indicar a disponibilidade de um anúncio.

<Period start="PT173402.036S" id="46041"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="9450000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095"> <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1"> <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program> <scte35:BreakDuration autoReturn="true" duration="9450000"/> </scte35:SpliceInsert> <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/> <scte35:SegmentationTypeID segmentationType="52"/> <scte35:SegmentNum segmentNum="1"/> <scte35:SegmentsExpected segmentsExpected="1"/> </scte35:SegmentationDescriptor> </scte35:SpliceInfoSection> </Event> </EventStream> <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501"> <SegmentTimeline> <S t="10395907501" d="60060" r="29"/> <S t="10397709301" d="45045"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng"> <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2"> <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001"> <SegmentTimeline> <S t="16633452289" d="96256" r="3"/> <S t="16633837313" d="95232"/> <S t="16633932545" d="96256" r="4"/> <S t="16634413825" d="95232"/> <S t="16634509057" d="96256" r="5"/> <S t="16635086593" d="95232"/> <S t="16635181825" d="96256" r="4"/> <S t="16635663105" d="95232"/> <S t="16635758337" d="96256" r="5"/> <S t="16636335873" d="71680"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>

Neste exemplo de origem do MPD:

  • O <EventStream> elemento contém marcadores SCTE-35 que indicam anúncios

  • O <scte35:SpliceInsert> elemento fornece detalhes sobre a disponibilidade do anúncio

  • O <scte35:BreakDuration> elemento especifica a duração do intervalo publicitário

  • Os <AdaptationSet> elementos definem os fluxos de vídeo e áudio disponíveis

Exemplo de MPD personalizado do DASH para inserção de emenda

AWS Elemental MediaTailor personaliza o anúncio com as especificações de publicidade. As personalizações refletem os dados do espectador recebidos do player e as campanhas publicitárias atualmente em andamento.

O exemplo a seguir mostra a disponibilidade de um anúncio depois de AWS Elemental MediaTailor personalizá-lo.

<Period id="178443_1" start="PT96H15M30.25S"> <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL> <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> <SegmentTemplate startNumber="1" timescale="90000"/> <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920"> <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280"> <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng"> <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2"> <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>

Neste exemplo personalizado de MPD:

  • MediaTailor criou um novo período para o conteúdo do anúncio

  • O <BaseURL> elemento aponta para o local do conteúdo do anúncio

  • Os <AdaptationSet> elementos mantêm uma estrutura semelhante ao conteúdo

  • Os <Representation> elementos fornecem diferentes níveis de qualidade para o conteúdo do anúncio

Exemplo de sinal de horário DASH MPD

Exemplo de MPD de origem DASH para sinal de tempo

O exemplo a seguir de um MPD mostra um anúncio disponível em um manifesto recebido pelo DASH da origem do conteúdo. Este exemplo usa o TimeSignal marcador para indicar a disponibilidade de um anúncio.

<Period start="PT173402.036S" id="46041"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="9450000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095"> <scte35:TimeSignal> <scte35:SpliceTime ptsTime="7835775000"/> </scte35:TimeSignal> <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/> <scte35:SegmentationTypeID segmentationType="52"/> <scte35:SegmentNum segmentNum="1"/> <scte35:SegmentsExpected segmentsExpected="1"/> </scte35:SegmentationDescriptor> </scte35:SpliceInfoSection> </Event> </EventStream> <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501"> <SegmentTimeline> <S t="10395907501" d="60060" r="29"/> <S t="10397709301" d="45045"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>

Neste exemplo de origem do MPD:

  • O <scte35:TimeSignal> elemento é usado em vez de <scte35:SpliceInsert>

  • <scte35:SegmentationDescriptor>Fornece informações adicionais sobre a disponibilidade do anúncio

Exemplo de MPD personalizado do DASH para sinal de tempo

AWS Elemental MediaTailor personaliza o anúncio com as especificações de publicidade. As personalizações refletem os dados do espectador recebidos do player e as campanhas publicitárias atualmente em andamento.

O exemplo a seguir mostra a disponibilidade de um anúncio depois de AWS Elemental MediaTailor personalizá-lo.

<Period id="178443_1" start="PT96H15M30.25S"> <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL> <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> <SegmentTemplate startNumber="1" timescale="90000"/> <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920"> <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>

O MPD personalizado para sinal de tempo é semelhante ao da inserção de emenda, com a MediaTailor criação de um novo período para o conteúdo do anúncio.

Exemplos de VOD DASH MPD

Esta seção fornece exemplos de vídeo sob demanda (VOD) MPDs DASH. Cada exemplo lista um MPD como recebido do servidor de origem e depois MediaTailor personalizou o MPD com anúncios.

O VOD DASH MPDs segue a mesma estrutura do live MPDs, mas normalmente tem um type="static" atributo no elemento MPD e pode conter vários períodos para diferentes segmentos de conteúdo.

Para exemplos de VOD DASH MPDs, consulte a MediaTailor documentação em. Marcadores de anúncios DASH

Principais diferenças na personalização MPDs

Quando MediaTailor personaliza o DASH MPDs, ele faz várias mudanças importantes:

Tratamento do período
  • Novos períodos são criados para o conteúdo do anúncio

  • Os horários de início do período são ajustados para manter a continuidade do cronograma

  • EventStream elementos com marcadores SCTE-35 são processados e removidos

AdaptationSet e tratamento de representações
  • AdaptationSets no anúncio Os períodos são criados para corresponder ao conteúdo AdaptationSets

  • As representações são criadas para diferentes níveis de qualidade do conteúdo do anúncio

  • SegmentTemplate os elementos são atualizados para apontar para o conteúdo do anúncio

Compreender essas mudanças pode ajudá-lo a solucionar problemas em seus MediaTailor fluxos de trabalho e garantir a configuração adequada do CDN e do player.

Para obter mais informações sobre o DASH MPDs e MediaTailor, consulte os seguintes tópicos: