視頻轉碼是指將已壓縮編碼的視頻碼流轉換為另一種視頻碼流,以適應不同的網絡帶寬和終端處理能力。本文介紹如何使用異步的方式進行視頻轉碼。
前提條件
已綁定IMM。具體步驟,請參見綁定IMM。
示例代碼
以下代碼用于使用異步方式進行視頻轉碼。
# -*- coding: utf-8 -*-
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 指定Bucket名稱。
bucket_name = 'examplebucket'
# 指定原視頻文件名稱。
source_key = 'srcexample.mp4'
# 指定處理后視頻文件名稱。
target_key = 'destexample.mp4'
# 填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應的Region信息,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數
region = "cn-hangzhou"
# 指定Bucket實例,所有文件相關的方法都需要通過Bucket實例來調用。
bucket = oss2.Bucket(auth, endpoint, bucket_name, region=region)
# 對srcexample.mp4進行視頻轉碼。轉碼輸出媒體文件容器為mp4,視頻流格式為H.265,分辨率為1920x1080,幀率為30 fps,視頻碼率為2 Mbps;音頻編碼格式為aac,音頻碼率為100 Kbps,并禁用字幕流。
style = 'video/convert,f_mp4,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1'
process = "{0}|sys/saveas,o_{1},b_{2}".format(style,
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_key))).replace('=', ''),
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(bucket.bucket_name))).replace('=', ''))
# 調用異步流媒體處理接口。
result = bucket.async_process_object(source_key, process)
print(result.status)
相關文檔
關于視頻轉碼功能的更多信息,請參見視頻轉碼。
文檔內容是否對您有幫助?