Filtrar seus manifestos usando o Dynamic Packager

Logotipo dos Serviços de Mídia v3


Aviso

Os Serviços de Mídia do Azure serão desativados em 30 de junho de 2024. Para obter mais informações, consulte o Guia de Desativação do AMS.

Quando você estiver distribuindo conteúdo de streaming de taxa de bits adaptável para dispositivos, às vezes precisará publicar várias versões de um manifesto para direcionar recursos de dispositivo específicos ou largura de banda de rede disponível. O Dynamic Packager permite que você especifique filtros que podem filtrar codecs específicos, resoluções, taxas de bits e combinações de faixas de áudio rapidamente. A filtragem remove a necessidade de criar várias cópias. Você só precisa publicar uma nova URL com um conjunto específico de filtros configurados para seus dispositivos de destino (iOS, Android, SmartTV ou navegadores) e os recursos de rede (cenários de alta largura de banda, móvel ou baixa largura de banda). Nesse caso, os clientes podem manipular o streaming do seu conteúdo por meio da cadeia de caracteres de consulta (especificando filtros de ativo disponíveis ou filtros de conta) e usar filtros para transmitir seções específicas de um fluxo.

Alguns cenários de entrega exigem que você verifique se um cliente não pode acessar faixas específicas. Por exemplo, talvez você não queira publicar um manifesto que contenha faixas de HD em uma camada de assinante específica. Ou talvez você queira remover faixas de ABR (taxa de bits adaptável) específicas para reduzir o custo de entrega para um dispositivo específico que não se beneficiaria das faixas adicionais. Nesse caso, você pode associar uma lista de filtros criados previamente com o localizador de streaming na criação. Os clientes não podem manipular como o conteúdo é transmitido porque ele é definido pelo Localizador de Streaming.

Você pode combinar a filtragem por meio da especificação de filtros no Localizador de streaming + filtros específicos de dispositivos adicionais que o cliente especifica na URL. Essa combinação é útil para restringir faixas adicionais, como metadados ou fluxos de eventos, idiomas de áudio ou faixas de áudio descritivas.

Essa capacidade de especificar filtros diferentes em seu fluxo fornece uma solução de manipulação de Manifesto Dinâmico poderosa para direcionar vários cenários de casos de uso para seus dispositivos de destino. Este tópico explica os conceitos relacionados aos Manifestos Dinâmicos e fornece exemplos de cenários nos quais você pode usar esse recurso.

Observação

Manifestos Dinâmicos não alteram o ativo e o manifesto padrão para esse ativo.

Visão geral dos manifestos

Os serviços de mídia do Azure dão suporte aos protocolos HLS, MPEG DASH e Smooth Streaming. Como parte do Empacotamento Dinâmico, os manifestos de cliente de streaming (lista de reprodução mestre HLS, descrição de apresentação de mídia Dash [MPD] e Smooth streaming) são gerados dinamicamente com base no seletor de formato na URL. Para obter mais informações, consulte os protocolos de entrega em Fluxo de trabalho comum sob demanda.

Obter e examinar arquivos de manifesto

Você especifica uma lista de condições da propriedade da trilha de filtro com base na qual as faixas de seu fluxo (live ou vídeo por demanda [VOD]) devem ser incluídas em um manifesto criado dinamicamente. Para obter e examinar as propriedades das faixas, você precisa carregar o manifesto Smooth Streaming primeiro.

Monitorar a taxa de bits de um fluxo de vídeo

Você pode usar a página de demonstração do Player de Mídia do Azure para monitorar a taxa de bits de um fluxo de vídeo. A página de demonstração exibe informações de diagnóstico na guia Diagnóstico:

diagnóstico do player de mídia do azure

Exemplos: URLs com filtros na cadeia de caracteres de consulta

Você pode aplicar filtros a protocolos de streaming do ABR: HLS, MPEG-DASH e Smooth Streaming. A tabela a seguir mostra alguns exemplos de URLs com filtros:

Protocolo Exemplo
HLS https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=m3u8-aapl,filter=myAccountFilter)
MPEG DASH https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=mpd-time-csf,filter=myAssetFilter)
Smooth Streaming https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(filter=myAssetFilter)

Filtragem de representação

Você pode optar por codificar seu ativo para vários perfis de codificação (H.264 Baseline, H.264 High, AACL, AACH, Dolby Digital Plus) e várias taxas de bits de qualidade. No entanto, nem todos os dispositivos de cliente oferecerão suporte a todos os seus perfis e taxas de bits de todos os seus ativos. Por exemplo, os dispositivos Android mais antigos oferecem suporte apenas para H.264 Baseline+AACL. O envio de taxas de bits mais altas para um dispositivo que não pode obter os benefícios desperdiça a largura de banda e a computação do dispositivo. Esse dispositivo deve decodificar todas as informações determinadas, apenas para que seja subdimensionado para exibição.

Com o Dynamic Manifest, você pode criar perfis de dispositivos (como celular, console, HD/SD) e incluir as faixas e qualidades que você quer que façam parte de cada perfil. Isso é chamado de filtragem de representação. O diagrama a seguir mostra um exemplo.

diagrama de filtro de representação 2

A parte superior do diagrama a seguir mostra o manifesto HLS para o ativo sem filtros. (Ele contém todas as sete representações). No canto inferior esquerdo, o diagrama mostra um manifesto HLS ao qual um filtro chamado "ott" foi aplicado. O filtro "ott" especifica a remoção de todas as taxas de bits abaixo de 1 Mbps, o que resultou na remoção dos dois níveis de qualidade inferiores na resposta. Na parte inferior direita, é mostrado o manifesto HLS, ao qual foi aplicado um filtro chamado "mobile". O filtro "mobile" especifica a remoção de representações em que a resolução é maior do que 720p, resultando na remoção de duas representações de 1080p.

diagrama de filtro de representação

Remover faixas de idiomas

Os ativos podem incluir vários idiomas de áudio, como inglês, espanhol, francês etc. Normalmente, o SDK do Player gerencia a seleção da faixa de áudio padrão e as faixas de áudio disponíveis por seleção do usuário.

O desenvolvimento desses SDKs do Player é um desafio porque requer diferentes implementações em estruturas de player específicas do dispositivo. Além disso, em algumas plataformas, as APIs do Player são limitadas e não incluem o recurso de seleção de áudio, em que os usuários não podem selecionar ou alterar a faixa de áudio padrão. Com os filtros de ativos, você pode controlar o comportamento criando filtros que incluem apenas os idiomas de áudio desejados.

diagrama de filtro de linguagem

Corte do início de um ativo

Na maioria dos eventos de transmissão ao vivo, os operadores executam alguns testes antes do evento real. Por exemplo, eles podem incluir uma imagem fixa antes do início do evento: "O programa será iniciado em instantes".

Se o programa estiver sendo arquivado, o teste e os dados da imagem fixa também são arquivados e incluídos na apresentação. No entanto, essas informações não devem ser exibidas para os clientes. Com o manifesto dinâmico, é possível criar um filtro de hora de início e remover os dados indesejados do manifesto.

diagrama de filtro de corte

Criar subclipes (exibições) de um arquivo ao vivo

Muitos eventos ao vivo são de longa duração e o arquivamento dinâmico pode incluir vários eventos. Após o término do evento ao vivo, talvez os difusores queiram dividir o arquivo ao vivo em sequências lógicas de início e parada do programa.

É possível publicar esses programas virtuais separadamente sem pós-processamento do arquivo em tempo real e sem criar ativos separados (o que não obtém os benefícios dos fragmentos de cache existentes nas CDNs). Exemplos desses programas virtuais são os tempos de um jogo de futebol ou de basquete, entradas no beisebol ou eventos individuais de qualquer programa de esportes.

Com o manifesto dinâmico, é possível criar filtros usando os horários de início/término e criar modos de exibição virtuais que ultrapassam seu arquivo ao vivo.

diagrama de filtro de subclipes

Este é o ativo filtrado:

diagrama de filtro de skiing

Ajuste da janela de apresentação (DVR)

Atualmente, os Serviços de Mídia do Azure oferecem arquivamento circular onde a duração pode ser configurada entre 1 minuto e 25 horas. A filtragem de manifesto pode ser usada para criar uma janela DVR com rolagem que ultrapassa o arquivo, sem excluir a mídia. Há muitos cenários em que os difusores podem desejar fornecer uma janela DVR limitada que se move com a borda ao vivo e, ao mesmo tempo manter uma janela de arquivamento maior. Um difusor pode querer usar os dados que estão fora da janela DVR para destacar os clipes, ou eles podem querer fornecer diferentes janelas DVR para diferentes dispositivos. Por exemplo, a maioria dos dispositivos móveis não suporta grandes janelas de DVR (você pode ter uma janela de DVR de 2 minutos para dispositivos móveis e uma hora para clientes de desktop).

diagrama de filtro de dvr

Ajustar o LiveBackoff (posição ao vivo)

A filtragem de manifesto pode ser usada para remover vários segundos da borda ao vivo de um programa ao vivo. A filtragem permite que os difusores assistam à apresentação no ponto de publicação de visualização e criem pontos de inserção de anúncio antes que os visualizadores recebam o fluxo (retirado por 30 segundos). Os difusores podem, então, enviar esses anúncios para suas estruturas de cliente no horário para que eles recebam e processem as informações antes da oportunidade de anúncio.

Além do suporte do anúncio, a configuração do LiveBackoff pode ser usada para ajustar a posição dos visualizadores para que, quando os clientes se deslocarem e alcançarem a borda ao vivo, ainda possam obter fragmentos do servidor. Dessa forma, os clientes não receberão um erro HTTP 404 ou 412.

diagrama de filtro de retirada ao vivo

Combinar várias regras em um único filtro

É possível combinar várias regras de filtragem em um único filtro. Por exemplo, você pode definir uma “regra de intervalo” para remover a imagem fixa de um arquivo ao vivo e filtrar as taxas de bits disponíveis. Ao aplicar várias regras de filtragem, o resultado final é a intersecção de todas essas regras.

diagrama de filtro de várias regras

Combinando vários filtros (composição de filtros)

Você também pode combinar vários filtros em uma única URL. O seguinte cenário demonstra por que talvez seja conveniente combinar filtros:

  1. Você precisa filtrar as qualidades de seus vídeos para dispositivos móveis, como Android ou iPAD (para limitar as qualidades de vídeos). Para remover as qualidades indesejadas, você criará um filtro de conta adequado para os perfis de dispositivos. Os filtros de conta podem ser usados para todos os seus recursos na mesma conta de serviços de mídia, sem associação adicional.
  2. Você também deseja cortar a hora de início e de término de um ativo. Para fazer o corte, você criará um filtro de ativo e definirá a hora de início/término.
  3. Você deseja combinar esses dois filtros. Sem a combinação, você precisaria adicionar a filtragem de qualidade ao filtro de corte, o que dificultaria o uso do filtro.

Para combinar os filtros, defina os nomes dos filtros para a URL do manifesto/playlist em formato delimitado com ponto e vírgula. Vamos supor que você tenha um filtro chamado MyMobileDevice que filtra as qualidades e tenha outro chamado MyStartTime para definir uma hora de início específica. Você pode combinar até três filtros.

Considerações e limitações

  • Os valores para forceEndTimestestamp, presentationWindowDuration e liveBackoffDuration não devem ser definidos para um filtro VoD. Eles são usados somente para cenários de filtros em tempo real.

  • Um manifesto dinâmico opera nos limites do GOP (quadros chave) e, como consequência, o corte tem precisão de GOP.

  • Você pode usar o mesmo nome de filtro para filtros de conta e de recurso. Os filtros de recursos têm precedência mais alta e substituem os filtros de conta.

  • Ao atualizar um filtro, talvez sejam necessários até 2 minutos para que o ponto de extremidade do streaming atualize as regras. Se você usou filtros para fornecer o conteúdo (e você armazenou em cache o conteúdo em proxies e caches CDN), a atualização desses filtros pode resultar em falhas do Player. É recomendável limpar o cache depois de atualizar o filtro. Se essa opção não for possível, considere usar um filtro diferente.

  • Os clientes precisam fazer o download manual do manifesto e analisar a exata startTimestamp e a escala de tempo.

    • Para determinar as propriedades das faixas em um ativo, obtenha e examine o arquivo de manifesto.
    • A fórmula para definir as propriedades do registro de data e hora do filtro de ativos é:
      startTimestamp = <hora de início no manifesto> + <hora de início esperada do filtro em segundos> * escala de tempo

Obter ajuda e suporte

Você pode entrar em contato com os Serviços de Mídia com dúvidas ou seguir nossas atualizações por um dos seguintes métodos: