Gérez les modèles de snapshots à l'aide du SDK ApsaraVideo VOD pour Python. Les exemples présentés sur cette page utilisent le package aliyunsdkvod pour créer, modifier, interroger et supprimer des modèles de snapshots.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Python 3.x installé
Le package
aliyunsdkvodinstalléUne paire AccessKey disposant des autorisations ApsaraVideo VOD
Un client VOD initialisé. Pour plus d'informations, consultez la rubrique Initialisation
Tous les exemples de cette page initialisent le client en appelant la fonction init_vod_client() . Pour consulter l'implémentation, reportez-vous au guide d'initialisation mentionné ci-dessus.
Remarques relatives à l'utilisation
Tous les exemples s'authentifient à l'aide d'une paire AccessKey.
Pour obtenir des détails sur les paramètres de requête et de réponse, consultez la référence API dans OpenAPI Explorer. Cliquez sur API Documentation dans la barre de navigation supérieure pour plus de détails.
Pour obtenir des exemples de code pour d'autres opérations API, ouvrez OpenAPI Explorer, sélectionnez une opération dans le volet de navigation de gauche, spécifiez les paramètres dans l'onglet Parameters, cliquez sur Initiate Call, puis téléchargez le code depuis l'onglet SDK Sample Code.
Paramètres de configuration des snapshots
Les exemples de création et de modification partagent la même structure de configuration. Les tableaux suivants décrivent chaque paramètre.
SnapshotConfig
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
Count |
Long | Oui | Le nombre de snapshots à capturer. | 50 |
Interval |
Long | Oui | L'intervalle entre les captures de snapshots, en secondes. Une valeur de 0 indique que les snapshots sont capturés à intervalles réguliers en fonction de la durée de la vidéo et de la valeur de Count. | 1 |
SpecifiedOffsetTime |
Long | Oui | L'heure de début de la capture des snapshots, en millisecondes. | 0 |
Width |
Integer | Non | La largeur du snapshot, en pixels. Valeurs valides : [8, 4096]. Valeur par défaut : la largeur de la vidéo source. | 200 |
Height |
Integer | Non | La hauteur du snapshot, en pixels. Valeurs valides : [8, 4096]. Valeur par défaut : la hauteur de la vidéo source. | 200 |
FrameType |
String | Oui | Le type d'image pour les snapshots. Valeurs valides : intra (image clé), normal (image normale). |
"normal" |
TemplateConfig
| Parameter | Type | Description | Valid values |
|---|---|---|---|
SnapshotConfig |
Object | L'objet de configuration du snapshot. | Voir le tableau ci-dessus |
SnapshotType |
String | Le type de snapshot. | NormalSnapshot, SpriteSnapshot |
SpriteSnapshotConfig (facultatif)
Pour créer un modèle de snapshot sprite, ajoutez SpriteSnapshotConfig à l'intérieur de SnapshotConfig et définissez SnapshotType sur SpriteSnapshot.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
CellWidth |
String | Non | La largeur de chaque petite image dans le sprite, en pixels. Valeur par défaut : la largeur d'un snapshot normal. | "120" |
CellHeight |
String | Non | La hauteur de chaque petite image dans le sprite, en pixels. Valeur par défaut : la hauteur d'un snapshot normal. | "68" |
Columns |
String | Oui | Le nombre de colonnes de petites images. Valeurs valides : [1, 10000]. | "3" |
Lines |
String | Oui | Le nombre de lignes de petites images. Valeurs valides : [1, 10000]. | "10" |
Padding |
String | Oui | Le remplissage de chaque petite image, en pixels. | "20" |
Margin |
String | Oui | La marge de chaque petite image, en pixels. | "50" |
KeepCellPic |
String | Oui | Indique s'il faut conserver les images individuelles des cellules. Valeurs valides : keep (conserver), delete (supprimer). |
"keep" |
Color |
String | Oui | La couleur d'arrière-plan de l'image sprite. Pour plus d'informations, consultez la rubrique Color settings. La définition de la couleur à l'aide de valeurs RGB n'est pas prise en charge. | "tomato" |
Créer un modèle de snapshot
Appelez AddVodTemplate pour créer un modèle de snapshot. Définissez TemplateType sur Snapshot.
Pour plus de détails sur l'API, consultez la documentation AddVodTemplate.
Modèle de snapshot normal
from aliyunsdkvod.request.v20170321 import AddVodTemplateRequest
import json
import traceback
def add_vod_template(clt):
request = AddVodTemplateRequest.AddVodTemplateRequest()
# Template name
request.set_Name('Sample Snapshot Template')
# Template type: must be "Snapshot"
request.set_TemplateType('Snapshot')
# Snapshot configuration
snapshotConfig = {'Count': 50, 'Interval': 1, 'SpecifiedOffsetTime': 0, 'Width': 200, 'Height': 200,
'FrameType': 'normal'}
templateConfig = {'SnapshotConfig': snapshotConfig, 'SnapshotType': 'NormalSnapshot'}
request.set_TemplateConfig(json.dumps(templateConfig))
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
template = add_vod_template(clt)
# The response contains the template ID
print(template['VodTemplateId'])
print(json.dumps(template, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Modèle de snapshot sprite
Pour créer un modèle de snapshot sprite, ajoutez SpriteSnapshotConfig à la configuration du snapshot et définissez SnapshotType sur SpriteSnapshot :
# Sprite snapshot configuration (includes normal snapshot config)
snapshotConfig = {'Count': 50, 'Interval': 1, 'SpecifiedOffsetTime': 0, 'Width': 200, 'Height': 200,
'FrameType': 'normal'}
# Add sprite-specific settings
spriteSnapshotConfig = {'CellWidth': 120, 'CellHeight': 68, 'Columns': 3, 'Lines': 10, 'Padding': 20,
'Margin': 50, 'KeepCellPic': 'keep', 'Color': 'tomato'}
snapshotConfig['SpriteSnapshotConfig'] = spriteSnapshotConfig
templateConfig = {'SnapshotConfig': snapshotConfig, 'SnapshotType': 'SpriteSnapshot'}
Remplacez les variables snapshotConfig et templateConfig dans l'exemple de snapshot normal ci-dessus pour créer un modèle de snapshot sprite.
Modifier un modèle de snapshot
Appelez UpdateVodTemplate pour mettre à jour un modèle de snapshot existant. Spécifiez l'ID du modèle avec VodTemplateId.
Pour plus de détails sur l'API, consultez la documentation UpdateVodTemplate.
from aliyunsdkvod.request.v20170321 import UpdateVodTemplateRequest
import json
import traceback
def update_vod_template(clt):
request = UpdateVodTemplateRequest.UpdateVodTemplateRequest()
# Specify the template to update
request.set_VodTemplateId('<templateId>')
# Update the template name
request.set_Name('New Snapshot Template Name')
# Update the snapshot configuration
snapshotConfig = {'Count': 50, 'Interval': 1, 'SpecifiedOffsetTime': 0, 'Width': 200, 'Height': 200,
'FrameType': 'normal'}
templateConfig = {'SnapshotConfig': snapshotConfig, 'SnapshotType': 'NormalSnapshot'}
request.set_TemplateConfig(json.dumps(templateConfig))
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
template = update_vod_template(clt)
print(json.dumps(template, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Remplacez <templateId> par l'ID réel du modèle renvoyé lors de sa création.
Interroger des modèles de snapshots
ApsaraVideo VOD propose deux opérations d'interrogation :
GetVodTemplate : Récupère un seul modèle par ID. Consultez la documentation GetVodTemplate.
ListVodTemplate : Répertorie tous les modèles d'un type donné. Consultez la documentation ListVodTemplate.
Interroger un seul modèle
from aliyunsdkvod.request.v20170321 import GetVodTemplateRequest
import json
import traceback
def get_vod_template(clt):
request = GetVodTemplateRequest.GetVodTemplateRequest()
request.set_VodTemplateId('<templateId>')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
template = get_vod_template(clt)
print(json.dumps(template, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Répertorier tous les modèles de snapshots
from aliyunsdkvod.request.v20170321 import ListVodTemplateRequest
import json
import traceback
def list_vod_template(clt):
request = ListVodTemplateRequest.ListVodTemplateRequest()
# Filter by template type
request.set_TemplateType('Snapshot')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
templates = list_vod_template(clt)
print(json.dumps(templates, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Supprimer un modèle de snapshot
Appelez DeleteVodTemplate pour supprimer un modèle de snapshot par ID.
Pour plus de détails sur l'API, consultez la documentation DeleteVodTemplate.
from aliyunsdkvod.request.v20170321 import DeleteVodTemplateRequest
import json
import traceback
def delete_vod_template(clt):
request = DeleteVodTemplateRequest.DeleteVodTemplateRequest()
request.set_VodTemplateId('<templateId>')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
result = delete_vod_template(clt)
print(json.dumps(result, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Références
Initialisation : Configurez le client VOD
OpenAPI Explorer : Parcourez et testez d'autres opérations API ApsaraVideo VOD
Paramètres de traitement multimédia : Descriptions détaillées des paramètres pour les modèles de snapshots