• 沒有找到結果。

* 初始化 MpcClient * @return */

public static MpcClient initMpcClient() { HttpConfig httpConfig =

HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);

//http代理设置,请根据实际情况设置

//httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").

// withProxyPassword("xxxxxx");

//根据实际填写ak,sk,华为云控制台账号名下“我的凭证”>访问密钥上创建和查看您的AK/SK String ak = "xxxxxx";

String sk = "xxxxxx";

//根据实际填写项目ID,华为云控制台账号名下“我的凭证”>API凭证下查看您的项目ID String projectId = "xxxxxx";

//根据实际填写所需endpoint,这里以华东2为例

String endpoint = "https://mpc.cn-east-2.myhuaweicloud.com";

BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);

return MpcClient.newBuilder() .withHttpConfig(httpConfig) .withCredential(auth) .withEndpoint(endpoint) .build();

} /**

* 查询转码任务 */

public static void main(String[] args) { try {

//按TaskId查询任务,TaskId是转码请求响应中返回的任务ID ListTranscodingTaskRequest req = new

ListTranscodingTaskRequest().withTaskId(Collections.singletonList(3273178L));

//发送请求

ListTranscodingTaskResponse listTranscodingTaskResponse = initMpcClient().listTranscodingTask(req);

System.out.println(JsonUtils.toJSON(listTranscodingTaskResponse));

} catch (Exception e) { System.out.println(e);

} } }

2.3 抽帧截图

2.3.1 新建截图任务

前提条件

● 已购买对象存储服务,并参考上传媒体文件在媒体处理服务同区域(如华北-北京 四)上传媒体处理的源视频。

● 已参考获取云资源授权,完成媒体处理服务授权。

核心代码

1. 创建截图任务请求。

新建截图任务请求包括输入文件、输出文件的路径。具体参数请参考新建截图任 务接口。//设置截图输入视频地址

ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("cn-east-2").withObject("ok.mp4");

//设置截图输出路径

ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("cn-east-2").withObject("output");

//创建截图请求

CreateThumbnailsTaskRequest req = new CreateThumbnailsTaskRequest() .withBody(new CreateThumbReq().withInput(input).withOutput(output) //设置截图类型,此处理按时间点截图

.withThumbnailPara(new ThumbnailPara().withType(ThumbnailPara.TypeEnum.DOTS) //设置截图输出文件名称

.withOutputFilename("photo") //设置截图的时间点

.withDots(Collections.singletonList(2)) //设置截图的宽

.withWidth(480) //设置截图的高 .withHeight(360)));

说明:生成的截图文件按截图时间戳命名,从首帧开始截取,中间按时间间隔截 取,最后末帧截取一张。如视频文件20s,截图间隔为11s,则生成的截图文件为 0.jpg,11.jpg,20.jpg。

2. 发送创建截图任务请求并显示返回消息。

CreateThumbnailsTaskResponse rsp = initMpcClient().createThumbnailsTask(req);

System.out.println("CreateThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));

示例代码

package SdkTestCase.thumbnail;

import com.huaweicloud.sdk.core.auth.BasicCredentials;

import com.huaweicloud.sdk.core.exception.ClientRequestException;

import com.huaweicloud.sdk.core.exception.ConnectionException;

import com.huaweicloud.sdk.core.exception.RequestTimeoutException;

import com.huaweicloud.sdk.core.http.HttpConfig;

import com.huaweicloud.sdk.core.utils.JsonUtils;

import com.huaweicloud.sdk.mpc.v1.MpcClient;

import com.huaweicloud.sdk.mpc.v1.model.CreateThumbReq;

import com.huaweicloud.sdk.mpc.v1.model.CreateThumbnailsTaskRequest;

import com.huaweicloud.sdk.mpc.v1.model.CreateThumbnailsTaskResponse;

import com.huaweicloud.sdk.mpc.v1.model.ObsObjInfo;

import com.huaweicloud.sdk.mpc.v1.model.ThumbnailPara;

import com.obs.services.internal.ServiceException;

import java.util.Collections;

public class TestThumbnail { /**

* 初始化 MpcClient

* @return */

public static MpcClient initMpcClient() { HttpConfig httpConfig =

HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);

//http代理设置,请根据实际情况设置

//httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").

// withProxyPassword("xxxxxx");

//根据实际填写ak,sk,华为云控制台账号名下“我的凭证”>访问密钥上创建和查看您的AK/SK String ak = "xxxxxx";

String sk = "xxxxxx";

//根据实际填写项目ID,华为云控制台账号名下“我的凭证”>API凭证下查看您的项目ID String projectId = "xxxxxx";

//根据实际填写所需endpoint,这里以华东2为例

String endpoint = "https://mpc.cn-east-2.myhuaweicloud.com";

BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);

return MpcClient.newBuilder() .withHttpConfig(httpConfig) .withCredential(auth) .withEndpoint(endpoint) .build();

} /**

* 创建截图任务 * @param args */

public static void main(String[] args) { //设置截图输入视频地址

ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("cn-east-2").withObject("ok.mp4");

//设置截图输出路径

ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("cn-east-2").withObject("output");

//创建截图请求

CreateThumbnailsTaskRequest req = new CreateThumbnailsTaskRequest() .withBody(new CreateThumbReq().withInput(input).withOutput(output) //设置截图类型,此处理按时间点截图

.withThumbnailPara(new ThumbnailPara().withType(ThumbnailPara.TypeEnum.DOTS) //设置截图文件名称

.withOutputFilename("photo") //设置截图的时间点

.withDots(Collections.singletonList(2)) //设置截图的宽

.withWidth(480) //设置截图的高 .withHeight(360)));

//发送截图请求 try {

CreateThumbnailsTaskResponse rsp = initMpcClient().createThumbnailsTask(req);

System.out.println("CreateThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));

} catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) { System.out.println(e);

} } }

2.3.2 取消截图任务

说明

● 取消任务需要用户提供所要取消任务的taskId。

● 待取消的taskId只能是正在截图任务队列中排队的。已开始或已完成的截图任务不 能删除。

核心代码

// 发送取消截图任务请求给媒体处理服务

DeleteThumbnailsTaskRequest req = new DeleteThumbnailsTaskRequest().withTaskId("2210744");

DeleteThumbnailsTaskResponse rsp = initMpcClient().deleteThumbnailsTask(req);

// 返回消息

System.out.println("DeleteThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));

完整代码

import com.huaweicloud.sdk.core.auth.BasicCredentials;

import com.huaweicloud.sdk.core.exception.ClientRequestException;

import com.huaweicloud.sdk.core.exception.ConnectionException;

import com.huaweicloud.sdk.core.exception.RequestTimeoutException;

import com.huaweicloud.sdk.core.http.HttpConfig;

import com.huaweicloud.sdk.core.utils.JsonUtils;

import com.huaweicloud.sdk.mpc.v1.MpcClient;

import com.huaweicloud.sdk.mpc.v1.model.DeleteThumbnailsTaskRequest;

import com.huaweicloud.sdk.mpc.v1.model.DeleteThumbnailsTaskResponse;

import com.obs.services.internal.ServiceException;

public class TestDeleteThumbnail { /**

* 初始化 MpcClient * @return */

public static MpcClient initMpcClient() { HttpConfig httpConfig =

HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);

//http代理设置,请根据实际情况设置

//httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").

// withProxyPassword("xxxxxx");

//根据实际填写ak,sk,华为云控制台账号名下“我的凭证”>访问密钥上创建和查看您的AK/SK String ak = "xxxxxx";

String sk = "xxxxxx";

//根据实际填写项目ID,华为云控制台账号名下“我的凭证”>API凭证下查看您的项目ID String projectId = "xxxxxx";

//根据实际填写所需endpoint,这里以华东2为例

String endpoint = "https://mpc.cn-east-2.myhuaweicloud.com";

BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);

return MpcClient.newBuilder() .withHttpConfig(httpConfig) .withCredential(auth) .withEndpoint(endpoint) .build();

} /**

* 取消截图任务 * @param args */

public static void main(String[] args) {

DeleteThumbnailsTaskRequest req = new DeleteThumbnailsTaskRequest().withTaskId("2210744");

try {

DeleteThumbnailsTaskResponse rsp = initMpcClient().deleteThumbnailsTask(req);

System.out.println("DeleteThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));

} catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) { System.out.println(e);

} } }

2.3.3 查询截图任务

说明

● 查询截图任务,支持根据任务ID查询、任务状态、时间段、分页查询和复合查 询。

● 在查询到的结果集中,如果不提供页码数page和显示条数size并且数据大于10条 时,会默认显示10条数据并进行分页处理。

根据任务 ID 查询

//根据任务ID查询,最多支持10个任务ID ListThumbnailsTaskRequest req = new

ListThumbnailsTaskRequest().withTaskId(Collections.singletonList("2210744"));

// 发送查询截图任务请求给媒体处理服务

ListThumbnailsTaskResponse rsp = initMpcClient().listThumbnailsTask(req);

// 返回消息

System.out.println("rsp=" + JsonUtils.toJSON(rsp));

分页查询

//分页查询

ListThumbnailsTaskRequest req = new ListThumbnailsTaskRequest().withPage(1).withSize(4);

//发送查询截图任务请求给媒体处理服务

ListThumbnailsTaskResponse rsp = initMpcClient().listThumbnailsTask(req);

//返回消息

System.out.println("rsp=" + JsonUtils.toJSON(rsp));

根据时间段查询

ListThumbnailsTaskRequest req = new

ListThumbnailsTaskRequest().withStartTime("20201220131400").withEndTime("20201220131400");

// 发送查询截图任务请求给媒体处理服务

ListThumbnailsTaskResponse rsp = initMpcClient().listThumbnailsTask(req);

// 返回消息

System.out.println("rsp=" + JsonUtils.toJSON(rsp));

根据任务状态查询

// 根据任务的状态查询

ListThumbnailsTaskRequest req = new

ListThumbnailsTaskRequest().withStatus(ListThumbnailsTaskRequest.StatusEnum.FAILED);

// 发送查询截图任务请求给媒体处理服务

ListThumbnailsTaskResponse rsp = initMpcClient().listThumbnailsTask(req);

// 返回消息

System.out.println("rsp=" + JsonUtils.toJSON(rsp));

复合查询

//复合查询

ListThumbnailsTaskRequest req = new ListThumbnailsTaskRequest().withPage(1).withSize(4) .withStartTime("20201220131400")

.withEndTime("20201220131400")

.withStatus(ListThumbnailsTaskRequest.StatusEnum.FAILED);

完整代码

import com.huaweicloud.sdk.core.auth.BasicCredentials;

import com.huaweicloud.sdk.core.exception.ClientRequestException;

import com.huaweicloud.sdk.core.exception.ConnectionException;

import com.huaweicloud.sdk.core.exception.RequestTimeoutException;

import com.huaweicloud.sdk.core.http.HttpConfig;

import com.huaweicloud.sdk.core.utils.JsonUtils;

import com.huaweicloud.sdk.mpc.v1.MpcClient;

import com.huaweicloud.sdk.mpc.v1.model.ListThumbnailsTaskRequest;

import com.huaweicloud.sdk.mpc.v1.model.ListThumbnailsTaskResponse;

import com.obs.services.internal.ServiceException;

public class TestListThumbnail { /**

* 初始化 MpcClient * @return */

public static MpcClient initMpcClient() { HttpConfig httpConfig =

HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);

//http代理设置,请根据实际情况设置

//httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").

// withProxyPassword("xxxxxx");

//根据实际填写ak,sk,华为云控制台账号名下“我的凭证”>访问密钥上创建和查看您的AK/SK String ak = "xxxxxx";

String sk = "xxxxxx";

//根据实际填写项目ID,华为云控制台账号名下“我的凭证”>API凭证下查看您的项目ID String projectId = "xxxxxx";

//根据实际填写所需endpoint,这里以华东2为例

String endpoint = "https://mpc.cn-east-2.myhuaweicloud.com";

BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);

return MpcClient.newBuilder() .withHttpConfig(httpConfig) .withCredential(auth) .withEndpoint(endpoint) .build();

} /**

* 查询截图任务 * @param args */

public static void main(String[] args) {

ListThumbnailsTaskRequest req = new ListThumbnailsTaskRequest().withPage(1).withSize(4) .withStartTime("20201220131400")

.withEndTime("20201220131400")

.withStatus(ListThumbnailsTaskRequest.StatusEnum.FAILED);

try {

ListThumbnailsTaskResponse rsp = initMpcClient().listThumbnailsTask(req);

System.out.println("rsp=" + JsonUtils.toJSON(rsp));

} catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) { System.out.println(e);

} } }

相關文件