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.
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.
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
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)
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.
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)
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.
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)
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.
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)
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!