腾讯云视频上传问题总结
来源:互联网 发布:淘宝店铺ppt 编辑:程序博客网 时间:2024/06/08 17:42
使用腾讯云提供java sdk4.4
MultipartUploadVodFile使用此接口,分片上传,分片大小设置1024*1024*20会被腾讯服务器拒绝,无法上传,
目前设置为1024*1024*5
最小分片设置为1024*512
/** * 域名:vod.qcloud.com * 接口名: MultipartUploadVodFile * @Description:本地上传至腾讯云 * @param * @return * @author zhiwei.yan * @date 2017/8/16 0016 8:49 */ public static String localToTcCloud (UploadParam uploadParam) { QcloudApiModuleCenter module = getModule("POST"); try{ System.out.println("starting..."); String fileName = uploadParam.getFileLocalPath(); //文件大小 long fileSize = new File(fileName).length(); //文件sha1值 String fileSHA1 = SHA1.fileNameToSHA(fileName); //每次上传字节数,可自定义 int fixDataSize = 1024*1024*5; //切片上传:最小片字节数(默认不变),如果:dataSize + offset > fileSize,把这个值变小即可 int firstDataSize = 1024*512; // int tmpDataSize = firstDataSize; long remainderSize = fileSize; int tmpOffset = 0; int code, flag; String fileId = null; String result = null; if(remainderSize<=0){ System.out.println("wrong file path..."); } long startTime = System.currentTimeMillis(); while (remainderSize>0) { TreeMap<String, Object> params = new TreeMap<String, Object>(); params.put("fileSha", fileSHA1); params.put("fileType", uploadParam.getFileType()); params.put("fileName", uploadParam.getFileName()); params.put("fileSize", fileSize); params.put("dataSize", tmpDataSize); params.put("offset", tmpOffset); params.put("file", fileName); params.put("isTranscode", 0); params.put("isScreenshot", 0); params.put("isWatermark", 0); result = module.call("MultipartUploadVodFile", params); System.out.println(result); JSONObject json_result = new JSONObject(result); code = json_result.getInt("code"); if (code == -3002) { //服务器异常返回,需要重试上传(offset=0, dataSize=10K,满足大多数视频的上传) tmpDataSize = firstDataSize; tmpOffset = 0; continue; } else if (code != 0) { return null; } flag = json_result.getInt("flag"); if (flag == 1) { fileId = json_result.getString("fileId"); break; } else { tmpOffset = Integer.parseInt(json_result.getString("offset")); } remainderSize = fileSize - tmpOffset; if (fixDataSize < remainderSize) { tmpDataSize = fixDataSize; } else { tmpDataSize = (int) remainderSize; } long costTime = System.currentTimeMillis() - startTime; LOG.info("-------this video cost time : " + costTime + "ms," + costTime / 1000 + "s"); } long totalTime = System.currentTimeMillis() - startTime; LOG.info("-------this video cost time : " + totalTime + "ms," + totalTime / 1000 + "s"); System.out.println("end..."); return result; } catch (Exception e) { e.printStackTrace(); System.out.println("error..."+e.toString()); } return null; }
有一份测试完整的代码,抽时间整理到github上
完整代码地址:https://github.com/yanhua711/morefeels
仅供参考,有问题欢迎一起研究
阅读全文
0 0
- 腾讯云视频上传问题总结
- 腾讯视频面试总结
- 腾讯一面问题总结
- 腾讯面试问题总结
- 视频上传问题
- 【腾讯云的1001种玩法】 Laravel 整合微视频上传管理能力,轻松打造视频App后台
- Android WebView无法播放腾讯视频问题
- 腾讯视频-百度云连接
- iOS开发中集成阿里云视频上传SDK总结
- 视频通话问题总结
- 视频播放问题总结
- FTP上传问题总结
- 图片上传问题总结
- 腾讯云视频直播sdk开发攻略
- Android 腾讯优图开发问题总结
- vue2.0集成ueditor以及图片上传,视频上传总结
- Node.js腾讯云COS文件上传
- 使用ueditor视频无法上传的问题
- 面试题17:合并两个排序的列表
- 详述 PO VO BO DTO DAO 和 POJO 的概念及区别
- 从零开始的RxJava之旅(4)---- RxJava2总结
- 第六节总结
- 处理图片的缩放、旋转、裁剪和翻转这四种效果
- 腾讯云视频上传问题总结
- 1194: 总成绩排序(结构体专题)
- 我理解的java设计模式之单例模式
- Android studio 开发中怎样制作.9.png的图片
- 循环层
- 记2017年上交软院优才夏令营
- Docker 搭建开发环境
- Win7快捷键17
- 织梦(dedecms)后台删除文章后台还有分页显示解决方法