Filtros

Logótipo dos Serviços de Multimédia v3


Aviso

Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, veja o Guia de Extinção do AMS.

Ao entregar os seus conteúdos aos clientes (eventos de Transmissão em Fluxo em Direto ou Vídeo a Pedido), o cliente poderá precisar de mais flexibilidade do que o descrito no ficheiro de manifesto do recurso predefinido. Os Serviços de Multimédia do Azure oferecem Manifestos Dinâmicos com base em filtros predefinidos.

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

  • Reproduza apenas uma secção de um vídeo (em vez de reproduzir todo o vídeo). Por exemplo:
    • Reduza o manifesto para mostrar um sub clip de um evento em direto ("filtragem de sub clipes"), ou
    • Cortar o início de um vídeo ("cortar um vídeo").
  • Forneça apenas as representações especificadas e/ou as faixas de idioma especificadas que são suportadas pelo dispositivo que é utilizado para reproduzir o conteúdo ("filtragem de representação").
  • Ajuste a Janela de Apresentação (DVR) para fornecer um comprimento limitado da janela do DVR no leitor ("ajustar a janela de apresentação").

Os Serviços de Multimédia permitem-lhe criar filtros de Conta e Filtros de recursos para o seu conteúdo. Além disso, pode associar os filtros pré-criados a um Localizador de Transmissão em Fluxo.

Tipos de filtro

Existem dois tipos de filtros:

  • Filtros de Conta (global) – podem ser aplicados a qualquer recurso na conta dos Serviços de Multimédia do Azure, ter uma duração da conta.
  • Filtros de Recursos (local) – só podem ser aplicados a um recurso com o qual o filtro foi associado após a criação, têm uma duração do recurso.

Os tipos Filtros de Conta e Filtros de Recursos têm exatamente as mesmas propriedades para definir/descrever o filtro. Exceto quando criar o Filtro de Recursos, tem de especificar o nome do recurso ao qual pretende associar o filtro.

Consoante o seu cenário, decide que tipo de filtro é mais adequado (Filtro de Ativos ou Filtro de Conta). Os Filtros de Conta são adequados para perfis de dispositivo (filtragem de representação) em que os Filtros de Recursos podem ser utilizados para cortar um recurso específico.

Utilize as seguintes propriedades para descrever os filtros.

Nome Descrição
primeira Igualdade A primeira velocidade de transmissão de qualidade do filtro.
presentationTimeRange O intervalo de tempo da apresentação de um manifesto de evento em direto. Esta propriedade é utilizada para filtrar pontos de início/fim do manifesto, o comprimento da janela da apresentação e a posição de início dinâmico.
Para obter mais informações, consulte PresentationTimeRange.
faixas O monitoriza as condições de seleção. Para obter mais informações, veja faixas

presentationTimeRange

Utilize esta propriedade com Filtros de Recursos. Não é recomendado definir a propriedade com Filtros de Conta.

Nome Descrição
startTimestamp Aplica-se a Vídeo a Pedido (VoD) ou Transmissão em Fluxo em Direto.
Este é um valor longo que representa um ponto de partida absoluto do fluxo. O valor é arredondado para o próximo início do GOP mais próximo. A unidade é a escala temporal, pelo que um startTimestamp de 150000000 seria durante 15 segundos.
Utilize startTimestamp e endTimestamp para cortar os fragmentos que estarão na lista de reprodução (manifesto).
Por exemplo, startTimestamp=40000000 e endTimestamp=100000000 com a escala temporal predefinida irá gerar uma lista de reprodução que contém fragmentos entre 4 segundos e 10 segundos da apresentação VoD. Se um fragmento esticar o limite, todo o fragmento será incluído no manifesto.
endTimestamp Aplica-se ao Vídeo a Pedido (VoD).
Para a apresentação live streaming, é silenciosamente ignorada e aplicada quando a apresentação termina e a transmissão torna-se VoD.
Este é um valor longo que representa um ponto final absoluto da apresentação, arredondado para o próximo início do GOP mais próximo. A unidade é a escala temporal, pelo que um endTimestamp de 1800000000 seria de 3 minutos.
Utilize startTimestamp e endTimestamp para cortar os fragmentos que estarão na lista de reprodução (manifesto).
Por exemplo, startTimestamp=40000000 e endTimestamp=100000000 com a escala temporal predefinida irá gerar uma lista de reprodução que contém fragmentos entre 4 segundos e 10 segundos da apresentação VoD. Se um fragmento esticar o limite, todo o fragmento será incluído no manifesto.
escala temporal Aplica-se a todos os carimbos de data/hora e durações num Intervalo de Tempo da Apresentação, especificado como o número de incrementos num segundo.
A predefinição é 100000000 - dez milhões de incrementos num segundo, em que cada incremento teria 100 nanossegundos de comprimento. No entanto, o valor pode ser diferente consoante a origem do vídeo ou se estiver a utilizar um evento em direto com codificação na cloud (a predefinição é 90Khz ou 90000 para vídeo).)
Por exemplo, se quiser definir um startTimestamp em 30 segundos, utilizaria um valor de 300000000 ao utilizar a escala temporal predefinida. Certifique-se de que verifica o manifesto do recurso para confirmar que a escala temporal da faixa de vídeo está na escala que definiu. Ao utilizar eventos em direto com codificação, a escala temporal pode estar em 90Khz (90000) para as faixas de vídeo e 48khz (48000) para as faixas de áudio.
liveBackoffDuration Aplica-se apenas à Transmissão em Fluxo em Direto.
Este valor define a posição dinâmica mais recente que um cliente pode procurar.
Com esta propriedade, pode atrasar a posição da reprodução em direto e criar uma memória intermédia do lado do servidor para os jogadores.
A unidade para esta propriedade é a escala temporal (ver abaixo).
A duração máxima do live back off é de 300 segundos (300000000).
Por exemplo, um valor de 20000000000 significa que o conteúdo disponível mais recente está 20 segundos atrasado a partir do limite real.
apresentaçãoWindowDuration Aplica-se apenas à Transmissão em Fluxo em Direto.
Utilize a apresentaçãoWindowDuration para aplicar uma janela deslizante de fragmentos para incluir numa lista de reprodução.
A unidade para esta propriedade é a escala temporal (ver abaixo).
Por exemplo, defina presentationWindowDuration=1200000000 para aplicar uma janela deslizante de dois minutos. Os suportes de dados no prazo de 2 minutos após a periferia em direto serão incluídos na lista de reprodução. Se um fragmento se deparar com 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 apenas à Transmissão em Fluxo em Direto.
Indica se a propriedade endTimestamp tem de estar presente. Se for verdadeiro, endTimestamp tem de ser especificado ou é devolvido um código de pedido incorreto.
Valores permitidos: falso, verdadeiro.

Faixas

Especifique uma lista de condições de propriedade de filtragem (FilterTrackPropertyConditions) com base nas faixas da sua transmissão em fluxo (Transmissão em Fluxo em Direto ou Vídeo a Pedido) que devem ser incluídas no manifesto criado dinamicamente. Os filtros são combinados com uma operação LÓGICA E e OU .

As condições das propriedades de controlo de filtro descrevem tipos de registo, valores (descritos na tabela seguinte) e operações (Igual, NotEqual).

Nome Descrição
Velocidade de transmissão Utilize a velocidade de transmissão da faixa para filtragem.

O melhor valor é um intervalo de velocidades de transmissão, em bits por segundo. Por exemplo, "0-2427000".

Nota: embora possa utilizar um valor de velocidade de transmissão específico, como 250 000 (bits por segundo), esta abordagem não é recomendada, uma vez que as velocidades de transmissão exatas podem oscilar de um Recurso para outro.
FourCC Utilize o valor FourCC da faixa para filtrar.

O valor é o primeiro elemento do formato codecs, conforme especificado em RFC 6381. Atualmente, são suportados os seguintes codecs:
Para Vídeo: "avc1", "hev1", "hvc1"
Para Áudio: "mp4a", "ec-3"

Para determinar os valores FourCC das faixas num Recurso, obtenha e examine o ficheiro de manifesto.
Linguagem Utilize o idioma da faixa para filtrar.

O valor é a etiqueta de um idioma que pretende incluir, conforme especificado em RFC 5646. Por exemplo, "en".
Nome Utilize o nome da faixa para filtrar.
Tipo Utilize o tipo de faixa para filtrar.

Os seguintes valores são permitidos: "vídeo", "áudio" ou "texto".

Exemplo

O exemplo seguinte define um filtro transmissão em fluxo em direto:

{
  "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 os seus manifestos HLS ou DASH na criação do Localizador de Transmissão em Fluxo

Os Serviços de Multimédia permitem-lhe criar um Localizador de Transmissão em Fluxo pré-filtrado ao transmitir uma coleção de filtros na propriedade de filtro na entidade do localizador de transmissão em fluxo. Isto permite-lhe pré-filtrar todos os manifestos no localizador de transmissão em fluxo. O manifesto original já não está disponível através deste localizador de transmissão em fluxo e apenas a resposta filtrada estará acessível aos clientes que solicitam os URLs para DASH ou HLS a partir do localizador de transmissão em fluxo filtrado. Isto é útil em situações em que pretende publicar apenas uma parte de um recurso e impedir que os utilizadores obtenham acesso ao manifesto original completo do recurso manipulando a cadeia de consulta do URL de manifesto HLS ou DASH.

Pode especificar uma lista de filtros de recursos ou contas no seu Localizador de Transmissão em Fluxo. O Packager Dinâmico aplica esta lista de filtros juntamente com os especificados pelo cliente no URL. Esta combinação gera um Manifesto Dinâmico, que se baseia em filtros no URL + filtros que especificar no Localizador de Transmissão em Fluxo.

Atualizar filtros

Os filtros e os localizadores de transmissão em fluxo podem ser atualizados de imediato, mas tenha em atenção que pode demorar até 10 segundos para que quaisquer atualizações sejam atualizadas nos servidores Web front-end e que podem existir problemas com a colocação em cache de CDN a jusante do conteúdo se estiver a atualizar o mesmo Localizador de Transmissão em Fluxo que já foi publicado e utilizado na produção.

Não é recomendado atualizar a definição de filtros associados a um Localizador de Transmissão em Fluxo publicado ativamente, especialmente quando a CDN está ativada. Os servidores de transmissão em fluxo e as CDNs podem ter caches internas que podem resultar na devolução de dados em cache obsoletos.

Se a definição de filtro precisar de ser alterada, considere criar um novo filtro e adicioná-lo ao URL do Localizador de Transmissão em Fluxo ou publicar um Localizador de Transmissão em Fluxo exclusivo que faça referência direta ao filtro atualizado.

Obter ajuda e suporte

Pode contactar os Serviços de Multimédia com perguntas ou seguir as nossas atualizações através de um dos seguintes métodos: