Filtros

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.

Ao entregar o conteúdo aos clientes (streaming de eventos ao vivo ou vídeo por demanda), seu cliente poderá precisar de mais flexibilidade do que está descrito no arquivo de manifesto do ativo padrão. Os Serviços de Mídia do Azure oferecem Manifestos Dinâmicos com base em filtros predefinidos.

Os filtros são regras do lado do servidor que permitem que seus clientes façam coisas como:

  • Reproduza apenas uma seção de um vídeo (em vez de reproduzir o vídeo inteiro). Por exemplo:
    • Reduzir o manifesto para mostrar um subclipe de um evento ao vivo ("filtragem de subclipe"), ou
    • Corte do início de um vídeo ("corte de um vídeo").
  • Entregue apenas as execuções especificadas e / ou faixas de idioma especificadas que são suportadas pelo dispositivo usado para reproduzir o conteúdo ("filtragem de renderização").
  • Ajuste a Janela de Apresentação (DVR) para fornecer uma duração limitada da janela do DVR no leitor ("ajustar a janela de apresentação").

Os Serviços de Mídia permitem criar Filtros de conta e Filtros de ativo para o seu conteúdo. Além disso, você pode associar seus filtros criados previamente a um Localizador de Streaming.

Tipos de filtro

Existem dois tipos de filtros:

  • Filtros de conta (global) - podem ser aplicados a qualquer recurso na conta dos Serviços de Mídia do Azure, têm vida útil da conta.
  • Filtros de ativos (local) - só podem ser aplicados a um ativo ao qual o filtro foi associado na criação, têm uma vida útil do recurso.

Os tipos Filtros de Conta e Filtros de Ativo têm exatamente as mesmas propriedades para definir/descrever o filtro. Exceto ao criar o Filtro de ativos, você precisa especificar o nome do ativo ao qual deseja associar o filtro.

Dependendo do seu cenário, você decide qual tipo de filtro é mais adequado (Filtro de ativos ou Filtro de conta). Os filtros de conta são adequados para perfis de dispositivos (filtragem de renderização) em que os filtros de recursos podem ser usados para cortar um recurso específico.

Você usa as seguintes propriedades para descrever os filtros.

Nome Descrição
firstQuality A primeira taxa de bits de qualidade do filtro.
presentationTimeRange O intervalo de tempo da apresentação de um manifesto de evento ao vivo. Esta propriedade é usada para filtrar os pontos de início / fim do manifesto, a duração da janela de apresentação e a posição de início ao vivo.
Para mais informações, consulte PresentationTimeRange.
faixas As condições de seleção de faixas. Para obter mais informações, consulte faixas

presentationTimeRange

Use essa propriedade com filtros de ativo. Não é recomendável definir a propriedade com Filtros de Conta.

Nome Descrição
startTimestamp Aplica-se a VoD (vídeo por demanda) ou transmissão ao vivo.
Esse é um valor longo que representa um ponto de partida absoluto do fluxo. O valor é arredondado para o próximo início de GOP mais próximo. A unidade é a escala de tempo, de modo que um startTimestamp de 150.000.000 seria para 15 minutos.
Use startTimestamp e endTimestamp para cortar os fragmentos que estarão na playlist (manifesto).
Por exemplo, startTimestamp=40000000 e endTimestamp=100000000 usando a escala de tempo padrão gerará uma playlist que contém fragmentos entre 4 segundos e 10 segundos da apresentação VoD. Se um fragmento ultrapassar o limite, o fragmento inteiro será incluído no manifesto.
endTimestamp Aplica-se ao Video on Demand (VoD).
Para a transmissão ao vivo, ela é silenciosamente ignorada e aplicada quando a apresentação termina e o fluxo se torna VoD.
Esse é um valor longo que representa um ponto de extremidade absoluto da apresentação, arredondado para o início mais próximo do GOP. A unidade é a escala de tempo, de modo que um endTimestamp de 1.800.000.000 seria para três minutos.
Use startTimestamp e endTimestamp para cortar os fragmentos que estarão na playlist (manifesto).
Por exemplo, startTimestamp=40000000 e endTimestamp=100000000 usando a escala de tempo padrão gerará uma playlist que contém fragmentos entre 4 segundos e 10 segundos da apresentação VoD. Se um fragmento ultrapassar o limite, o fragmento inteiro será incluído no manifesto.
Escala de tempo Aplica-se a todos os carimbos de data/hora e durações em um intervalo de tempo de apresentação, especificado como o número de incrementos em um segundo.
O padrão é 10.000.000 – dez milhões de incrementos em um segundo, em que cada incremento teria 100 nanossegundos. No entanto, o valor pode ser diferente dependendo da origem do vídeo ou se você estiver usando um evento ao vivo com codificação na nuvem (padrão para 90Khz ou 90.000 para vídeo).
Por exemplo, se você quiser definir um startTimestamp em 30 segundos, usará um valor de 300.000.000 ao usar a escala de tempo padrão. Certifique-se de verificar o manifesto do seu ativo para confirmar que a escala de tempo da faixa de vídeo está na escala definida. Ao usar eventos ao vivo com codificação, a escala de tempo pode estar em 90Khz (90.000) para as faixas de vídeo e 48khz (48.000) para as faixas de áudio.
liveBackoffDuration Aplica-se somente à transmissão ao vivo.
Esse valor define a última posição dinâmica que um cliente pode buscar.
Usando essa propriedade, você pode atrasar a posição de reprodução ao vivo e criar um buffer do lado do servidor para os jogadores.
A unidade dessa propriedade é a escala de tempo (veja abaixo).
A duração máxima de retirada ao vivo é de 300 segundos (3.000.000.000).
Por exemplo, um valor de 2.000.000.000 significa que o conteúdo mais recente disponível está 20 segundos atrasado na borda dinâmica real.
presentationWindowDuration Aplica-se somente à transmissão ao vivo.
Use presentationWindowDuration para aplicar uma janela deslizante de fragmentos para incluir em uma playlist.
A unidade dessa propriedade é a escala de tempo (veja abaixo).
Por exemplo, definir presentationWindowDuration = 1200000000 para aplicar uma janela deslizante de dois minutos. Mídia dentro de 2 minutos da borda ao vivo será incluída na lista de reprodução. Se um fragmento ultrapassar o limite, todo o fragmento será incluído na lista de reprodução. A duração mínima da janela de apresentação é de 60 segundos.
forceEndTimestamp Aplica-se somente à transmissão ao vivo.
Indica se a propriedade endTimestamp deve estar presente. Se for true, endTimestamp deverá ser especificado ou um código de solicitação inadequado será retornado.
Valores permitidos: false, true.

Faixas

Você especifica uma lista de condições de propriedade da faixa de filtro (FilterTrackPropertyConditions) com base nas quais as faixas de seu fluxo (transmissão ao vivo ou vídeo por demanda) devem ser incluídas no manifesto criado dinamicamente. Os filtros são combinados usando uma operação lógica E e OU.

As condições de propriedade da faixa de filtro descrevem tipos de trilha, valores (descritos na tabela a seguir) e operações (Equal, NotEqual).

Nome Descrição
Bitrate Use a taxa de bits da faixa para filtragem.

O melhor valor é um intervalo de taxas de bits, em bits por segundo. Por exemplo, "0-2427000".

Observação: embora você possa usar um valor de taxa de bits específico, como 250.000 (bits por segundo), essa abordagem não é recomendada, pois as taxas de bits exatas podem variar de um ativo para outro.
FourCC Use o valor de FourCC da faixa para filtragem.

O valor é o primeiro elemento do formato de codecs, conforme especificado na 6381 RFC. Atualmente, há suporte para os seguintes codecs:
Vídeo: "Avc1", "hev1", "hvc1"
Para áudio: "Mp4a", "ec-3"

Para determinar os valores de FourCC para faixas em um ativo obter e examine o arquivo de manifesto.
Idioma Use a linguagem da faixa para filtragem.

O valor é a tag de um idioma que você deseja incluir, conforme especificado no RFC 5646. Por exemplo, “in”
Nome Use o nome da faixa para filtragem.
Tipo Use o tipo da faixa para filtragem.

Os seguintes valores são permitidos: "video", "áudio" ou "texto".

Exemplo

O seguinte exemplo define um filtro de transmissão ao vivo:

{
  "properties": {
    "presentationTimeRange": {
      "startTimestamp": 0,
      "endTimestamp": 170000000,
      "presentationWindowDuration": 9223372036854776000,
      "liveBackoffDuration": 0,
      "timescale": 10000000,
      "forceEndTimestamp": false
    },
    "firstQuality": {
      "bitrate": 128000
    },
    "tracks": [
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Audio"
          },
          {
            "property": "Language",
            "operation": "NotEqual",
            "value": "en"
          },
          {
            "property": "FourCC",
            "operation": "NotEqual",
            "value": "EC-3"
          }
        ]
      },
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Video"
          },
          {
            "property": "Bitrate",
            "operation": "Equal",
            "value": "3000000-5000000"
          }
        ]
      }
    ]
  }
}

Filtrar seus manifestos HLS ou DASH na criação do Localizador de Streaming

Os Serviços de Mídia permitem que você crie um Localizador de Streaming pré-filtrado passando uma coleção de filtros na propriedade de filtro na entidade do localizador de streaming. Isso permite que você filtre previamente todos os manifestos no localizador de streaming. O manifesto original não está mais disponível por meio desse localizador de streaming, e somente a resposta filtrada estará acessível para clientes que solicitam as URLs para DASH ou HLS do localizador de streaming filtrado. Isso é útil em situações em que você deseja publicar apenas uma parte de um ativo e impedir que os usuários obtenham acesso ao manifesto original completo do ativo, manipulando a cadeia de caracteres de consulta da URL do manifesto HLS ou DASH.

Você pode especificar uma lista de filtros de conta ou ativo, ao seu Localizador de Streaming. O Empacotador Dinâmico aplica essa lista de filtros com aqueles que o cliente especifica na URL. Essa combinação gera um Manifesto Dinâmico, que é baseado nos filtros na URL e nos filtros especificados no Localizador de Streaming.

Atualizar os filtros

Filtros e localizadores de streaming podem ser atualizados em tempo real, mas tenha em mente que pode levar até 10 segundos para que todas as atualizações sejam feitas nos servidores Web front-end, e pode haver problemas com o cache de CDN downstream do conteúdo caso você esteja atualizando o mesmo Localizador de Streaming que já foi publicado e usado na produção.

Não é recomendável atualizar a definição de filtros associados a um Localizador de Streaming publicado ativamente, em particular quando a CDN está habilitada. Os servidores de streaming e CDNs podem ter caches internos que podem resultar no retorno de dados armazenados em cache obsoletos.

Se a definição de filtro precisar ser alterada, considere criar um novo filtro e adicioná-lo à URL do Localizador de Streaming ou publicar um Localizador de Streaming totalmente novo que faça referência diretamente ao filtro.

Obter ajuda e suporte

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