Filtres

Logo de Media Services v3


Avertissement

Azure Media Services sera mis hors service le 30 juin 2024. Pour plus d’informations, consultez le Guide de mise hors service AMS.

Lorsque vous transmettez du contenu à des clients (événements en streaming en direct ou vidéos à la demande), le fichier manifeste de l'élément multimédia par défaut ne permet pas toujours au client d'interagir avec le contenu comme il le voudrait. Azure Media Services propose des manifestes dynamiques basés sur des filtres prédéfinis.

Les filtres sont des règles côté serveur qui permettent à vos clients d’effectuer des opérations comme :

  • Lire une seule section d'une vidéo (au lieu de la vidéo entière). Par exemple :
    • Réduisez le manifeste pour afficher un sous-clip d'un événement en direct (« filtrage de sous-clip »), ou
    • Découpez le début d'une vidéo (« découpage d'une vidéo »).
  • Distribuer uniquement les rendus spécifiés et/ou les pistes de langue spécifiées qui sont prises en charge par l’appareil utilisé pour lire le contenu (« filtrage de rendu »).
  • Ajustez la fenêtre de présentation (DVR) afin de fournir une longueur limitée de la fenêtre du DVR dans le lecteur (« ajustement de la fenêtre de présentation »).

Avec Media Services, vous pouvez créer des filtres de compte et des filtres d’élément multimédia à appliquer à votre contenu. En outre, vous pouvez associer vos filtres créés au préalable à un localisateur de streaming.

Types de filtres

Il existe deux types de filtres :

  • Filtres de compte (globaux) : applicables à n'importe quel élément multimédia dans le compte Azure Media Services et dont la durée de vie correspond à celle du compte.
  • Filtres d’élément multimédia (locaux) : applicables uniquement à un élément multimédia avec lequel le filtre a été associé au moment de la création et dont la durée de vie correspond à celle de l'élément multimédia.

Les types Filtres de compte et Filtres d’élément multimédia utilisent exactement les mêmes propriétés pour définir/décrire le filtre. Sauf lorsque vous créez le filtre d’élément multimédia, vous devez spécifier le nom de la ressource à laquelle vous souhaitez associer le filtre.

Selon votre scénario, vous choisissez le type de filtre le plus adapté (filtre d’élément multimédia ou de compte). Les filtres de compte conviennent aux profils d'appareil (filtrage de rendu) alors que les filtres d’élément multimédia peuvent être utilisés pour découper un élément multimédia spécifique.

Utilisez les propriétés suivantes pour décrire les filtres.

Name Description
firstQuality Première qualité de vitesse de transmission du filtre.
presentationTimeRange Intervalle de temps de présentation d’un manifeste d’événement en direct. Cette propriété sert à filtrer les points de début/fin du manifeste, la durée de la fenêtre de présentation, et la position de départ du flux en direct.
Pour plus d’informations, consultez PresentationTimeRange.
tracks Conditions de sélection des pistes. Pour plus d’informations, consultez tracks

presentationTimeRange

Utilisez cette propriété avec les filtres d’élément multimédia. Il n’est pas recommandé de définir la propriété avec des filtres de compte.

Nom Description
startTimestamp Applicable à la vidéo à la demande (VoD) ou au streaming en direct.
Cette valeur longue représente un point de début absolu du flux. Elle est arrondie au début GOP suivant le plus proche. L’unité étant l’échelle de temps, un endTimestamp de 150000000 correspond à 15 minutes.
Utilisez startTimestamp et endTimestamp pour découper les fragments qui seront présents dans la sélection (manifeste).
Par exemple, startTimestamp = 40000000 et endTimestamp = 100000000 utilisant l'échelle de temps par défaut génèrent une playlist contenant des fragments entre 4 secondes et 10 secondes de la présentation VoD. Si un fragment approche la limite, le fragment entier sera inclus dans le manifeste.
endTimestamp Applicable à la vidéo à la demande (VoD).
Pour la présentation en streaming en direct, cette propriété est ignorée (mode silencieux) puis appliquée lorsque la présentation se termine et que le flux est transmis en VoD.
Il s’agit d’une valeur longue qui représente un point de terminaison absolu de la présentation, arrondie au début GOP suivant le plus proche. L’unité étant l’échelle de temps, un endTimestamp de 1800000000 correspond à 3 minutes.
Utilisez startTimestamp et endTimestamp pour découper les fragments qui seront présents dans la sélection (manifeste).
Par exemple, startTimestamp = 40000000 et endTimestamp = 100000000 utilisant l'échelle de temps par défaut génèrent une playlist contenant des fragments entre 4 secondes et 10 secondes de la présentation VoD. Si un fragment approche la limite, le fragment entier sera inclus dans le manifeste.
timescale S’applique à tous les timestamps et durées d'une plage horaire de présentation, spécifiés sous forme d'incréments par seconde.
10000000 correspond à la valeur par défaut - dix millions d’incréments par seconde, où chaque incrément correspondrait à 100 nanosecondes. Toutefois, la valeur peut différer selon la source de la vidéo ou si vous utilisez un événement en direct avec encodage dans le cloud (définie par défaut sur 90 kHz, ou 90 000 kHz pour une vidéo).
Par exemple, si vous souhaitez définir un startTimestamp sur 30 secondes, vous opterez pour une valeur de 300000000 par rapport à l'échelle de temps par défaut. Veillez à vérifier le manifeste de votre ressource pour confirmer que l’échelle de temps pour la piste vidéo est comprise dans la mise à l’échelle que vous définissez. Lorsque vous utilisez des événements en direct avec encodage, l’échelle de temps peut être de 90 kHz (90 000) pour les pistes vidéo et de 48 kHz (48 000) pour les pistes audio.
liveBackoffDuration S’applique au streaming en direct uniquement.
Cette valeur définit la dernière position active qu'un client peut rechercher.
Cette propriété vous permet de différer la position de lecture en direct et de créer une mémoire tampon côté serveur pour les lecteurs.
L’unité de cette propriété est l’échelle de temps (voir ci-dessous).
La durée d’interruption en direct maximale est de 300 secondes (3000000000).
Par exemple, une valeur de 2000000000 signifie que le dernier contenu disponible est différé de 20 secondes par rapport à la session en direct.
presentationWindowDuration S’applique au streaming en direct uniquement.
Utilisez presentationWindowDuration pour appliquer une fenêtre glissante des fragments à ajouter à une sélection.
L’unité de cette propriété est l’échelle de temps (voir ci-dessous).
Par exemple, définissez presentationWindowDuration=1200000000 pour appliquer une fenêtre glissante de deux minutes. Les éléments multimédia situés à 2 minutes de la session en direct figureront dans la sélection. Si un fragment approche la limite, le fragment entier sera inclus dans la sélection. La durée minimale de la fenêtre de présentation est de 60 secondes.
forceEndTimestamp S’applique au streaming en direct uniquement.
Indique si la propriété endTimestamp doit être présente. Si la valeur est true, la propriété endTimestamp doit être spécifiée, à défaut de quoi un code de requête incorrecte est renvoyé.
Valeurs autorisées : false, true.

Pistes

Vous spécifiez une liste de conditions de propriétés de suivi de filtre (FilterTrackPropertyConditions) selon laquelle les pistes de votre flux de données (streaming en direct ou vidéo à la demande) doivent être incluses dans le manifeste créé dynamiquement. Les filtres sont combinés à l’aide d’une opération logique AND et OR.

Les conditions de propriétés de suivi de filtre décrivent les types de suivi, les valeurs (spécifiées dans le tableau suivant) et les opérations (Equal, NotEqual).

Name Description
Bitrate Utilisez la vitesse de transmission de la piste pour le filtrage.

La meilleure valeur à utiliser est une plage de vitesses de transmission, en bits par seconde. Par exemple, « 0-2427000 ».

Remarque : vous pouvez utiliser une valeur de vitesse de transmission spécifique, comme 250 000 (bits par seconde), mais cette approche n’est pas recommandée car les vitesses de transmission exactes peuvent varier d’une ressource à une autre.
FourCC Utilisez la valeur FourCC de la piste pour le filtrage.

La valeur est le premier élément du format de codecs, tel que spécifié dans RFC 6381. À l’heure actuelle, les codecs suivants sont pris en charge :
Pour la vidéo : « avc1 », « hev1 », « hvc1 »
Pour l’audio : « mp4a », « ec-3 »

Pour déterminer les valeurs FourCC des pistes d’un élément multimédia, obtenez et examinez le fichier manifeste.
Langage Utilisez la langue de la piste pour le filtrage.

La valeur est la balise d’une langue que vous souhaitez inclure, comme indiqué dans RFC 5646. Exemple : « en ».
Nom Utilisez le nom de la piste pour le filtrage.
Type Utilisez le type de la piste pour le filtrage.

Les valeurs suivantes sont autorisées : « video », « audio » ou « text ».

 Exemple

L’exemple suivant définit un filtre de streaming en direct :

{
  "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"
          }
        ]
      }
    ]
  }
}

Filtrer vos manifestes HLS ou DASH lors de la création d’un localisateur de streaming

Media Services vous permet de créer un localisateur de streaming préfiltré en transmettant une collection de filtres dans la propriété de filtre sur l’entité de localisateur de streaming. Cela vous permet de préfiltrer tous les manifestes sur le localisateur de streaming. Le manifeste d’origine n’est plus disponible via ce localisateur de diffusion en continu, et seule la réponse filtrée sera accessible aux clients qui demandent les URL pour DASH ou HLS à partir du localisateur de streaming filtré. Cela est utile dans les situations où vous souhaitez publier uniquement une partie d’une ressource et empêcher les utilisateurs d’accéder au manifeste d’origine complet de la ressource en manipulant la chaîne de requête de l’URL du manifeste HLS ou DASH.

Vous pouvez spécifier une liste de filtres de compte ou d'élément multimédia sur votre localisateur de streaming. Le packager dynamique applique cette liste de filtres avec ceux spécifiés par votre client dans l’URL. Cette combinaison génère un manifeste dynamique qui est basé sur les filtres spécifiés dans l’URL ainsi que sur ceux que vous spécifiez dans le localisateur de streaming.

Mise à jour de filtres

Les filtres et les localisateurs de streaming peuvent être mis à jour à la volée. Gardez toutefois à l’esprit que les mises à jour sur les serveurs web front-end peuvent prendre jusqu’à 10 secondes et que des problèmes liés à la mise en cache CDN en aval du contenu peuvent survenir si vous mettez à jour le même localisateur de streaming que celui qui a été publié et qui est déjà utilisé en production.

Il est déconseillé de mettre à jour la définition des filtres associés à un localisateur de streaming activement publié, notamment lorsque CDN est activé. Les serveurs et CDN de streaming peuvent disposer de caches internes susceptibles de renvoyer des données en cache obsolètes.

Si la définition du filtre doit être modifiée, envisagez de créer un nouveau filtre et de l'ajouter à l'URL du localisateur de streaming ou de publier un nouveau localisateur de streaming unique faisant directement référence au filtre mis à jour.

Obtenir de l’aide et du support

Vous pouvez contacter Media Services pour toute question ou suivre nos mises à jour selon l’une des méthodes suivantes :