• 沒有找到結果。

* 取消排队中的解析任务 * @param args */

public static void main(String[] args) {

DeleteExtractTaskRequest req = new DeleteExtractTaskRequest().withTaskId("3223182");

try {

DeleteExtractTaskResponse rsp = initMpcClient().deleteExtractTask(req);

System.out.println("rsp=" + rsp.toString());

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

} } }

2.7 转封装管理

2.7.1 创建转封装任务

您可以通过创建MpcClient实例并设置相关参数新建转封装任务,转封装任务用于视频 转封装处理。

前提条件

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

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

核心代码

1. 创建转封装任务。

//设置转封装输入视频地址和输出路径

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

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

//创建转封装请求

CreateRemuxTaskRequest req = new CreateRemuxTaskRequest()

.withBody(new CreateRemuxTaskReq().withInput(input).withOutput(output) // 设置转封装参数

.withOutputParam(new RemuxOutputParam() //设置转封装格式

.withFormat("HLS") //转成hls切片间隔

.withSegmentDuration(5)));

//发送转封装请求

CreateRemuxTaskResponse rsp = initMpcClient().createRemuxTask(req);

System.out.println(rsp.toString())

完整代码

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.mpc.v1.MpcClient;

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

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

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

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

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

import com.obs.services.internal.ServiceException;

public class TestRemux { /**

* 初始化 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.flv");

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

//创建转封装请求

CreateRemuxTaskRequest req = new CreateRemuxTaskRequest()

.withBody(new CreateRemuxTaskReq().withInput(input).withOutput(output) // 设置转封装参数

.withOutputParam(new RemuxOutputParam() //设置转封装格式

.withFormat("HLS") //转成hls切片间隔

.withSegmentDuration(5)));

//发送转封装请求 try {

CreateRemuxTaskResponse rsp = initMpcClient().createRemuxTask(req);

System.out.println(rsp.toString());

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

} } }

2.7.2 查询转封装任务

说明

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

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

根据任务 ID 查询

//查询转封装任务

ListRemuxTaskRequest req = new ListRemuxTaskRequest().withTaskId(Collections.singletonList("8191203"));

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

ListRemuxTaskResponse rsp = initMpcClient().listRemuxTask(req);

// 打印返回消息

System.out.println("rsp=" + rsp.toString());

分页查询

// 分页查询

ListRemuxTaskRequest req = new ListRemuxTaskRequest().withPage(0).withSize(10);

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

ListRemuxTaskResponse rsp = initMpcClient().listRemuxTask(req);

// 打印返回消息

System.out.println("rsp=" + rsp.toString());

根据时间段查询

// 根据时间段查询

ListRemuxTaskRequest req = new

ListRemuxTaskRequest().withStartTime("20201220131400").withEndTime("20201221131400");

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

ListRemuxTaskResponse rsp = initMpcClient().listRemuxTask(req);

// 打印返回消息

System.out.println("rsp=" + rsp.toString());

根据任务状态查询

// 根据任务的状态查询

ListRemuxTaskRequest req = new

ListRemuxTaskRequest().withStatus(ListRemuxTaskRequest.StatusEnum.FAILED);

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

ListRemuxTaskResponse rsp = initMpcClient().listRemuxTask(req);

// 打印返回消息

System.out.println("rsp=" + rsp.toString());

复合查询

// 复合查询

ListRemuxTaskRequest req = new ListRemuxTaskRequest().withPage(0).withSize(10) .withStartTime("20201220131400").withEndTime("20201221131400") .withStatus(ListRemuxTaskRequest.StatusEnum.FAILED);

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

ListExtractTaskResponse rsp = initMpcClient().listExtractTask(req);

// 打印返回消息

System.out.println("rsp=" + rsp.toString());

完整代码

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.mpc.v1.MpcClient;

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

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

import com.obs.services.internal.ServiceException;

import java.util.Collections;

public class TestListRemux { /**

* 初始化 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) { ListRemuxTaskRequest req = new

ListRemuxTaskRequest().withTaskId(Collections.singletonList("8191203"));

try {

ListRemuxTaskResponse rsp = initMpcClient().listRemuxTask(req);

System.out.println("rsp=" + rsp.toString());

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

} } }

2.7.3 取消转封装任务

说明

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

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

核心代码

// 设置需要取消的任务id

CancelRemuxTaskRequest req = new CancelRemuxTaskRequest().withTaskId("8191203");

// 发送消息到转码服务

CancelRemuxTaskResponse rsp = initMpcClient().cancelRemuxTask(req);

System.out.println("rsp=" + rsp.toString());

完整代码

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.mpc.v1.MpcClient;

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

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

import com.obs.services.internal.ServiceException;

public class TestDeleteRemux { /**

* 初始化 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) {

CancelRemuxTaskRequest req = new CancelRemuxTaskRequest().withTaskId("8191203");

try {

CancelRemuxTaskResponse rsp = initMpcClient().cancelRemuxTask(req);

System.out.println("rsp=" + rsp.toString());

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

} } }

相關文件