文档首页 > > 服务端SDK> JAVA SDK> 媒资上传> 创建媒资并上传

创建媒资并上传

分享
更新时间: 2019/08/02 10:20

构造请求参数

构建创建媒资的请求参数,具体接口参数请参考 创建媒资:上传方式
 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
import com.huawei.vod.model.asset.CreateAssetByFileReq;

public static CreateAssetByFileReq buildCreateAssetReq()    {
       
     CreateAssetByFileReq req = new CreateAssetByFileReq();//设置创建媒资请求参数,具体参数可以查阅API文档

     req.setTitle("title");//设置媒资标题,长度不超过128个字节,utf-8编码

     req.setDescription("description");//设置视频描述, 长度不超过1024个字节

     req.setCategoryId(1);//设置媒资分类id

     //设置媒资文件地址,如d://test.mp4,该地址是本地文件地址,如果需要用SDK上传,则该参数必填        
     req.setVideoFileUrl("fileAddress");

     //设置封面的文件地址,如d://cover.png,该地址是本地文件地址,如果需要用SDK上传封面,则该参数必填                
     req.setCoverFileUrl( "coverAddress"); 

     //设置字幕文件地址,如d://subtitle.srt,该地址是本地文件地址,如果需要用SDK上传字幕,则该参数必填   
     req.setSubtitleFileUrl("d://aa.srt");
      
     req.setVideoName("videoName");//设置视频文件名,可以带后缀,也可以不带后缀 

     //设置上传文件类型。支持上传视频文件格式:MP4、TS、MOV、MXF、MPG、FLV、WMV、AVI、M4V、F4V、MPEG、3GP、ASF、MKV,支持上传音频文件格式:MP3、OGG、WAV、WMA、APE、FLAC、AAC、AC3、MMF、AMR、M4A、M4R、WV、MP2,若上传格式为音频文件,则不支持转码,添加水印,添加字幕。
     req.setVideoType("MP4");
        
     req.setCoverType("PNG");//设置封面图片文件类型,当前支持:JPG、PNG 

     //创建媒资请求体CreateAssetByFileReq 中新增 List<SubtitleReq>  subtitles
     List<SubtitleReq> subtitleReqs = new ArrayList<>();
     SubtitleReq subtitleReq = new SubtitleReq();
     subtitleReq.setId(1);//字幕id,目前只支持上传一个字幕文件,取值为[1,8]
     subtitleReq.setType("SRT");//字幕文件类型,目前只支持SRT文件
     subtitleReq.setLanguage("CN");//字幕语言类型,目前只能为“CN”,和“EN”
     subtitleReq.setMd5("EIq3IMk3Cx8Dh6ga/peS/Q==");//字幕文件MD5值
     subtitleReqs.add(subtitleReq);
     req.setSubtitles(subtitleReqs);
             
     req.setAutoPublish(1);//是否自动发布,取值[0,1],0表示不自动发布,1表示自动发布;缺省值为0
        
     req.setAutoPreheat(1);//是否自动预热到CDN,取值[0,1]
        
     req.setTemplateGroupName("templateGroupName");//设置媒资转码的模板组的Name,具体的模板组可以去点播Console进行创建和查看

     // 初始化截图参数
     Thumbnail thumbnail = new Thumbnail();
     // 设置截图类型为固定时间间隔采样截图,TIME为定时采样,DOTS为指定时间点截图。
     thumbnail.setType(Thumbnail.TypeEnum.TIME);
     thumbnail.setTime(10);// 设定时间间隔(取值为[1,100]区间的整数);type设置为DOTS时需设置dots数组指定截图时间点。
     thumbnail.setCoverPosition(1);// 指定第1张截图结果作为封面
     req.setThumbnail(thumbnail);// 设置截图参数到请求中
     Review review = new Review();// 初始化审核参数,politics、terrorism、porn未传参时表示不进行此项检测,传-1表示采用默认的置信度。
     review.setInterval(5);// 设置截图时间间隔,单位秒(取值为5或者10)
     review.setPolitics(80);// 设置政治人物检测时的置信度(取值为[-1,100]之间的整数,取值-1表示为默认值53)
     review.setTerrorism(80);// 设置暴恐元素检测时的置信度(取值为[-1,100]之间的整数,取值-1表示为默认值80)
     review.setPorn(80);// 设置涉黄内容检测时的置信度(取值为[-1,100]之间的整数,取值-1表示为默认值80)
     req.setReview(review);

     req.setAutoEncrypt(1);// 设置是否自动加密
     req.setSmartCover(1);// 设置是否开启智能封面,取值[0,1],0表示不开启智能封面,1表示开启智能封面,默认不开启

return req;    
}
说明:

“华北-北京四”和“华东-上海二”两个区域暂不支持智能封面功能。

开始创建并上传

调用SDK方法创建媒资并上传视频
 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
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.CreateAssetByFileReq;
import com.huawei.vod.model.asset.CreateAssetByFileRsp;
import com.huawei.vod.service.ObsService;
import com.obs.services.model.PartEtag;

public static void main(String[] args) {    
     VodClient vodClient = initVodClient();  // 初始化客户端    
     CreateAssetByFileReq req = buildCreateAssetReq();  // 初始化创建媒资请求        

     /**     
      * 发送创建媒资请求,带上传操作,无回调情况     
      * CreateAssetByFileRsp rsp = vodClient.createAssetByFileAuto(req);     
      */    

     // 发送创建媒资请求,带上传操作,有回调,可以实时查询上传进度    
     CreateAssetByFileRsp rsp = vodClient.createAssetByFileAuto(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 e) {  // 上传过程中报错时回调            
      e.printStackTrace();        
   }});   
 System.out.println(new Gson().toJson(rsp));  //返回消息
}
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区