Lorsque vous téléchargez une vidéo sur ApsaraVideo VOD pour la transcoder, le service nomme les fichiers de sortie selon des règles spécifiques. Le nom du fichier sert également de chemin d'accès relatif. Cette rubrique décrit les règles de nommage par défaut des fichiers transcodés et explique comment les personnaliser.
Définition du nom de fichier
Un nom de fichier se compose de chaînes variables et de chaînes fixes. Les chaînes variables sont des caractères génériques fournis par VOD que le système peut remplacer dynamiquement. Les chaînes fixes ne peuvent pas être remplacées dynamiquement.
Ces règles de nommage ne s'appliquent pas aux fichiers de sortie générés lors du packaging HTTP Live Streaming (HLS) et Dynamic Adaptive Streaming over HTTP (DASH).
-
Chaînes variables
Les chaînes variables, également appelées caractères génériques, servent d'espaces réservés pour des valeurs spécifiques. Si vous définissez un caractère générique, VOD récupère la valeur correspondante et l'utilise pour remplacer le caractère lors de la génération du nom du fichier transcodé. VOD prend en charge les caractères génériques suivants :
ID de la vidéo :
{MediaId}. Cela offre une unicité partielle, car une vidéo peut avoir plusieurs sorties de transcodage.ID de la tâche de transcodage :
{JobId}. Cela offre une unicité complète et permet d'identifier chaque fichier transcodé de manière unique.-
Marqueur de définition de lecture :
{PlayDefinition}. Il n'est pas unique.RemarqueLe marqueur de définition de lecture correspond à la valeur du champ
Definitionrenvoyée par l'opération GetPlayInfo. La valeur est une chaîne en minuscules.
-
Chaînes fixes
Les chaînes fixes peuvent représenter des informations métier spécifiques. Par exemple,
watermarkindique une sortie avec filigrane etencryptindique une sortie chiffrée. Dans les règles par défaut fournies par VOD, une sortie de transcodage chiffrée inclut le mot-clé encrypt-stream. Vous pouvez également utiliser des règles personnalisées pour configurer des chaînes fixes correspondant à vos attributs métier.Exemple : Dans
{MediaId}/{JobId}-watermark-sdet{MediaId}/encrypt-hd, les mots-cléswatermarketencryptindiquent respectivement la présence d'un filigrane et le chiffrement.
Unicité des noms de fichiers
Pour éviter l'écrasement des fichiers de sortie transcodés, le nom configuré pour chaque fichier doit être unique.
-
Exemple d'unicité :
{MediaId}/{JobId}.{MediaId}offre une unicité partielle et{JobId}offre une unicité globale. Cela garantit l'unicité du nom complet du fichier. -
Exemple de nom non unique :
{MediaId}/test.{MediaId}offre uniquement une unicité partielle ettestreprésente des informations métier. Si vous transcodez une vidéo en deux fichiers MP4 avec des paramètres différents (tels que la résolution et le débit), les deux fichiers de sortie auront le même nom. L'un écrasera l'autre et un seul fichier MP4 subsistera.
Règles par défaut
VOD fournit un ensemble de règles par défaut pour générer les noms des fichiers de sortie :
La chaîne aléatoire garantit l'unicité du nom du fichier de sortie de transcodage.
-
Sortie non chiffrée
Format :
{MediaId}/[Random string]-{PlayDefinition}Exemple :
99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd -
Sortie chiffrée
Format :
{MediaId}/[Random string]-{PlayDefinition}-encrypt-streamExemple :
99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-40023f3f33e648df975f4dfc4c-sd-encrypt-streamRemarqueLe mot-clé encrypt-stream indique que le fichier de sortie est chiffré. Cela s'applique uniquement au chiffrement HLS (chiffrement propriétaire et standard).
Règles personnalisées
Dans certains scénarios métier, vous souhaiterez peut-être réduire le temps de réponse global de la lecture. Pour ce faire, construisez directement l'adresse de lecture selon certaines règles. Par exemple, si la règle est {MediaId}/{PlayDefinition}, vous pouvez construire le chemin d'accès au fichier en utilisant le MediaId et différents marqueurs de définition sans appeler l'API de lecture pour récupérer la liste de lecture. VOD vous permet de personnaliser les règles de nommage des fichiers de transcodage et génère ensuite les noms de fichiers selon vos règles personnalisées.
Limites des règles
Les noms de fichiers de transcodage personnalisés ne peuvent contenir que des caractères génériques spécifiques (chaînes variables), des lettres, des chiffres, des traits d'union (-) et des traits de soulignement (_). La longueur totale d'une règle personnalisée ne peut pas dépasser 128 caractères.
Les noms de fichiers de transcodage personnalisés doivent commencer par le caractère générique {MediaId}. Cela garantit une unicité partielle et empêche les conflits entre les fichiers transcodés provenant de vidéos différentes.
-
N'incluez pas d'extension de fichier dans le nom personnalisé, car VOD l'ajoute automatiquement. Par exemple, si la règle de nommage est {MediaId}/{JobId}-watermark-{PlayDefinition} et que le format de sortie est mp4, VOD ajoute automatiquement l'extension .mp4 lors de la génération du nom de fichier.
Exemple :
99f4f18c560c4f35459ef71tr/1b1196c767003c3dba0543055-watermark-sd.mp4 Assurez-vous que vos règles personnalisées génèrent un nom unique pour chaque fichier transcodé afin d'éviter l'écrasement des fichiers.
Méthodes de configuration
Vous pouvez personnaliser les noms de fichiers de transcodage uniquement via l'API. Pour plus d'informations, consultez AddTranscodeTemplateGroup. Pour plus de détails sur le paramètre, reportez-vous au paramètre TranscodeFileRegular dans TranscodeTemplate.
Exemple de configuration
public static JSONArray buildTranscodeTemplateList() {
JSONObject transcodeTemplate = new JSONObject();
// Customize the output file name for transcoding.
transcodeTemplate.put("TranscodeFileRegular", "{MediaId}/{JobId}-watermark-{PlayDefinition}");
// Template name.
transcodeTemplate.put("TemplateName", "testtemplate");
// Definition.
transcodeTemplate.put("Definition", "LD");
......
// Configure parameters such as video transcoding, audio transcoding, and output format.
......
JSONArray transcodeTemplateList = new JSONArray();
transcodeTemplateList.add(transcodeTemplate);
return transcodeTemplateList;
}
Pour plus d'informations sur l'ajout d'un groupe de modèles de transcodage, consultez Transcoding templates.