Creating a Snapshot Task
Prerequisites
- You have purchased OBS and uploaded source videos for media processing in the region of MPC (for example, CN North-Beijing4) by referring to Uploading Media Files.
- You have obtained the authorization for MPC to access cloud resources by following the instructions provided in Authorizing Access to Cloud Resources.
Core Code
- Create a snapshot request.
The request includes paths of the input and output files. For details about the parameters, see Creating a Snapshot Task.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// Set the input file path. ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.mp4"); // Set the output file path. ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output"); // Create a snapshot request. CreateThumbnailsTaskRequest req = new CreateThumbnailsTaskRequest() .withBody(new CreateThumbReq().withInput(input).withOutput(output) // Set the snapshot capturing type. Snapshots are captured by interval. .withThumbnailPara(new ThumbnailPara().withType(ThumbnailPara.TypeEnum.DOTS) // Set the snapshot file name. .withOutputFilename("photo") // Set the interval for capturing snapshots. .withDots(Collections.singletonList(2)) // Set the width of snapshots. .withWidth(480) // Set the height of snapshots. .withHeight(360)));
Note: A snapshot file is named based on the timestamp. The first and last frames are captured, and the frame in the middle part is captured by interval. For example, if a video lasts for 20 seconds and the snapshot interval is 11 seconds, the generated snapshot files are named 0.jpg, 11.jpg, and 20.jpg.
- Send the snapshot request and return a message.
1 2
CreateThumbnailsTaskResponse rsp = initMpcClient().createThumbnailsTask(req); System.out.println("CreateThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));
Sample Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
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 { /** * Initialize the MPC client. * @return */ public static MpcClient initMpcClient() { HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3); // Configure the HTTP proxy. //httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx"). // withProxyPassword("xxxxxx"); // Enter the AK and SK. To view your AK and SK, choose My CredentialsAccess Keys under your account on the console. String ak = "xxxxxx"; String sk = "xxxxxx"; // Enter the project ID. To view your project ID, choose My CredentialsAPI Credentials under your account on the console. String projectId = "xxxxxx"; // Enter the endpoint. The following uses region01 as an example. String endpoint = "https://mpc.region01.myhuaweicloud.com"; BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId); return MpcClient.newBuilder() .withHttpConfig(httpConfig) .withCredential(auth) .withEndpoint(endpoint) .build(); } /** * Create a snapshot task. * @param args */ public static void main(String[] args) { // Set the input file path. ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.mp4"); // Set the output file path. ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output"); // Create a snapshot request. CreateThumbnailsTaskRequest req = new CreateThumbnailsTaskRequest() .withBody(new CreateThumbReq().withInput(input).withOutput(output) // Set the snapshot capturing type. Snapshots are captured by interval. .withThumbnailPara(new ThumbnailPara().withType(ThumbnailPara.TypeEnum.DOTS) // Set the snapshot file name. .withOutputFilename("photo") // Set the interval for capturing snapshots. .withDots(Collections.singletonList(2)) // Set the width of snapshots. .withWidth(480) // Set the height of snapshots. .withHeight(360))); // Send the request. try { CreateThumbnailsTaskResponse rsp = initMpcClient().createThumbnailsTask(req); System.out.println("CreateThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp)); } catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) { System.out.println(e); } } } |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot