视频点播 VOD
视频点播 VOD
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- API参考
- 服务端SDK
-
常见问题
- 高频常见问题
- 产品咨询
-
购买计费
- 视频点播提供了哪些套餐包?如何使用?
- 如何查看点播套餐包的使用详情?
- 点播CDN流量包是什么?对计费模式是否有限制?
- 套餐包是否可以续费以及重复购买?
- 购买套餐包是否有地域限制?
- 购买的媒体处理服务的转码套餐包,能在视频点播的转码功能中使用吗?
- 购买了转码套餐包,为什么没有抵扣转码时长?
- 为什么充值后还是提示欠费?
- 购买了套餐包,为什么账户提示欠费?
- 日峰值带宽是如何计算的?如何计费的?
- 购买了H.265的转码套餐包,是否可以变更为H.264规格的?
- 购买的套餐包还未使用,是否可以申请退款?
- 按流量计费和按带宽计费有什么区别?
- 点播的CDN流量包是否可以和CDN的流量包通用?
- 点播套餐包过期了怎么办?
- 转码套餐包中的已使用时长是如何计算的?
- 账户欠费资源的保留期有多久?
- 点播服务不使用的情况下是否需要退订?
- 点播的视频流量是如何计费的?
- 视频转码一进多出是如何计费的?
- URL拉取是如何收费的?
- 如何计算点播CDN加速流量?
- 使用工作流是如何计费的?
- 通过同一终端ID重复观看某个视频,是否会重复计费?
- 音视频审核是否计费?
- 账单中产品为“点播录制”的费用项收取的是什么费用?
- 为什么流量包中的流量使用量与数据分析中的流量显示存在差别?
- 为什么CDN加速域名没有业务,却产生了流量费用?
- 权限管理
- 域名管理
- 消息订阅
-
上传问题
- 视频点播支持上传哪些格式的音视频文件?
- 视频点播有哪些音视频上传方式?
- 是否支持压缩上传视频文件?
- 单个视频文件大小的上传是否有限制?
- 视频点播对视频存储是否有限制?
- 视频文件名最大命名长度是多少?
- 视频上传时间过长怎么办?
- 为什么上传音视频后,无法获取到音视频的时长?
- 点播控制台是否支持断点续传?
- 如何避免上传重复文件?
- 视频点播的本地上传的存储和费用是什么样的?
- 为什么视频上传后,在控制台找不到了?
- 通过控制台上传,页面自动退出登录导致上传失败
- 音视频上传后,多久可以播放?
- 上传一个视频文件需要多久?
- 为什么无法上传媒资?
- 为什么在控制台上传封面后不显示?
- 点播视频是否支持微信小程序上传?
- 点播上传视频是否需要上传封面?
-
音视频处理问题
- 如何在本地查看视频详细信息?
- 如何为视频增加字幕?
- 如何在点播控制台导出全部音视频信息?
- 为什么在控制台的视频截图中无法看到所有上传的视频文件?
- 音视频管理中的时长是指转码时长还是片源时长?
- 视频点播是否有内置系统模板?
- 音视频转码支持哪些输入格式?
- 音视频转码支持哪些输出格式?
- 如何将视频转码成多种分辨率格式?
- 是否支持同时对一个视频使用多个转码模板进行转码?
- 转码成HLS格式,生成的索引文件是否会产生费用?
- 为什么转码输出的视频分辨率与转码模板设置的不一致?
- 为什么转码有时很快有时很慢呢?
- 视频转码输入分辨率是否支持8K?
- 转码会导致音视频文件的大小产生变化吗?
- 为什么删除媒资失败?
- 转码模板设置了三路输出,为什么实际只有两路输出?
- 点播服务是否支持转码回调?
- 为什么视频转码/切片后,时长与播放器中看到的时长不一致?
- CDN预热为什么会失败?
- 为什么无法删除水印模板?
- 如何实现对上传音视频进行先审后发?
-
播放问题
- 视频播放效果是否有地域上的区别?
- DASH、HLS和MP4格式有什么播放体验区别?
- 如何获取音视频文件的播放URL?
- 如何在移动端播放点播音视频?
- 视频点播控制台预览播放支持哪些格式?
- 复制HLS流播放URL到浏览器中无法播放
- 播放HLS格式视频卡顿怎么办?
- 上传的原始视频预览失败怎么办?
- 视频播放URL是否支持生成二维码?
- 视频上传后必须转码才能播放吗?
- 使用自有域名,为什么视频播放失败?
- 不购买转码套餐包,视频能播放吗?
- 为什么HLS加密视频播放失败?
- 点播服务是否对同时在线观看人数有限制?
- 为什么访问播放地址返回403?
- 可以使用自有播放器播放上传到点播的音视频吗?
- 点播服务生成的播放地址中可以替换成自有的域名?
- HLS加密视频播放模糊不清?
- 为什么无法获取已转码视频的播放地址?
- 为什么播放转码视频出现卡顿?
- key防盗链配置后,转码的m3u8格式的视频为什么播放不了?
- 使用HLS加密的视频二次转码后为什么无法播放?
- 为什么视频在电脑浏览器中可以正常播放,而手机端却无法播放?
-
API&SDK使用
- 如何获取临时AK/SK/securityToken?
- 为什么调用查询媒资信息接口返回的媒资时长为0?
- 调用点播API时返回“租户ID校验失败,请检查”
- 调用API删除媒资时返回“The throttling threshold has been reached”
- 调用CDN预热接口,返回成功是指预热成功吗?
- 密钥查询接口的调用频率超过100次/分钟怎么办?
- 处理媒资时,为什么提示“当前媒资或资源状态不支持该操作”?
- 服务端SDK有哪些版本?
- 为什么调用"查询指定媒资的详细信息"接口时,返回结果中的“source_path”和“output_path”参数为空?
- 调用SDK或API上传视频过程中取消上传,如何删除已经上传的分段视频?
- 调用api上传视频文件后,为什么无法获取封面?
- 如何设置AK/SK和securitytoken的有效期?
- 调用API上传水印图片后,为什么在控制台上无法预览?
- 安全类问题
- 统计分析
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
生成MD5值
媒资上传和更新
调用创建媒资:上传方式和视频更新接口时,可以通过“video_md5”设置媒资文件的MD5值。设置后,OBS会对媒资的MD5值进行检验,具体可参考设置对象属性。
该MD5值是经过标准的MD5哈希算法计算后,再进行base64编码的。示例代码如下所示:
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 |
import org.apache.commons.codec.binary.Base64; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.DigestInputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class VodDemoObsCheckMd5 { public String md5Generate4ObsCheck(String fileUrl) throws IOException, NoSuchAlgorithmException { String md5Content = null; if ((fileUrl != null) && (fileUrl.length() != 0)) { File file = new File(fileUrl); if (!file.exists()) { System.out.println("文件不存在"); } else if (file.isDirectory()) { System.out.println(file.getCanonicalPath() + "是一个目录,无法计算"); } else { FileInputStream fis = new FileInputStream(file); DigestInputStream dis = new DigestInputStream(fis, MessageDigest.getInstance("MD5")); byte[] buffer = new byte[8192]; while (dis.read(buffer) > 0) { } md5Content = new String(Base64.encodeBase64( dis.getMessageDigest().digest())); fis.getChannel().position(0L); System.out.println("该文件MD5为: " + md5Content); fis.close(); } } else { System.out.println("缺少文件名"); } return md5Content; } } |
上传校验
调用上传检验接口时,点播服务会根据媒资的MD5值来检查是否已有重复的媒资文件。MD5值的生成方式是取媒资文件的1024字节,并进行MD5计算,示例代码如下所示:
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 |
import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.SeekableByteChannel; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import org.apache.commons.codec.digest.DigestUtils; public class VodDemoDuplicateCheckMd5 { public static String computeMd5ByFile(String fileUrl) { String md5Content = null; Path targetFile = Paths.get(fileUrl); try (SeekableByteChannel channel = Files.newByteChannel(targetFile, StandardOpenOption.READ)) { ByteBuffer byteBuffer = ByteBuffer.allocate(1025); channel.read(byteBuffer); byteBuffer.flip(); byte[] data = new byte[byteBuffer.limit()]; byteBuffer.get(data); md5Content = DigestUtils.md5Hex(data); } catch (IOException e) { throw new RuntimeException(String.format("Read file %s failed.", fileUrl)); } return md5Content; } } |
父主题: 附录