Este tópico apresenta exemplos de uso das operações da API do módulo de modelos de transcodificação. Essas operações estão encapsuladas no ApsaraVideo VOD SDK for Java. Chame as operações da API para criar, modificar, excluir e consultar grupos de modelos de transcodificação. Também é possível definir um grupo de modelos de transcodificação como padrão.
Observações de uso
Todos os exemplos deste tópico usam um par de AccessKey para inicializar uma instância de cliente.
Para obter detalhes sobre os parâmetros de solicitação e resposta, acesse o Alibaba Cloud OpenAPI Explorer e abra a aba API Documentations.
Para exemplos de SDK de outras operações da API, visite o Alibaba Cloud OpenAPI Explorer. Na aba Parameters, especifique os parâmetros e inicie a chamada. Em seguida, selecione a versão do SDK e o idioma na aba SDK Sample Code para visualizar e baixe o código.
Os exemplos deste tópico usam o SDK V1.0. Para exemplos da V2.0, selecione a versão correta do SDK no OpenAPI Explorer.

Inicializar um cliente
Antes de usar o SDK, inicialize um cliente. Para mais informações, consulte Inicialização.
Criar um grupo de modelos de transcodificação
Chame a operação AddTranscodeTemplateGroup para criar um grupo de modelos de transcodificação.
Clique em AddTranscodeTemplateGroup para saber mais sobre esta operação da API.
Código de exemplo:
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.vod.model.v20170321.AddTranscodeTemplateGroupRequest;
import com.aliyuncs.vod.model.v20170321.AddTranscodeTemplateGroupResponse;
/**
* Obtain the AccessKey information.
*/
public static DefaultAcsClient initVodClient() throws ClientException {
// Specify the region in which ApsaraVideo VOD is activated.
String regionId = "cn-shanghai";
// The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use a RAM user to call API operations or perform routine O&M.
// We recommend that you do not save your AccessKey pair (AccessKey ID and AccessKey secret) in your project code. Otherwise, the AccessKey pair may be leaked. As a result, the security of all resources in your account is compromised.
// In this example, the system reads the AccessKey pair from environment variables to implement authentication for API access. Before you run the sample code, configure the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and 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;
}
/**
* Configure a transcoding template group.
*/
public static AddTranscodeTemplateGroupResponse addTranscodeTemplateGroup(DefaultAcsClient client) throws Exception {
AddTranscodeTemplateGroupRequest request = new AddTranscodeTemplateGroupRequest();
// The ID of the transcoding template.
request.setName("grouptest");
request.setTranscodeTemplateList(buildTranscodeTemplateList().toJSONString());
return client.getAcsResponse(request);
}
/**
* Set parameters required for adding a transcoding template.
*
* @return
*/
public static JSONArray buildTranscodeTemplateList() {
JSONObject transcodeTemplate = new JSONObject();
// The name of the template.
transcodeTemplate.put("TemplateName", "testtemplate");
// The resolution.
transcodeTemplate.put("Definition", "LD");
// The transcoding settings for video streams.
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);
// The transcoding settings for audio streams.
JSONObject audio = new JSONObject();
audio.put("Codec", "AAC");
audio.put("Bitrate", "64");
audio.put("Channels", "2");
audio.put("Samplerate", "32000");
transcodeTemplate.put("Audio", audio);
// The container.
JSONObject container = new JSONObject();
container.put("Format", "mp4");
transcodeTemplate.put("Container", container);
// The conditional transcoding configurations.
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);
// The encryption configurations. Only videos in the M3U8 format can be encrypted.
//JSONObject encryptSetting = new JSONObject();
//encryptSetting.put("EncryptType", "Private");
//transcodeTemplate.put("EncryptSetting", encryptSetting);
// The IDs of associated watermarks.
JSONArray watermarkIdList = new JSONArray();
watermarkIdList.add("263261bdc1ff65782f8995c6dd22****");
// USER_DEFAULT_WATERMARK indicates the ID of the default watermark.
watermarkIdList.add("USER_DEFAULT_WATERMARK");
transcodeTemplate.put("WatermarkIds", watermarkIdList);
JSONArray transcodeTemplateList = new JSONArray();
transcodeTemplateList.add(transcodeTemplate);
return transcodeTemplateList;
}
/**
* Sample code
*/
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());
}
Modificar um grupo de modelos de transcodificação
Chame a operação UpdateTranscodeTemplateGroup para modificar um grupo de modelos de transcodificação.
Clique em UpdateTranscodeTemplateGroup para saber mais sobre esta operação da API.
Código de exemplo:
import com.aliyuncs.auth.AlibabaCloudCredentials;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.vod.model.v20170321.UpdateTranscodeTemplateGroupRequest;
import com.aliyuncs.vod.model.v20170321.UpdateTranscodeTemplateGroupResponse;
/**
* Obtain the AccessKey information.
*/
public static DefaultAcsClient initVodClient() throws ClientException {
// Specify the region in which ApsaraVideo VOD is activated.
String regionId = "cn-shanghai";
// The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use a RAM user to call API operations or perform routine O&M.
// We recommend that you do not save your AccessKey pair (AccessKey ID and AccessKey secret) in your project code. Otherwise, the AccessKey pair may be leaked. As a result, the security of all resources in your account is compromised.
// In this example, the system reads the AccessKey pair from environment variables to implement authentication for API access. Before you run the sample code, configure the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and 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;
}
/**
* Modify a transcoding template group.
*/
public static UpdateTranscodeTemplateGroupResponse updateTranscodeTemplateGroup(DefaultAcsClient client) throws Exception {
UpdateTranscodeTemplateGroupRequest request = new UpdateTranscodeTemplateGroupRequest();
request.setName("grouptest1");
// The ID of the transcoding template group.
request.setTranscodeTemplateGroupId("4c71a339fecec0152b4fa6f452****");
request.setTranscodeTemplateList(buildTranscodeTemplateList().toJSONString());
return client.getAcsResponse(request);
}
/**
* Construct the parameters of the transcoding template that you want to modify.
*
* @return
*/
public static JSONArray buildTranscodeTemplateList() {
JSONObject transcodeTemplate = new JSONObject();
// The ID of the transcoding template.
transcodeTemplate.put("TranscodeTemplateId", "85c2b18ac08fda33e8f6d9c56****");
// The name of the template.
transcodeTemplate.put("TemplateName", "testtemplate");
// The transcoding settings for video streams.
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);
// The transcoding settings for audio streams.
JSONObject audio = new JSONObject();
audio.put("Codec", "AAC");
audio.put("Bitrate", "96");
audio.put("Channels", "2");
audio.put("Samplerate", "32000");
transcodeTemplate.put("Audio", audio);
// The container.
JSONObject container = new JSONObject();
container.put("Format", "mp4");
transcodeTemplate.put("Container", container);
// The conditional transcoding configurations.
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);
// The encryption configurations. Only videos in the M3U8 format can be encrypted.
JSONObject encryptSetting = new JSONObject();
encryptSetting.put("EncryptType", "Private");
// The IDs of associated watermarks.
JSONArray watermarkIdList = new JSONArray();
watermarkIdList.add("263261bdc1ff65782f95c6dd22****");
// USER_DEFAULT_WATERMARK indicates the ID of the default watermark.
watermarkIdList.add("USER_DEFAULT_WATERMARK");
transcodeTemplate.put("WatermarkIds", watermarkIdList);
JSONArray transcodeTemplateList = new JSONArray();
transcodeTemplateList.add(transcodeTemplate);
return transcodeTemplateList;
}
/**
* Sample code
*/
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());
}
Consultar um grupo de modelos de transcodificação
-
Chame a operação GetTranscodeTemplateGroup para consultar um grupo de modelos de transcodificação.
Clique em GetTranscodeTemplateGroup para saber mais sobre esta operação da API.
-
Chame a operação ListTranscodeTemplateGroup para consultar uma lista de grupos de modelos de transcodificação.
Clique em ListTranscodeTemplateGroup para saber mais sobre esta operação da API.
Definir um grupo de modelos de transcodificação como padrão
Chame a operação SetDefaultTranscodeTemplateGroup para definir um grupo de modelos de transcodificação como padrão.
Clique em SetDefaultTranscodeTemplateGroup para saber mais sobre esta operação da API.
Excluir um grupo de modelos de transcodificação
Chame a operação DeleteTranscodeTemplateGroup para excluir um grupo de modelos de transcodificação.
Clique em DeleteTranscodeTemplateGroup para saber mais sobre esta operação da API.