ホームページ >バックエンド開発 >Python チュートリアル >Python を使用してクラウド インターフェイスに接続し、ビデオのトランスコーディングと編集を実現する方法

Python を使用してクラウド インターフェイスに接続し、ビデオのトランスコーディングと編集を実現する方法

王林
王林オリジナル
2023-07-06 08:48:0611240ブラウズ

Python を使用して Youpaiyun インターフェイスに接続し、ビデオのトランスコーディングと編集を実現する方法

要約: Youpaiyun は、豊富なマルチメディア処理機能を提供する強力なクラウド ストレージ プラットフォームです。この記事では、Python を使用して Youpaiyun の API インターフェイスに接続し、ビデオのトランスコーディングと編集機能を実装する方法を紹介します。具体的な内容には、API キーの設定、ビデオ ファイルのアップロード、トランスコーディング タスクの開始、タスク ステータスのクエリ、トランスコードされたビデオ ファイルのダウンロードなどが含まれます。

  1. API キーの設定

Youpaiyun の API インターフェースを使用する前に、Youpaiyun の公式 Web サイトでアカウントを登録し、ストレージスペースを作成する必要があります。次に、アカウントにログインし、コンソールに入り、左側のナビゲーション バーで「キー管理」を見つけて、API キーを生成します。後続の Python コードのために API キーをローカルに保存します。

  1. 必要なライブラリをインストールする

Python を使用してクラウド インターフェイスに接続するには、リクエストや json などの関連ライブラリをインストールする必要があります。

pip install requests
pip install json
  1. ビデオ ファイルのアップロード

Youpaiyun の API インターフェイスを使用するには、まずビデオ ファイルを Youpaiyun のストレージ スペースにアップロードする必要があります。アップロードするビデオ ファイルの名前が「example.mp4」であると仮定すると、Python コードは次のとおりです。

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)

コードでは、リクエスト ライブラリを使用して、ビデオ ファイルをアップロードするための PUT リクエストを送信します。ヨウパイユンの保管場所へ。リクエストヘッダーの Authorization フィールドを API キーに設定する必要があります。アップロードが成功すると、ステータス コード 200 が返されます。

  1. トランスコーディング タスクの開始

ビデオ ファイルをアップロードした後、トランスコーディング タスクを開始して、元のビデオをさまざまな形式と解像度にトランスコードできます。 Youpaiyun は、特定のニーズに応じて設定できる豊富なトランスコーディング パラメータを提供します。以下は、解像度 720p の MP4 形式にビデオをトランスコードするサンプル コードです。

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)

コードでは、リクエスト ライブラリを使用して POST リクエストを送信し、トランスコード タスクを開始します。リクエスト ヘッダーの Authorization フィールドを API キーに設定し、リクエスト ヘッダーでターゲット ファイル形式と解像度を指定する必要があります。アップロードが成功すると、ステータス コード 201 が返され、タスク ID も返されます。

  1. タスク ステータスのクエリ

トランスコーディング タスクを開始した後、Youpaiyun の API インターフェイスを使用してタスクのステータスをクエリできます。以下はサンプル コードです。

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)

このコードでは、リクエスト ライブラリを使用して GET リクエストを送信し、タスクのステータスをクエリします。リクエストヘッダーの Authorization フィールドを API キーに設定する必要があります。クエリが成功すると、ステータス コード 200 が返され、タスクのステータスが返されます。

  1. トランスコードされたビデオ ファイルをダウンロードする

ビデオのトランスコード タスクが完了したら、Youpaiyun の API インターフェイスを使用して、トランスコードされたビデオ ファイルをダウンロードできます。以下はサンプル コードです:

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)

コードでは、リクエスト ライブラリを使用して、トランスコードされたビデオ ファイルをダウンロードするための GET リクエストを送信します。リクエストヘッダーの Authorization フィールドを API キーに設定する必要があります。ダウンロードが成功すると、ステータス コード 200 が返され、ファイルはローカルに保存されます。

この記事では、Python を使用して Youpai Cloud インターフェイスに接続し、ビデオのトランスコーディングと編集機能を実装する方法を紹介します。 API キーの設定、ビデオ ファイルのアップロード、トランスコーディング タスクの開始、タスク ステータスのクエリ、トランスコードされたビデオ ファイルのダウンロードを行うことで、Python でビデオ処理を非常に簡単に実行できます。これは、ビデオ Web サイト、短いビデオ プラットフォーム、オンライン教育、その他の分野など、ビデオのバッチ処理が必要なシナリオに非常に役立ちます。この記事が、読者が Youpaiyun の機能をより有効に活用し、プロジェクトにマルチメディア処理機能を追加するのに役立つことを願っています。

以上がPython を使用してクラウド インターフェイスに接続し、ビデオのトランスコーディングと編集を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。