在视频点播服务中更新视频
引导式阅读
Java
在视频点播服务中更新视频
作者
C***
上架时间
2021-06-28 12:35:03

版本说明

本示例基于华为云SDK V2.0版本开发,高版本示例正在开发中。

功能介绍

媒资创建后,可以单独上传封面、更新视频文件或更新已有封面。如果是更新视频文件,更新完后要通过确认媒资上传接口通知点播服务。如果是更新封面或单独上传封面,则不需通知。

准备工作

1、已安装JDK1.8及以上版本并完成环境配置,可参考JDK环境配置完成配置。
2、已安装Maven,如若未安装,请下载安装。
3、已具备Eclipse等开发环境。
4、初始化客户端,具体请参见初始化

代码示例

更新文件并上传

支持更新已上传的视频文件,上传或更新封面。

import com.google.gson.Gson; import com.huawei.common.obs.ObsConfig; import com.huawei.vod.client.VodClient; import com.huawei.vod.client.VodConfig; import com.huawei.vod.model.asset.UploadAssetReq; import com.huawei.vod.model.asset.UploadAssetRsp; import com.huawei.vod.service.ObsService; import com.obs.services.model.PartEtag; public static void main(String[] args) { // 初始化客户端 VodClient vodClient = initVodClient(); // 设置媒资更新参数 UploadAssetReq req = new UploadAssetReq(); // 设置媒资ID req.setAssetId("assetId"); // 设置视频文件名,格式后缀为可选携带。 req.setVideoName("videoName"); // 设置视频文件MD5值 req.setVideoMd5("videoMD5"); // 设置上传文件类型。支持上传视频文件格式:MP4、TS、MOV、MXF、MPG、FLV、WMV、AVI、M4V、F4V、MPEG, // 支持上传音频文件格式:MP3、OGG、WAV、WMA、APE、FLAC、AAC、AC3、MMF、AMR、M4A、M4R、WV、MP2, // 若上传格式为音频文件,则不支持转码,添加水印,添加字幕。 req.setVideoType("MP4"); // 设置视频文件的本地地址,如/home/test.mp4、d://test.mp4 req.setVideoFileUrl("d://test.mp4"); // 设置封面ID,取值0-7。当前只支持一张封面,只能设置为0 req.setCoverId(0); // 设置封面图片格式类型,当前支持JPG、PNG req.setCoverType("PNG"); // 设置封面文件MD5值 req.setCoverMd5("coverMD5"); // 设置字幕参数 List<SubtitleReq> subtitleReqs = new ArrayList<>(); SubtitleReq subtitleReq = new SubtitleReq(); // 字幕id,目前只支持上传一个字幕文件,取值为[1,8] subtitleReq.setId(1); // 字幕文件类型,目前只支持SRT文件 subtitleReq.setType("SRT"); // 字幕语言类型,目前只能为“CN”,和“EN” subtitleReq.setLanguage("CN"); // 字幕文件MD5值 subtitleReq.setMd5("EIq3IMk3Cx8Dh6ga/peS/Q=="); subtitleReqs.add(subtitleReq); req.setSubtitles(subtitleReqs); // 设置封面文件的本地地址,即文件所在的文件地址,如/home/test.jpg、d://test.jpg, req.setCoverFileUrl("d://test.jpg"); // 启动上传,可以设置回调接口,但该回调接口仅会在更新视频源文件时回调 UploadAssetRsp rsp = vodClient.uploadAssetAuto(req, new ObsService.OnPartEtagUploadedListener() { @Override public void onInitMultiUploadPart(String uploadId) { System.out.println("Init end: " + uploadId); } @Override public void onUploadEachPart(PartEtag partEtag, int progress, String uploadId) { // 文件每上传完一段时回调 System.out.println(partEtag.toString() + " is end ! Progress: " + progress); } @Override public void onCompleteMultiUpload(String uploadId) { // 文件上传完成时回调 System.out.println("Complete end: " + uploadId); } @Override public void onError(Throwable throwable) { // 上传过程中报错时回调 throwable.printStackTrace(); } }); System.out.println(new Gson().toJson(rsp)); }

说明:更多信息请参考API Explorer

更新文件暂不上传

调用SDK方法更新视频文件或封面但不上传,一般发生在服务端发起更新请求,然后转交给客户端如App、浏览器上传,可以参考并使用点播服务的上传SDK,如果是更新视频文件则需要在客户端上传完之后,调用确认上传接口完成整个上传操作。

import com.google.gson.Gson; import com.huawei.common.obs.ObsConfig; import com.huawei.vod.client.VodClient; import com.huawei.vod.client.VodConfig; import com.huawei.vod.model.asset.PreheatingAssetReq; public static void main(String[] args) { // 初始化客户端 VodClient vodClient = initVodClient(); // 设置媒资更新参数 UploadAssetReq req = new UploadAssetReq(); req.setAssetId("assetId"); // 设置视频文件名,文件格式后缀为可选携带 req.setVideoName("videoName"); // 设置视频文件MD5值 req.setVideoMd5("videoMD5"); // 设置上传文件类型。支持上传视频文件格式:MP4、TS、MOV、MXF、MPG、FLV、WMV、AVI、M4V、F4V、MPEG,支持上传音频文件格式:MP3、OGG、WAV、WMA、APE、FLAC、AAC、AC3、MMF、AMR、M4A、M4R、WV、MP2,若上传格式为音频文件,则不支持转码,添加水印,添加字幕。 req.setVideoType("MP4"); // 设置封面ID,取值0-7。当前只支持一张封面,只能设置为0 req.setCoverId(0); // 设置封面图片格式类型,当前支持JPG、PNG req.setCoverType("PNG"); // 设置封面文件MD5值 req.setCoverMd5("coverMD5"); // 设置字幕参数 List<SubtitleReq> subtitleReqs = new ArrayList<>(); SubtitleReq subtitleReq = new SubtitleReq(); // 字幕id,目前只支持上传一个字幕文件,取值为[1,8] subtitleReq.setId(1); // 字幕文件类型,目前只支持SRT文件 subtitleReq.setType("SRT"); // 字幕语言类型,目前仅支持“CN”和“EN” subtitleReq.setLanguage("CN"); // 字幕文件MD5值 subtitleReq.setMd5("EIq3IMk3Cx8Dh6ga/peS/Q=="); subtitleReqs.add(subtitleReq); req.setSubtitles(subtitleReqs); UploadAssetRsp rsp = vodClient.uploadAsset(req); System.out.println(new Gson().toJson(rsp)); }

参考

更多信息请参考视频点播