Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan Python untuk menyambung ke antara muka awan untuk mencapai transkod dan penyuntingan video

Cara menggunakan Python untuk menyambung ke antara muka awan untuk mencapai transkod dan penyuntingan video

王林
Lepaskan: 2023-07-06 08:48:06
asal
11226 orang telah melayarinya

Cara menggunakan Python untuk menyambung ke antara muka Youpaiyun untuk mencapai transkod dan penyuntingan video

Abstrak: Youpaiyun ialah platform storan awan yang berkuasa yang menyediakan fungsi pemprosesan multimedia yang kaya. Artikel ini akan memperkenalkan cara menggunakan Python untuk menyambung ke antara muka API Youpaiyun untuk melaksanakan fungsi transkod dan penyuntingan video. Kandungan khusus termasuk menetapkan kunci API, memuat naik fail video, memulakan tugas transkod, menanya status tugas, memuat turun fail video yang ditranskodkan, dsb.

  1. Tetapkan kunci API

Sebelum menggunakan antara muka API Youpaiyun, kami perlu mendaftar akaun di tapak web rasmi Youpaiyun dan mencipta ruang storan. Kemudian, log masuk ke akaun, masukkan konsol, cari "Pengurusan Kunci" dalam bar navigasi kiri dan jana kunci API. Simpan kunci API secara setempat untuk kod Python seterusnya.

  1. Pasang perpustakaan yang diperlukan

Untuk menggunakan Python untuk menyambung ke antara muka awan, kami perlu memasang perpustakaan yang berkaitan, termasuk permintaan dan json.

pip install requests
pip install json
Salin selepas log masuk
  1. Muat naik fail video

Menggunakan antara muka API Youpaiyun, anda mesti memuat naik fail video dahulu ke ruang storan Youpaiyun. Dengan mengandaikan bahawa fail video yang ingin kami muat naik dinamakan "example.mp4", kod Python adalah seperti berikut:

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)
Salin selepas log masuk

Dalam kod tersebut, kami menggunakan perpustakaan permintaan untuk menghantar permintaan PUT untuk memuat naik fail video ke ruang storan Youpaiyun . Kita perlu menetapkan medan Kebenaran dalam pengepala permintaan kepada kunci API. Selepas muat naik berjaya, kod status 200 akan dikembalikan.

  1. Mulakan tugas transkoding

Selepas memuat naik fail video, kami boleh memulakan tugas transkod untuk menukar kod video asal ke dalam format dan resolusi yang berbeza. Youpaiyun menyediakan banyak parameter transcoding, yang boleh ditetapkan mengikut keperluan khusus. Berikut ialah contoh kod untuk menukar kod video kepada format MP4 dengan resolusi 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)
Salin selepas log masuk

Dalam kod, kami menggunakan perpustakaan permintaan untuk menghantar permintaan POST untuk memulakan tugas transkod. Kami perlu menetapkan medan Kebenaran dalam pengepala permintaan kepada kunci API dan menentukan format dan resolusi fail sasaran dalam pengepala permintaan. Selepas muat naik berjaya, kod status 201 akan dikembalikan dan ID tugasan juga akan dikembalikan.

  1. Soal status tugasan

Selepas memulakan tugas transkod, kami boleh menggunakan antara muka API Youpaiyun untuk menanyakan status tugasan. Berikut ialah contoh kod:

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)
Salin selepas log masuk

Dalam kod, kami menggunakan perpustakaan permintaan untuk menghantar permintaan GET untuk menanyakan status tugasan. Kita perlu menetapkan medan Kebenaran dalam pengepala permintaan kepada kunci API. Selepas pertanyaan berjaya, kod status 200 akan dikembalikan, dan status tugas akan dikembalikan.

  1. Muat turun fail video transkod

Selepas tugas transkod video selesai, kami boleh menggunakan antara muka API Youpaiyun untuk memuat turun fail video transkod. Berikut ialah contoh kod:

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)
Salin selepas log masuk

Dalam kod, kami menggunakan perpustakaan permintaan untuk menghantar permintaan GET untuk memuat turun fail video yang ditranskodkan. Kita perlu menetapkan medan Kebenaran dalam pengepala permintaan kepada kunci API. Selepas muat turun berjaya, kod status 200 akan dikembalikan dan fail akan disimpan secara setempat.

Artikel ini memperkenalkan cara menggunakan Python untuk menyambung ke antara muka Youpai Cloud untuk melaksanakan fungsi transkod dan penyuntingan video. Dengan menetapkan kunci API, memuat naik fail video, memulakan tugas transcoding, menanya status tugasan dan memuat turun fail video transkod, kami boleh melakukan pemprosesan video dalam Python dengan sangat mudah. Ini sangat berguna untuk senario yang memerlukan pemprosesan kumpulan video, seperti tapak web video, platform video pendek, pendidikan dalam talian dan bidang lain. Saya harap artikel ini dapat membantu pembaca menggunakan fungsi Youpaiyun dengan lebih baik dan menambah lebih banyak keupayaan pemprosesan multimedia pada projek mereka.

Atas ialah kandungan terperinci Cara menggunakan Python untuk menyambung ke antara muka awan untuk mencapai transkod dan penyuntingan video. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan