本篇文檔提供了Java SDK轉碼模板模組相關功能的API調用樣本。包含添加轉碼模板組、修改轉碼模板組、刪除轉碼模板組、查詢轉碼模板組、設定預設轉碼模板組等。
介面調用說明
本文提供的介面調用樣本均通過AccessKey初始化用戶端執行個體。
介面的參數解釋和返回欄位的詳細說明請訪問阿里雲OpenAPI門戶,在各介面右側的文檔頁簽查看。
本文僅提供部分複雜介面的程式碼範例,其餘介面的SDK程式碼範例,可以通過阿里雲OpenAPI門戶擷取。訪問阿里雲OpenAPI門戶,在介面的左側參數配置頁簽,填寫需要的參數資訊並發起調用後,在右側的SDK樣本頁簽,選擇SDK版本,選擇目標語言,查看並下載範例程式碼。
本文均以V1.0版本的SDK為例進行介面調用,如需擷取V2.0版本的SDK樣本,請在通過阿里雲OpenAPI門戶擷取SDK樣本時,指定到對應的SDK版本。
初始化用戶端
使用前請先初始化用戶端,請參見初始化。
添加轉碼模板組
調用AddTranscodeTemplateGroup介面,產生添加轉碼模板組的SDK樣本。
阿里雲OpenAPI門戶地址:AddTranscodeTemplateGroup。
調用樣本如下:
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.vod.model.v20170321.AddTranscodeTemplateGroupRequest;
import com.aliyuncs.vod.model.v20170321.AddTranscodeTemplateGroupResponse;
/**
* 讀取AccessKey資訊
*/
public static DefaultAcsClient initVodClient() throws ClientException {
// 點播服務接入地區
String regionId = "cn-shanghai";
// 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
// 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
// 本樣本通過從環境變數中讀取AccessKey,來實現API訪問的身分識別驗證。運行程式碼範例前,請配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
/**
* 添加轉碼模板組配置
*/
public static AddTranscodeTemplateGroupResponse addTranscodeTemplateGroup(DefaultAcsClient client) throws Exception {
AddTranscodeTemplateGroupRequest request = new AddTranscodeTemplateGroupRequest();
//轉碼模板ID
request.setName("grouptest");
request.setTranscodeTemplateList(buildTranscodeTemplateList().toJSONString());
return client.getAcsResponse(request);
}
/**
* 構建需要添加的轉碼模板配置資料
*
* @return
*/
public static JSONArray buildTranscodeTemplateList() {
JSONObject transcodeTemplate = new JSONObject();
//模板名稱
transcodeTemplate.put("TemplateName", "testtemplate");
//清晰度
transcodeTemplate.put("Definition", "LD");
//視頻流轉碼配置
JSONObject video = new JSONObject();
video.put("Width", 640);
video.put("Bitrate", 400);
video.put("Fps", 25);
video.put("Remove", false);
video.put("Codec", "H.264");
video.put("Gop", "250");
transcodeTemplate.put("Video", video);
//音頻流轉碼配置
JSONObject audio = new JSONObject();
audio.put("Codec", "AAC");
audio.put("Bitrate", "64");
audio.put("Channels", "2");
audio.put("Samplerate", "32000");
transcodeTemplate.put("Audio", audio);
//封裝容器
JSONObject container = new JSONObject();
container.put("Format", "mp4");
transcodeTemplate.put("Container", container);
//條件轉碼配置
JSONObject transconfig = new JSONObject();
transconfig.put("IsCheckReso", false);
transconfig.put("IsCheckResoFail", false);
transconfig.put("IsCheckVideoBitrate", false);
transconfig.put("IsCheckVideoBitrateFail", false);
transconfig.put("IsCheckAudioBitrate", false);
transconfig.put("IsCheckAudioBitrateFail", false);
transcodeTemplate.put("TransConfig", transconfig);
//加密配置(只支援m3u8)
//JSONObject encryptSetting = new JSONObject();
//encryptSetting.put("EncryptType", "Private");
//transcodeTemplate.put("EncryptSetting", encryptSetting);
//浮水印ID(多浮水印關聯)
JSONArray watermarkIdList = new JSONArray();
watermarkIdList.add("263261bdc1ff65782f8995c6dd22****");
//USER_DEFAULT_WATERMARK 代表預設浮水印ID
watermarkIdList.add("USER_DEFAULT_WATERMARK");
transcodeTemplate.put("WatermarkIds", watermarkIdList);
JSONArray transcodeTemplateList = new JSONArray();
transcodeTemplateList.add(transcodeTemplate);
return transcodeTemplateList;
}
/**
* 以下為調用樣本
*/
public static void main(String[] args) throws ClientException {
DefaultAcsClient client = initVodClient();
AddTranscodeTemplateGroupResponse response = new AddTranscodeTemplateGroupResponse();
try {
response = addTranscodeTemplateGroup(client);
System.out.println("TranscodeTemplateGroupId = " + response.getTranscodeTemplateGroupId());
} catch (Exception e) {
System.out.println("ErrorMessage = " + e.getLocalizedMessage());
}
System.out.println("RequestId = " + response.getRequestId());
}
修改轉碼模板組
調用UpdateTranscodeTemplateGroup介面,產生修改轉碼模板組的SDK樣本。
阿里雲OpenAPI門戶地址:UpdateTranscodeTemplateGroup。
調用樣本如下:
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.vod.model.v20170321.UpdateTranscodeTemplateGroupRequest;
import com.aliyuncs.vod.model.v20170321.UpdateTranscodeTemplateGroupResponse;
/**
* 讀取AccessKey資訊
*/
public static DefaultAcsClient initVodClient() throws ClientException {
// 點播服務接入地區
String regionId = "cn-shanghai";
// 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
// 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
// 本樣本通過從環境變數中讀取AccessKey,來實現API訪問的身分識別驗證。運行程式碼範例前,請配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
DefaultProfile profile = DefaultProfile.getProfile(regionId, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
/**
* 修改轉碼模板組配置
*/
public static UpdateTranscodeTemplateGroupResponse updateTranscodeTemplateGroup(DefaultAcsClient client) throws Exception {
UpdateTranscodeTemplateGroupRequest request = new UpdateTranscodeTemplateGroupRequest();
request.setName("grouptest1");
//轉碼模板組ID
request.setTranscodeTemplateGroupId("4c71a339fecec0152b4fa6f452****");
request.setTranscodeTemplateList(buildTranscodeTemplateList().toJSONString());
return client.getAcsResponse(request);
}
/**
* 構建需要修改的轉碼模板配置資料
*
* @return
*/
public static JSONArray buildTranscodeTemplateList() {
JSONObject transcodeTemplate = new JSONObject();
//轉碼模板ID
transcodeTemplate.put("TranscodeTemplateId", "85c2b18ac08fda33e8f6d9c56****");
//模板名稱
transcodeTemplate.put("TemplateName", "testtemplate");
//視頻流轉碼配置
JSONObject video = new JSONObject();
video.put("Width", 960);
video.put("Bitrate", 900);
video.put("Fps", 25);
video.put("Remove", false);
video.put("Codec", "H.264");
video.put("Gop", "250");
transcodeTemplate.put("Video", video);
//音頻流轉碼配置
JSONObject audio = new JSONObject();
audio.put("Codec", "AAC");
audio.put("Bitrate", "96");
audio.put("Channels", "2");
audio.put("Samplerate", "32000");
transcodeTemplate.put("Audio", audio);
//封裝容器
JSONObject container = new JSONObject();
container.put("Format", "mp4");
transcodeTemplate.put("Container", container);
//條件轉碼配置
JSONObject transconfig = new JSONObject();
transconfig.put("IsCheckReso", false);
transconfig.put("IsCheckResoFail", false);
transconfig.put("IsCheckVideoBitrate", false);
transconfig.put("IsCheckVideoBitrateFail", false);
transconfig.put("IsCheckAudioBitrate", false);
transconfig.put("IsCheckAudioBitrateFail", false);
transcodeTemplate.put("TransConfig", transconfig);
//加密配置(只支援m3u8)
JSONObject encryptSetting = new JSONObject();
encryptSetting.put("EncryptType", "Private");
//浮水印ID(多浮水印關聯)
JSONArray watermarkIdList = new JSONArray();
watermarkIdList.add("263261bdc1ff65782f95c6dd22****");
//USER_DEFAULT_WATERMARK 代表預設浮水印ID
watermarkIdList.add("USER_DEFAULT_WATERMARK");
transcodeTemplate.put("WatermarkIds", watermarkIdList);
JSONArray transcodeTemplateList = new JSONArray();
transcodeTemplateList.add(transcodeTemplate);
return transcodeTemplateList;
}
/**
* 以下為調用樣本
*/
public static void main(String[] args) throws ClientException {
DefaultAcsClient client = initVodClient();
UpdateTranscodeTemplateGroupResponse response = new UpdateTranscodeTemplateGroupResponse();
try {
response = updateTranscodeTemplateGroup(client);
System.out.println("TranscodeTemplateGroupId = " + response.getTranscodeTemplateGroupId());
} catch (Exception e) {
System.out.println("ErrorMessage = " + e.getLocalizedMessage());
}
System.out.println("RequestId = " + response.getRequestId());
}
查詢轉碼模板組
調用GetTranscodeTemplateGroup介面,產生查詢單個轉碼模板組資訊的SDK樣本。
阿里雲OpenAPI門戶地址:GetTranscodeTemplateGroup。
調用ListTranscodeTemplateGroup介面,產生查詢轉碼模板組列表資訊的SDK樣本。
阿里雲OpenAPI門戶地址:ListTranscodeTemplateGroup。
設定預設轉碼模板組
調用SetDefaultTranscodeTemplateGroup介面,產生設定預設轉碼模板組的SDK樣本。
阿里雲OpenAPI門戶地址:SetDefaultTranscodeTemplateGroup。
刪除轉碼模板組
調用DeleteTranscodeTemplateGroup介面,產生刪除轉碼模板組的SDK樣本。
阿里雲OpenAPI門戶地址:DeleteTranscodeTemplateGroup。