O que é um arquivo MPD?

Um arquivo MPD é um manifesto XML Media Presentation Description usado pelo MPEG-DASH. Ele descreve as representações disponíveis, a localização dos segmentos, a temporização e as informações necessárias para a reprodução adaptativa.

Como os arquivos MPD funcionam

Um MPD é o documento de controle de uma apresentação DASH. Ele não contém mídia: é um XML que faz referência a segmentos de inicialização e de mídia armazenados em outro local e é servido com o tipo de mídia application/dash+xml. Seus elementos organizam a apresentação em períodos consecutivos, conjuntos de adaptação e representações individuais, além de expressar a temporização, o endereçamento dos segmentos e os metadados de seleção. Um cliente combina essa descrição com medições de rede e restrições de reprodução para escolher uma representação e solicitar seus segmentos. Para conteúdo sob demanda, o documento é gravado uma vez; para um serviço ao vivo, o empacotador pode republicá-lo à medida que novos segmentos aparecem, e o próprio documento informa aos clientes se e quando devem buscá-lo novamente.

Informações essenciais

  1. Um MPD organiza Period, AdaptationSet e Representation em uma hierarquia aninhada. Um período é um intervalo da linha do tempo da apresentação, e as representações dentro de um conjunto de adaptação são codificações diferentes do mesmo conteúdo entre as quais um cliente pode alternar. Cada Representation precisa declarar um bandwidth, que é o valor que os clientes comparam com a vazão medida.
  2. Os segmentos são endereçados por meio de SegmentBase, SegmentList ou SegmentTemplate. Um SegmentTemplate com um SegmentTimeline define o início e a duração exatos de cada segmento, expressos de forma compacta como entradas S com uma duração, um tempo de início opcional e uma contagem de repetições, enquanto um modelo apenas com duration informa uma média, de modo que a temporização real dos segmentos pode se desviar das posições calculadas. As diretrizes de interoperabilidade do DASH-IF definem modos de endereçamento apenas com SegmentBase e SegmentTemplate e proíbem os demais, excluindo, portanto, SegmentList. Elas recomendam essa forma de linha do tempo para conteúdo gerado em tempo real e, para conteúdo preparado com antecedência, essa mesma forma ou SegmentBase com um segmento de índice. Também exigem um modo de endereçamento por conjunto de adaptação e referências de segmentos sem lacunas nem sobreposições.
  3. O atributo type tem static como valor padrão. Em um MPD dynamic, a linha do tempo é ancorada no horário do relógio por availabilityStartTime, de modo que os segmentos se tornam disponíveis com a passagem do tempo; se timeShiftBufferDepth estiver definido, os segmentos mais antigos também saem de uma janela móvel de disponibilidade. Os relógios do cliente e do serviço precisam estar sincronizados: as diretrizes do DASH-IF exigem que um MPD dinâmico contenha pelo menos um elemento UTCTiming, pois um cliente com o relógio defasado solicita segmentos que ainda não estão disponíveis ou que já deixaram de estar.
  4. minimumUpdatePeriod informa aos clientes sobre a atualização: se estiver ausente, o MPD nunca mudará; um valor diferente de zero indica por quanto tempo um instantâneo baixado permanece válido, e zero significa que um cliente precisa buscar um novo MPD sempre que quiser segmentos mais recentes. Os clientes que processam eventos opcionais de validade do MPD em banda usam esses eventos para determinar a validade do instantâneo, em vez de um valor zero ou diferente de zero. A validade é contada a partir do momento em que o cliente começa o download, não da publicação, portanto uma cópia que ficou esperando no cache de uma CDN ainda é válida pelo período completo após ser buscada. Assim, o cache prolonga o tempo de uso dos instantâneos antigos: ao determinar quais segmentos um serviço ao vivo pode remover, o DASH-IF acrescenta o atraso até que um novo MPD chegue aos clientes na borda da CDN.

Quando os arquivos MPD são importantes

Todo pacote MPEG-DASH exige um MPD, mesmo quando oferece uma única representação; o DASH em si costuma ser escolhido quando os clientes precisam selecionar entre variantes de taxa de bits, resolução, idioma ou acessibilidade. Linhas do tempo ou referências de segmentos incorretas podem causar interrupções na reprodução, ausência de faixas ou falhas nas trocas de qualidade.

Como a Transloadit ajuda com arquivos MPD

O Robot /video/adaptive da Transloadit codifica vídeo em formatos de streaming adaptativo e gera o manifesto. Seu parâmetro technique tem dash como valor padrão; nesse caso, o manifesto é gravado como playlist.mpd, a menos que playlist_name indique o contrário; com cmaf, ele produz um manifesto MPEG-DASH e uma playlist HLS que fazem referência aos mesmos segmentos fMP4.

Explore os formatos de arquivo e os recursos de compressão da Transloadit

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente