Cette rubrique explique comment générer des sprites vidéo à l'aide de la fonctionnalité de transcodage multimédia d'Intelligent Media Management (IMM).
Présentation
La génération de sprites vidéo consiste à combiner plusieurs images clés extraites d'une vidéo en une seule image, appelée sprite. Cette technique offre un aperçu rapide des différentes scènes d'une vidéo, permettant aux utilisateurs de parcourir et de sélectionner le contenu plus efficacement.

Cas d'utilisation
Aperçu vidéo et navigation dans le contenu : Les sprites offrent un aperçu rapide du contenu vidéo, permettant aux utilisateurs de parcourir les images clés et d'accéder facilement aux parties qui les intéressent.
Listes de lecture vidéo : Utilisez les sprites pour afficher les vignettes de chaque vidéo dans une liste de lecture. Cela crée une interface plus épurée et visuellement attrayante, améliorant ainsi l'expérience utilisateur.
Partage sur les réseaux sociaux : Lorsque vous partagez des vidéos sur les réseaux sociaux, un sprite peut servir d'image de couverture pour aider les spectateurs à comprendre rapidement le contenu de la vidéo, augmentant ainsi les taux de clics et le nombre de vues.
Diffusions en direct et rediffusions d'événements : Pour les événements en direct ou le contenu enregistré, les sprites aident les spectateurs à trouver rapidement les temps forts, facilitant ainsi le visionnage des rediffusions.
Formats audio et vidéo pris en charge
|**Catégorie**
|
**Format**
| | --- | --- | |
Audio
|
Tous les formats grand public, tels que AAC, MP3, WAV, FLAC, WMA, AC3 et OPUS.
| |
Vidéo
|
Tous les formats grand public, tels que MP4, MPEG-TS, MKV, MOV, AVI, FLV, M3U8, WebM, WMV, RM et VOB.
|
Procédure
Prérequis
Créez un AccessKey. Pour plus d'informations, consultez Créer un AccessKey.
Activez Object Storage Service (OSS) et créez un bucket. Pour plus d'informations, consultez Créer un bucket.
Activez Intelligent Media Management (IMM). Pour plus d'informations, consultez Activer IMM.
-
Créez un projet dans la console IMM. Pour plus d'informations, consultez Créer un projet.
RemarqueVous pouvez également créer un projet en appelant une opération API. Pour plus d'informations, consultez Créer un projet.
Appelez l'opération ListProjects pour répertorier tous les projets créés dans une région spécifiée.
Étape 1 : Télécharger un fichier
Utilisez la console OSS pour télécharger un fichier multimédia dans un bucket situé dans la même région que votre projet IMM.
Sur la page File Management du bucket, cliquez sur Upload File. Dans le panneau Upload File, cliquez sur Scan for Files pour sélectionner le fichier multimédia à télécharger. Conservez le paramètre ACL par défaut Inherit from Bucket, puis cliquez sur Upload File pour terminer le téléchargement. La taille maximale d'un fichier téléchargé via la console est de 5 Go. Pour télécharger des fichiers plus volumineux, utilisez ossutil, le SDK OSS ou l'API OSS.
Étape 2 : Générer des sprites vidéo
Appelez l'opération CreateMediaConvertTask pour créer une tâche de génération de sprite vidéo.
Exemples de paramètres
Le processus de génération d'un sprite vidéo comprend généralement les étapes suivantes :
Extraction d'images : Le service extrait les images clés spécifiées de la vidéo.
Traitement d'image : Le service redimensionne et convertit les images extraites pour assurer la cohérence et répondre aux exigences de sortie.
Génération du sprite : Le service organise les images traitées dans une grille et les fusionne en une seule image pour former le sprite.
Les exemples suivants utilisent le projet IMM test-project et le fichier oss://test-bucket/video-demo/sample-video.mov pour générer des sprites vidéo.
Pour plus d'informations sur les fonctionnalités de traitement multimédia et leur utilisation, consultez Transcodage multimédia.
Utilisez OpenAPI Explorer pour traiter les fichiers vidéo et afficher des exemples de code SDK.
Ne définissez pas les paramètres
Target.URIetTarget.Containerpour la génération de sprites vidéo.La génération de sprites vidéo peut produire plusieurs images de sprite. Le nombre exact dépend du nombre de sous-images et de la configuration des lignes et colonnes du sprite.
Définissez l'URI de sortie du sprite sur
oss://bucket/objectPrefix-{index}.{autoext}. Si vous n'incluez pas la variable {index}, les images de sortie risquent de s'écraser mutuellement. Pour plus d'informations sur les variables, consultez Modèle TargetURI.
Générer un sprite à partir de la vidéo complète
Cet exemple génère un sprite en capturant une image toutes les deux secondes sur l'intégralité de la vidéo. Chaque sprite contient une grille de sous-images de 3x3, et chaque sous-image a une résolution de 200x150 pixels.

Informations de transcodage
Format du sprite : jpg
Intervalle de capture d'images : 2 secondes
Disposition des sous-images du sprite : 3x3
Résolution des sous-images : 200x150
Remplissage entre les sous-images (Pad) : 0
Marge entre les sous-images et les bords du sprite (Margin) : 0
Méthode de mise à l'échelle des sous-images : Redimensionner et recadrer. Pour plus d'informations, consultez méthode de mise à l'échelle.
Chemin du fichier de sortie :
oss://test-bucket/video-demo/sprites-{index}.{autoext}Notification de fin : Envoyer un message MNS au sujet MNS test-mns-topic.
Pour un exemple de SDK, consultez OpenAPI Explorer. Les paramètres d'exemple sont préremplis. Vous pouvez les modifier selon vos besoins avant le débogage.
Paramètres de requête
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/sample-video.mov"
}
],
"Targets": [
{
"Image": {
"Sprites": [
{
"Format": "jpg",
"Interval": 2,
"Margin": 0,
"Pad": 0,
"ScaleHeight": 150,
"ScaleType": "crop",
"ScaleWidth": 200,
"TileHeight": 3,
"TileWidth": 3,
"URI": "oss://test-bucket/video-demo/sprites-{index}.{autoext}"
}
]
}
}
]
}
Générer un sprite à partir d'une plage horaire spécifique
Cet exemple génère un sprite en capturant une image toutes les deux secondes, de la 5e à la 30e seconde de la vidéo. Chaque sprite contient une grille de sous-images de 3x5, et les dimensions de chaque sous-image sont mises à l'échelle à 1/10 de celles de la vidéo source.

Informations de transcodage
Format du sprite : jpg
Heure de début de capture : 5 secondes
Durée de capture : 25 secondes
Intervalle de capture d'images : 2 secondes
Disposition des sous-images du sprite : 3x5
Résolution des sous-images : 1/10 de la vidéo source
Remplissage entre les sous-images (Pad) : 4
Marge entre les sous-images et les bords du sprite (Margin) : 5
Méthode de mise à l'échelle des sous-images : Ajuster à la taille sans bandes noires. Pour plus d'informations, consultez méthode de mise à l'échelle.
Chemin du fichier de sortie :
oss://test-bucket/video-demo/sprites-{index}.{autoext}Notification de fin : Envoyer un message MNS au sujet MNS test-mns-topic.
Pour un exemple de SDK, consultez OpenAPI Explorer. Les paramètres d'exemple sont préremplis. Vous pouvez les modifier selon vos besoins avant le débogage.
Paramètres de requête
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"Duration": 25,
"StartTime": 5,
"URI": "oss://test-bucket/video-demo/sample-video.mov"
}
],
"Targets": [
{
"Image": {
"Sprites": [
{
"Format": "jpg",
"Interval": 2,
"Margin": 5,
"Pad": 4,
"ScaleHeight": 0.1,
"ScaleType": "fit",
"ScaleWidth": 0.1,
"TileHeight": 5,
"TileWidth": 3,
"URI": "oss://test-bucket/video-demo/sprites-{index}.{autoext}"
}
]
}
}
]
}
Générer un sprite avec des images espacées uniformément
Cet exemple montre comment utiliser l'opération DetectMediaMeta pour obtenir la durée de la vidéo, puis générer un sprite avec un nombre spécifique d'images espacées uniformément.
Étape 1 : Obtenir la durée de la vidéo
Appelez l'opération DetectMediaMeta pour obtenir la durée de la vidéo. Pour un exemple de SDK, consultez OpenAPI Explorer. Les paramètres d'exemple sont préremplis. Vous pouvez les modifier selon vos besoins avant le débogage.
Paramètres de requête
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/video-demo/sample-video.mov"
}
Paramètres de réponse
{
"Addresses": [],
"AudioStreams": [],
"Bitrate": 45521134,
"Duration": 31.64,
"FormatLongName": "QuickTime / MOV",
"FormatName": "mov,mp4,m4a,3gp,3g2,mj2",
"ProduceTime": "2014-12-19T14:20:38Z",
"RequestId": "94A9AF46-B403-51D5-988F-D9B4939DEF39",
"Size": 180036088,
"StreamCount": 2,
"Subtitles": [],
"VideoHeight": 1080,
"VideoStreams": [
{
"AverageFrameRate": "25/1",
"BitDepth": 8,
"Bitrate": 45517646,
"CodecLongName": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"CodecName": "h264",
"CodecTag": "0x31637661",
"CodecTagString": "avc1",
"ColorPrimaries": "bt709",
"ColorRange": "tv",
"ColorSpace": "bt709",
"ColorTransfer": "bt709",
"Duration": 31.64,
"FrameCount": 791,
"FrameRate": "25/1",
"HasBFrames": 1,
"Height": 1080,
"Language": "eng",
"Level": 50,
"PixelFormat": "yuv420p",
"Profile": "Main",
"TimeBase": "1/2500",
"Width": 1920
}
],
"VideoWidth": 1920
}
Étape 2 : Générer le sprite avec des images espacées uniformément
La durée de la vidéo est de 31,64 secondes. Pour capturer 9 sous-images espacées uniformément, l'intervalle de capture d'images est calculé comme suit : 31,64 / (9 - 1) = 3,955 secondes. Le sprite présente une disposition 3x3, et les dimensions de chaque sous-image sont mises à l'échelle à 1/10 de celles de la vidéo source.
Informations de transcodage
Format du sprite : jpg
Intervalle de capture d'images : 3,955 secondes
Disposition des sous-images du sprite : 3x3
Résolution des sous-images : 1/10 de la vidéo source
Remplissage entre les sous-images (Pad) : 4
Marge entre les sous-images et les bords du sprite (Margin) : 5
Méthode de mise à l'échelle des sous-images : Ajuster à la taille sans bandes noires. Pour plus d'informations, consultez méthode de mise à l'échelle.
Chemin du fichier de sortie :
oss://test-bucket/video-demo/sprites-{index}.{autoext}Notification de fin : Envoyer un message MNS au sujet MNS test-mns-topic.
Pour un exemple de SDK, consultez OpenAPI Explorer. Les paramètres d'exemple sont préremplis. Vous pouvez les modifier selon vos besoins avant le débogage.
Paramètres de requête
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/sample-video.mov"
}
],
"Targets": [
{
"Image": {
"Sprites": [
{
"Format": "jpg",
"Interval": 3.955,
"Margin": 5,
"Pad": 4,
"ScaleHeight": 0.1,
"ScaleType": "fit",
"ScaleWidth": 0.1,
"TileHeight": 3,
"TileWidth": 3,
"URI": "oss://test-bucket/video-demo/sprites-{index}.{autoext}"
}
]
}
}
]
}