Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour se connecter à l'interface cloud afin de réaliser le transcodage et l'édition vidéo

Comment utiliser Python pour se connecter à l'interface cloud afin de réaliser le transcodage et l'édition vidéo

王林
王林original
2023-07-06 08:48:0611201parcourir

Comment utiliser Python pour se connecter à l'interface Youpaiyun afin de réaliser le transcodage et le montage vidéo

Résumé : Youpaiyun est une puissante plate-forme de stockage cloud qui fournit de riches fonctions de traitement multimédia. Cet article explique comment utiliser Python pour se connecter à l'interface API de Youpaiyun afin d'implémenter les fonctions de transcodage et d'édition vidéo. Les contenus spécifiques incluent la définition de clés API, le téléchargement de fichiers vidéo, le lancement de tâches de transcodage, l'interrogation de l'état des tâches, le téléchargement de fichiers vidéo transcodés, etc.

  1. Définir la clé API

Avant d'utiliser l'interface API de Youpaiyun, nous devons créer un compte sur le site officiel de Youpaiyun et créer un espace de stockage. Ensuite, connectez-vous au compte, entrez dans la console, recherchez « Gestion des clés » dans la barre de navigation de gauche et générez une clé API. Enregistrez la clé API localement pour le code Python ultérieur.

  1. Installez les bibliothèques nécessaires

Pour utiliser Python pour vous connecter à l'interface cloud, nous devons installer les bibliothèques associées, y compris les requêtes et json.

pip install requests
pip install json
  1. Télécharger des fichiers vidéo

À l'aide de l'interface API de Youpaiyun, vous devez d'abord télécharger le fichier vidéo sur l'espace de stockage de Youpaiyun. En supposant que le fichier vidéo que nous souhaitons télécharger s'appelle "example.mp4", le code Python est le suivant :

import requests

def upload_video_file(api_key, api_secret, bucket_name, local_file_path):
    url = f'https://{bucket_name}.video.upyun.com/{local_file_path}'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode()
    }
    with open(local_file_path, 'rb') as file:
        data = file.read()
    response = requests.put(url, headers=headers, data=data)
    if response.status_code == 200:
        print("视频文件上传成功!")
    else:
        print("视频文件上传失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
local_file_path = 'example.mp4'

upload_video_file(api_key, api_secret, bucket_name, local_file_path)

Dans le code, nous utilisons la bibliothèque de requêtes pour envoyer une requête PUT pour télécharger le fichier vidéo sur l'espace de stockage de Youpaiyun. . Nous devons définir le champ Autorisation dans l'en-tête de la demande sur la clé API. Une fois le téléchargement réussi, le code d'état 200 sera renvoyé.

  1. Lancer une tâche de transcodage

Après avoir téléchargé le fichier vidéo, nous pouvons lancer une tâche de transcodage pour transcoder la vidéo originale dans différents formats et résolutions. Youpaiyun fournit une multitude de paramètres de transcodage, qui peuvent être définis en fonction de besoins spécifiques. Voici un exemple de code pour transcoder une vidéo au format MP4 avec une résolution de 720p :

import requests

def transcode_video(api_key, api_secret, bucket_name, local_file_name, target_file_format, target_resolution):
    url = f'https://{bucket_name}.video.upyun.com/transcoding/'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode(),
        'X-Transcode-Target': target_file_format,
        'X-Transcode-Resolution': target_resolution
    }
    data = {
        'source': local_file_name
    }
    response = requests.post(url, headers=headers, data=data)
    if response.status_code == 201:
        task_id = response.json()['task_id']
        print(f"转码任务已创建,任务ID为{task_id}")
    else:
        print("转码任务创建失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
local_file_name = 'example.mp4'
target_file_format = 'mp4'
target_resolution = '720p'

transcode_video(api_key, api_secret, bucket_name, local_file_name, target_file_format, target_resolution)

Dans le code, nous utilisons la bibliothèque de requêtes pour envoyer une requête POST afin de lancer la tâche de transcodage. Nous devons définir le champ Autorisation dans l'en-tête de la demande sur la clé API et spécifier le format et la résolution du fichier cible dans l'en-tête de la demande. Une fois le téléchargement réussi, le code d'état 201 sera renvoyé et l'ID de tâche sera également renvoyé.

  1. Requête de l'état de la tâche

Après avoir lancé une tâche de transcodage, nous pouvons utiliser l'interface API de Youpaiyun pour interroger l'état de la tâche. Voici un exemple de code :

import requests

def query_task_status(api_key, api_secret, bucket_name, task_id):
    url = f'https://{bucket_name}.video.upyun.com/tasks/{task_id}/'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode()
    }
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        task_status = response.json()['status']
        print(f"任务状态为{task_status}")
    else:
        print("查询任务状态失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
task_id = 'your_task_id'

query_task_status(api_key, api_secret, bucket_name, task_id)

Dans le code, nous utilisons la bibliothèque de requêtes pour envoyer une requête GET afin d'interroger l'état de la tâche. Nous devons définir le champ Autorisation dans l'en-tête de la demande sur la clé API. Une fois la requête réussie, le code d'état 200 sera renvoyé et l'état de la tâche sera renvoyé.

  1. Téléchargez le fichier vidéo transcodé

Une fois la tâche de transcodage vidéo terminée, nous pouvons utiliser l'interface API de Youpaiyun pour télécharger le fichier vidéo transcodé. Voici un exemple de code :

import requests

def download_transcoded_video(api_key, api_secret, bucket_name, task_id, local_file_name):
    url = f'https://{bucket_name}.video.upyun.com/tasks/{task_id}/download'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode()
    }
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        with open(local_file_name, 'wb') as file:
            file.write(response.content)
        print("视频文件下载成功!")
    else:
        print("视频文件下载失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
task_id = 'your_task_id'
local_file_name = 'output.mp4'

download_transcoded_video(api_key, api_secret, bucket_name, task_id, local_file_name)

Dans le code, nous utilisons la bibliothèque de requêtes pour envoyer une requête GET afin de télécharger le fichier vidéo transcodé. Nous devons définir le champ Autorisation dans l'en-tête de la demande sur la clé API. Une fois le téléchargement réussi, le code d'état 200 sera renvoyé et le fichier sera enregistré localement.

Cet article explique comment utiliser Python pour se connecter à l'interface Youpai Cloud afin d'implémenter les fonctions de transcodage et d'édition vidéo. En définissant des clés API, en téléchargeant des fichiers vidéo, en lançant des tâches de transcodage, en interrogeant l'état des tâches et en téléchargeant des fichiers vidéo transcodés, nous pouvons effectuer le traitement vidéo en Python très facilement. Ceci est très utile pour les scénarios nécessitant un traitement par lots de vidéos, tels que les sites Web vidéo, les plates-formes vidéo courtes, l'éducation en ligne et d'autres domaines. J'espère que cet article pourra aider les lecteurs à mieux utiliser les fonctions de Youpaiyun et à ajouter davantage de capacités de traitement multimédia à leurs projets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn