Filtrer vos manifestes à l’aide de Dynamic PackagerFilter your manifests using Dynamic Packager

Lorsque vous fournissez du contenu en streaming à débit adaptatif à des appareils, il est souvent nécessaire de publier plusieurs versions d'un manifeste pour cibler des fonctionnalités d'appareil spécifiques ou la bande passante réseau disponible.When you're delivering adaptive bitrate streaming content to devices, you sometimes need to publish multiple versions of a manifest to target specific device capabilities or available network bandwidth. Le Packager dynamique vous permet de spécifier des filtres qui peuvent filtrer des codecs, des résolutions, des vitesses de transmission et des combinaisons de pistes audio spécifiques à la volée.The Dynamic Packager lets you specify filters which can filter out specific codecs, resolutions, bitrates, and audio track combinations on-the-fly. Ce filtrage supprime la nécessité de créer plusieurs copies.This filtering removes the need to create multiple copies. Vous devez simplement publier une nouvelle URL avec un ensemble spécifique de filtres configurés pour vos appareils cibles (iOS, Android, SmartTV ou navigateurs) et les fonctionnalités réseau (scénarios de bande passante élevée, mobiles ou de bande passante faible).You simply need to publish a new URL with a specific set of filters configured to your target devices (iOS, Android, SmartTV, or browsers) and the network capabilities (high-bandwidth, mobile, or low-bandwidth scenarios). Dans ce cas, les clients peuvent manipuler le streaming de votre contenu par le biais de la chaîne de requête (en spécifiant les filtres de ressources ou les filtres de comptes disponibles) et utiliser des filtres pour diffuser des sections spécifiques d’un flux.In this case, clients can manipulate the streaming of your content through the query string (by specifying available Asset filters or Account filters) and use filters to stream specific sections of a stream.

Certains scénarios de distribution exigent que vous vérifiiez qu’un client est dans l’impossibilité d’accéder à des pistes spécifiques.Some delivery scenarios require that you make sure a customer can't access specific tracks. Par exemple, vous pouvez ne pas souhaiter publier un manifeste qui contient des pistes HD vers un niveau d’abonné spécifique.For example, maybe you don't want to publish a manifest that contains HD tracks to a specific subscriber tier. Ou vous pouvez souhaiter supprimer des pistes à débit adaptatif (ABR) spécifiques pour réduire les coûts de distribution à un appareil spécifique qui ne bénéficie pas des pistes supplémentaires.Or, maybe you want to remove specific adaptive bitrate (ABR) tracks to reduce cost of delivery to a specific device that wouldn't benefit from the additional tracks. Dans ce cas, vous pouvez associer une liste de filtres précréés à votre localisateur de streaming lors de la création.In this case, you could associate a list of pre-created filters with your Streaming Locator on creation. Si c’est ce cas, les clients ne peuvent pas manipuler la façon dont le contenu est diffusé, car elle est définie par le localisateur de streaming.Clients then can't manipulate how the content is streamed because it's defined by the Streaming Locator.

Vous pouvez combiner le filtrage en spécifiant des filtres sur le localisateur de streaming et des filtres supplémentaires spécifiques à l’appareil que votre client spécifie dans l’URL.You can combine filtering through specifying filters on Streaming Locator + additional device-specific filters that your client specifies in the URL. Cette combinaison peut être utile pour limiter les pistes supplémentaires comme les flux de métadonnées ou d'événements, les langues audio ou les pistes audio descriptives.This combination is useful to restrict additional tracks like metadata or event streams, audio languages, or descriptive audio tracks.

Cette possibilité de spécifier des filtres différents sur votre flux offre une puissante solution de manipulation de manifeste dynamique afin de cibler plusieurs scénarios de cas d’usage pour vos appareils cibles.This ability to specify different filters on your stream provides a powerful Dynamic Manifest manipulation solution to target multiple use-case scenarios for your target devices. Cette rubrique décrit les concepts liés aux Manifestes dynamiques et fournit des exemples de scénarios dans lesquels vous pouvez utiliser cette fonctionnalité.This topic explains concepts related to Dynamic Manifests and gives examples of scenarios in which you can use this feature.

Notes

Les manifestes dynamiques ne changent pas l'élément multimédia ni son manifeste par défaut.Dynamic Manifests don't change the asset and the default manifest for that asset.

Vue d'ensemble des manifestesOverview of manifests

Azure Media Services prend en charge les protocoles HLS, MPEG DASH et Smooth Streaming.Azure Media Services supports HLS, MPEG DASH, and Smooth Streaming protocols. Dans le cadre du l'empaquetage dynamique, les manifestes du client de streaming (liste de lecture principale HLS, DASH MPD (Media Presentation Description) et Smooth Streaming) sont générés de façon dynamique en fonction du sélecteur de format de l'URL.As part of Dynamic Packaging, the streaming client manifests (HLS Master Playlist, DASH Media Presentation Description [MPD], and Smooth Streaming) are dynamically generated based on the format selector in the URL. Pour plus d’informations, consultez les protocoles de remise présentés dans Workflow à la demande commun.For more information, see the delivery protocols in Common on-demand workflow.

Obtenir et examiner des fichiers manifesteGet and examine manifest files

Vous spécifiez une liste de conditions de propriété de pistes de filtrage basée sur les pistes de votre flux (en direct ou en vidéo à la demande [VOD]) qui doivent être incluses dans un manifeste créé de façon dynamique.You specify a list of filter track property conditions based on which tracks of your stream (live or video on-demand [VOD]) should be included in a dynamically created manifest. Pour obtenir et examiner les propriétés des pistes, vous devez d’abord charger le manifeste Smooth Streaming.To get and examine the properties of the tracks, you have to load the Smooth Streaming manifest first.

Le tutoriel Charger, encoder et diffuser en continu des fichiers avec .NET explique comment créer des URL de diffusion en continu avec .NET.The Upload, encode, and stream files with .NET tutorial shows you how to build the streaming URLs with .NET. Si vous exécutez l’application, une des URL pointe vers le manifeste Smooth Streaming : https://amsaccount-usw22.streaming.media.azure.net/00000000-0000-0000-0000-0000000000000/ignite.ism/manifest.If you run the app, one of the URLs points to the Smooth Streaming manifest: https://amsaccount-usw22.streaming.media.azure.net/00000000-0000-0000-0000-0000000000000/ignite.ism/manifest.
Copiez et collez l’URL dans la barre d’adresse d’un navigateur.Copy and paste the URL into the address bar of a browser. Le fichier va être téléchargé.The file will be downloaded. Vous pouvez l’ouvrir dans n’importe quel éditeur de texte.You can open it in any text editor.

Pour obtenir un exemple REST, consultez Charger, encoder et diffuser en continu des fichiers avec REST.For a REST example, see Upload, encode, and stream files with REST.

Surveiller la vitesse de transmission d’un flux vidéoMonitor the bitrate of a video stream

Vous pouvez utiliser la page de démo Azure Media Player pour surveiller la vitesse de transmission d’un flux vidéo.You can use the Azure Media Player demo page to monitor the bitrate of a video stream. La page de démo affiche des informations de diagnostic dans l'onglet Diagnostics :The demo page displays diagnostics info on the Diagnostics tab:

Diagnostics Azure Media Player

Exemples : URL avec des filtres dans la chaîne de requêteExamples: URLs with filters in query string

Vous pouvez appliquer des filtres aux protocoles de diffusion en continu ABR : HLS, MPEG-DASH et Smooth Streaming.You can apply filters to ABR streaming protocols: HLS, MPEG-DASH, and Smooth Streaming. Le tableau suivant présente des exemples d’URL utilisant des filtres :The following table shows some examples of URLs with filters:

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

Filtrage de renduRendition filtering

Vous pouvez choisir d'encoder votre élément multimédia pour plusieurs profils d'encodage (H.264 Baseline, H.264 High, AACL, AACH, Dolby Digital Plus) et plusieurs qualités de débit binaire.You can choose to encode your asset to multiple encoding profiles (H.264 Baseline, H.264 High, AACL, AACH, Dolby Digital Plus) and multiple quality bitrates. Toutefois, tous les appareils client ne prennent pas en charge tous les profils et débits binaires de tous vos éléments multimédias.However, not all client devices will support all your asset's profiles and bitrates. Par exemple, les anciens appareils Android prennent uniquement en charge H.264 Baseline+AACL.For example, older Android devices support only H.264 Baseline+AACL. L'envoi à des vitesses de transmission plus élevées à un appareil qui ne peut pas en tirer partie revient à gaspiller de la bande passante et entraîne des calculs inutiles pour l'appareil.Sending higher bitrates to a device that can't get the benefits wastes bandwidth and device computation. Ce dernier doit en effet décoder toutes les informations données, pour finalement les mettre à l'échelle afin de les afficher.Such a device must decode all the given information, only to scale it down for display.

Avec un manifeste dynamique, vous pouvez créer des profils d'appareil mobile, de console ou HD/SD, et inclure les pistes et les qualités à intégrer dans chaque profil.With Dynamic Manifest, you can create device profiles (such as mobile, console, or HD/SD) and include the tracks and qualities that you want to be a part of each profile. C'est ce qu'on appelle le filtrage de rendu.That's called rendition filtering. Le diagramme suivant en présente un exemple.The following diagram shows an example of it.

Exemple de filtrage de rendu avec un manifeste dynamique

Dans l’exemple suivant, un encodeur a été utilisé pour encoder un élément multimédia mezzanine en sept rendus vidéo ISO MP4s (de 180 p à 1 080 p).In the following example, an encoder was used to encode a mezzanine asset into seven ISO MP4s video renditions (from 180p to 1080p). La ressource encodée peut être empaquetée de manière dynamique dans l’un des protocoles de streaming suivants : HLS, MPEG DASH et Smooth.The encoded asset can be dynamically packaged into any of the following streaming protocols: HLS, MPEG DASH, and Smooth.

Le haut du diagramme suivant illustre le manifeste HLS de l'élément multimédia sans filtre.The top of the following diagram shows the HLS manifest for the asset with no filters. (Il contient les sept rendus.) Dans la partie inférieure gauche, le diagramme montre un manifeste HLS auquel un filtre nommé « ott » a été appliqué.(It contains all seven renditions.) In the lower left, the diagram shows an HLS manifest to which a filter named "ott" was applied. Le filtre « ott » indique de supprimer toutes les vitesses de transmission inférieures à 1 Mbit/s, ce qui entraîne la suppression des deux niveaux de qualité les plus bas dans la réponse.The "ott" filter specifies the removal of all bitrates below 1 Mbps, so the bottom two quality levels were stripped off in the response. Dans la partie inférieure droite, le diagramme montre le manifeste HLS auquel un filtre nommé « mobile » a été appliqué.In the lower right, the diagram shows the HLS manifest to which a filter named "mobile" was applied. Le filtre « mobile » indique de supprimer les rendus pour lesquels la résolution est supérieure à 720 p, ce qui entraîne la suppression des deux rendus à 1 080 p.The "mobile" filter specifies the removal of renditions where the resolution is larger than 720p, so the two 1080p renditions were stripped off.

Filtrage de rendu avec un manifeste dynamique

Suppression des pistes de langueRemoving language tracks

Vos éléments multimédias peuvent inclure plusieurs langues audio telles que l’anglais, l’espagnol, le français, etc.Your assets might include multiple audio languages such as English, Spanish, French, and so on. Généralement, le kit SDK du lecteur gère la sélection de pistes audio par défaut et les pistes audio disponibles par sélection de l'utilisateur.Usually, the Player SDK manages default audio track selection and available audio tracks per user selection.

Le développement de ces kits SDK de lecteur est difficile car différentes implémentations sont requises entre les infrastructures de lecteur propres aux appareils.Developing such Player SDKs is challenging because it requires different implementations across device-specific player frameworks. De plus, sur certaines plateformes, les API de lecteur sont limitées et n’incluent pas de fonctionnalité de sélection audio, ce qui ne permet pas aux utilisateurs de sélectionner ou de modifier la piste audio par défaut. Avec les filtres d'éléments multimédias, vous pouvez contrôler le comportement en créant des filtres qui incluent uniquement les langues audio souhaitées.Also, on some platforms, Player APIs are limited and don't include the audio selection feature where users can't select or change the default audio track. With asset filters, you can control the behavior by creating filters that only include desired audio languages.

Filtrage des pistes de langue avec un manifeste dynamique

Découpage du début d'un élément multimédiaTrimming the start of an asset

Pour la plupart des événements de diffusion en continu en direct, les opérateurs exécutent des tests avant l'événement réel.In most live streaming events, operators run some tests before the actual event. Par exemple, ils peuvent inclure une ardoise comme celle-ci avant le début de l’événement : « Le programme va commencer dans un instant ».For example, they might include a slate like this before the start of the event: "Program will begin momentarily."

Si le programme est en cours d’archivage, le test et les données d’ardoise sont également archivés et donc inclus dans la présentation.If the program is archiving, the test and slate data are also archived and included in the presentation. Toutefois, ces informations ne doivent pas être montrées aux clients.However, this information shouldn't be shown to the clients. Avec un manifeste dynamique, vous pouvez créer un filtre sur l'heure de début et supprimer les données indésirables du manifeste.With Dynamic Manifest, you can create a start time filter and remove the unwanted data from the manifest.

Découpage du début d’un élément multimédia avec un manifeste dynamique

Création de sous-clips (vues) à partir d’une archive en directCreating subclips (views) from a live archive

De nombreux événements en direct ont une durée d'exécution longue et une archive en direct peut inclure plusieurs événements.Many live events are long running and live archive might include multiple events. Une fois l’événement en direct terminé, les diffuseurs peuvent décomposer cette archive en direct selon des séquences de démarrage et d’arrêt du programme logiques.After the live event ends, broadcasters may want to break up the live archive into logical program start and stop sequences.

Vous pouvez publier ces programmes virtuels séparément, sans post-traitement de l'archive en direct, et sans créer d'éléments multimédias distincts (qui ne bénéficient pas des fragments mis en cache existants dans les CDN).You can publish these virtual programs separately without post processing the live archive and not creating separate assets (which doesn't get the benefit of the existing cached fragments in the CDNs). Par exemple, ces programmes virtuels peuvent correspondre aux mi-temps d’un match de football ou de basket, aux tours de batte au base-ball ou à des événements sportifs ponctuels.Examples of such virtual programs are the quarters of a football or basketball game, innings in baseball, or individual events of any sports program.

Avec un manifeste dynamique, vous pouvez créer des filtres en utilisant des heures de début/fin et créer des vues virtuelles par-dessus votre archive en direct.With Dynamic Manifest, you can create filters by using start/end times and create virtual views over the top of your live archive.

Filtre de sous-clip avec un manifeste dynamique

Voici l'élément multimédia filtré :Here's the filtered asset:

Ressource filtrée avec un manifeste dynamique

Ajustement de la fenêtre de présentation (DVR)Adjusting the presentation window (DVR)

Azure Media Services propose une archive circulaire où la durée peut être configurée entre 1 minute et 25 heures.Currently, Azure Media Services offers circular archive where the duration can be configured between 1 minute - 25 hours. Le filtrage de manifeste peut servir à créer une fenêtre DVR de substitution par-dessus l'archive, sans supprimer le média.Manifest filtering can be used to create a rolling DVR window over the top of the archive, without deleting media. Il existe de nombreux scénarios où les diffuseurs veulent fournir une fenêtre DVR limitée à déplacer avec la session en direct et qui garde en même temps une plus grande fenêtre d’archivage.There are many scenarios where broadcasters want to provide a limited DVR window to move with the live edge and at the same time keep a bigger archiving window. Un diffuseur peut utiliser les données en dehors de la fenêtre DVR pour mettre en avant des clips ou il peut proposer des fenêtres DVR différentes pour différents appareils.A broadcaster may want to use the data that's out of the DVR window to highlight clips, or they may want to provide different DVR windows for different devices. Par exemple, la plupart des appareils mobiles ne gèrent pas les grandes fenêtres DVR (une fenêtre DVR peut durer 2 minutes pour les appareils mobiles alors qu’elle dure une heure pour les ordinateurs de bureau).For example, most of the mobile devices don't handle large DVR windows (you can have a 2-minute DVR window for mobile devices and one hour for desktop clients).

Fenêtre DVR avec un manifeste dynamique

Ajustement de LiveBackoff (position en direct)Adjusting LiveBackoff (live position)

Le filtrage de manifeste peut servir à supprimer plusieurs secondes à partir du bord en direct d'un programme en direct.Manifest filtering can be used to remove several seconds from the live edge of a live program. Il permet aux diffuseurs de regarder la présentation sur le point de publication d'aperçu et de créer des points d'insertion d'annonce avant que les utilisateurs ne reçoivent le flux (reculé de 30 secondes).Filtering allows broadcasters to watch the presentation on the preview publication point and create advertisement insertion points before the viewers receive the stream (backed off by 30 seconds). Les diffuseurs peuvent ensuite transmettre ces annonces à leurs infrastructures clientes à temps pour qu'ils reçoivent et traitent les informations avant l'opportunité d'annonce.Broadcasters can then push these advertisements to their client frameworks in time for them to receive and process the information before the advertisement opportunity.

Outre la prise en charge des annonces, le paramètre LiveBackoff peut servir à ajuster la position des utilisateurs, afin que lorsque les clients dérivent et atteignent la session en direct, ils puissent toujours obtenir des fragments du serveur.In addition to the advertisement support, the live back-off setting can be used to adjust the viewers' position so that when clients drift and hit the live edge, they can still get fragments from the server. De cette façon, les clients ne recevront pas d'erreur HTTP 404 ou 412.That way, clients won't get an HTTP 404 or 412 error.

Filtrer les interruptions dynamiques avec un manifeste dynamique

Combinaison de plusieurs règles dans un seul filtreCombining multiple rules in a single filter

Vous pouvez combiner plusieurs règles de filtrage dans un filtre unique.You can combine multiple filtering rules in a single filter. Par exemple, vous pouvez définir une « règle de plage » pour supprimer les ardoises d’une archive en direct tout en éliminant les débits binaires disponibles.For example, you can define a "range rule" to remove slates from a live archive and also filter out available bitrates. Lorsque vous appliquez plusieurs règles de filtrage, le résultat final est l'intersection de toutes les règles.When you're applying multiple filtering rules, the end result is the intersection of all rules.

Règles de filtrage multiples avec un manifeste dynamique

Combinaison de plusieurs filtres (composition de filtre)Combining multiple filters (filter composition)

Vous pouvez également combiner plusieurs filtres dans une URL unique.You can also combine multiple filters in a single URL. Le scénario suivant explique les avantages de la combinaison de filtres :The following scenario demonstrates why you might want to combine filters:

  1. Vous devez filtrer vos qualités vidéo pour les appareils mobiles tels qu’Android ou iPad (afin de limiter les qualités vidéo).You need to filter your video qualities for mobile devices, like Android or iPad (in order to limit video qualities). Pour supprimer les qualités indésirables, vous devez créer un filtre de compte adapté aux profils de vos appareils.To remove the unwanted qualities, you'll create an account filter suitable for the device profiles. Vous pouvez utiliser des filtres de compte pour tous les éléments multimédia liés au même compte Media Services sans aucune autre association.You can use account filters for all your assets under the same Media Services account without any further association.
  2. Vous pouvez aussi avoir besoin d’ajuster l’heure de début et de fin d’un élément multimédia.You also want to trim the start and end time of an asset. Pour effectuer le découpage, vous devez créer un filtre d'élément multimédia et définir l'heure de début et de fin.To do the trimming, you'll create an asset filter and set the start/end time.
  3. Vous pouvez combiner ces deux filtres.You want to combine both of these filters. Sans combinaison, vous devrez ajouter le filtrage de la qualité au filtre de réglage, ce qui compliquera l'utilisation de filtres.Without combination, you would need to add quality filtering to the trimming filter, which would make filter usage more difficult.

Pour combiner des filtres, définissez leurs noms dans l’URL du manifeste ou de la liste de lecture en les délimitant avec des points-virgules.To combine filters, set the filter names to the manifest/playlist URL in semicolon-delimited format. Supposons que vous ayez un filtre nommé MyMobileDevice qui filtre les qualités et un autre nommé MyStartTime qui définit une heure de début spécifique.Let’s assume you have a filter named MyMobileDevice that filters qualities, and you have another named MyStartTime to set a specific start time. Vous pouvez combiner jusqu’à trois filtres.You can combine up to three filters.

Pour plus d’informations, consultez ce billet de blogFor more information, see this blog post.

Considérations et limitationsConsiderations and limitations

  • Les valeurs forceEndTimestamp, presentationWindowDuration et liveBackoffDuration ne doivent pas être définies pour un filtre de vidéo à la demande (VOD).The values for forceEndTimestamp, presentationWindowDuration, and liveBackoffDuration shouldn't be set for a VOD filter. Elles sont uniquement utilisées pour les scénarios de filtre en direct.They're used only for live filter scenarios.

  • Un manifeste dynamique fonctionne dans les limites d'un groupe d'images (GOP - images clés), par conséquent, le découpage est précis au niveau du GOP.A dynamic manifest operates in GOP boundaries (key frames), so trimming has GOP accuracy.

  • Vous pouvez utiliser le même nom pour les filtres de compte et d'élément multimédia.You can use the same filter name for account and asset filters. Les filtres d'élément multimédia ont une priorité plus élevée et remplacent les filtres de compte.Asset filters have higher precedence and will override account filters.

  • Si vous mettez à jour un filtre, 2 minutes peuvent être nécessaires pour que le point de terminaison de streaming actualise les règles.If you update a filter, it can take up to 2 minutes for the streaming endpoint to refresh the rules. Si vous avez utilisé des filtres pour servir le contenu (avant de mettre le contenu en cache dans des proxys et des caches CDN), la mise à jour de ces filtres peut entraîner des défaillances du lecteur.If you used filters to serve the content (and you cached the content in proxies and CDN caches), updating these filters can result in player failures. Nous vous recommandons de vider le cache après la mise à jour du filtre.We recommend that you clear the cache after updating the filter. Si cela s'avère impossible, envisagez d'utiliser un autre filtre.If this option isn't possible, consider using a different filter.

  • Les clients doivent télécharger manuellement le manifeste et analyser l'heure de début et l'échelle de temps exacts.Customers need to manually download the manifest and parse the exact start time stamp and time scale.

    • Pour déterminer les propriétés des pistes d'un élément multimédia, récupérez et examinez le fichier manifeste.To determine properties of the tracks in an asset, get and examine the manifest file.
    • Pour définir les propriétés d'horodatage du filtre d'élément multimédia, la formule est la suivante :The formula to set the asset filter time-stamp properties is:
      startTimestamp = <heure de début dans le manifeste> + <heure de début prévue du filtre en secondes> * échelle de tempsstartTimestamp = <start time in the manifest> + <expected filter start time in seconds> * timescale

Étapes suivantesNext steps

Les articles suivants expliquent comment créer des filtres par programmation :The following articles show how to create filters programmatically: