A Media Presentation Description (MPD) é o manifesto XML que torna o Dynamic Adaptive Streaming over HTTP (DASH) possível. Pense nela como um sumário legível por máquina com lógica de troca.
Seções Principais
- Period – janela de tempo (ex.: conteúdo principal, intervalo de anúncio).
- AdaptationSet – grupo de representações intercambiáveis (vídeo, áudio, legendas).
- Representation – encode único: codec, bitrate, resolução, frame rate, DRM.
- SegmentTemplate / SegmentList / SegmentBase – templates de URL ou listas explícitas para chunks de mídia (init + segmentos de mídia).
- UTCTiming / AvailabilityTimeOffset – sincronização de borda ao vivo.
Fluxo de Decisão do Cliente
- Busque MPD (HTTP GET).
- Parse Representations → filtre por caps do dispositivo (codec, max res, suporte DRM).
- Estimativa de largura de banda (via tempos de download de segmentos anteriores).
- Selecione Representação de maior qualidade dentro do buffer de banda.
- Solicite segmentos via substituição $Number$ ou $Time$ do SegmentTemplate.
- Troque suavemente nos limites de segmento (alinhados a keyframe).
Recursos Principais Habilitados
- ABR – qualidade adapta à rede em tempo real.
- Multi-CDN – lista BaseURL com prioridade.
- Modos Trick – avanço/rebobinação rápido via
@framesPerSecond na Representation.
- Acessibilidade – múltiplos idiomas de áudio, faixas de legenda em AdaptationSets separados.
- Proteção de Conteúdo – elemento
ContentProtection sinaliza caixas PSSH Widevine/PlayReady/FairPlay.
MPD vs Playlist Mestre HLS
| Recurso | MPD (DASH) | HLS Master |
| Formato | XML | M3U8 (texto) |
| Endereçamento de segmento | Template + $Number$/$Time$ | Lista explícita |
| Latência ao vivo | Baixa (chunks CMAF) | Maior (duração do segmento) |
| Sinalização DRM | ContentProtection padronizado | EXT-X-KEY / EXT-X-SESSION-KEY |
Se você constrói um packager ou player DASH, o schema MPD (ISO/IEC 23009-1) é sua bíblia. Valide com ferramentas de conformidade DASH-IF.