开发者社区> 问答> 正文

OSS通过鉴权地址下载的文件无法截取视频截帧,需要怎么处理才可以截图

已解决

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/video.mp4?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast,可以截图。

http://lawyer-zaobao.oss-cn-wulanchabu.aliyuncs.com/1674980396369_78ec566195023b8de74df04529f30e8c.mp4?OSSAccessKeyId=STS.NUZu162twnda9WuvAcCWzE&Expires=1675101164&Signature=dh7tcf0f%2Bf2CdGmwk%2B5VrkkM%3D&security-token=CAIS%2BAF1q6Ft5yfSjIr5aMKPDumO4XhbacbELQ3Vcges5PrJLRpzz2IHlJfHBpA%2BsZs%2FgwnmpT6%2FgdlqV3QoBUSFaBdcJo444PGogXmwKZ6aKP9rUhpMCPOwr6UmzWvqL7Z%2BH%2BU6muGJOEYEzFkSle2KbzcS7YMXWuLZyOj%2BwMDL1VJH7aCwBLH9BLPABvhdYHPH%2FKT5aXPwXtn3DbATgD2GM%2Bqxsmtv3hn53Ft0GF0wShm7BInemrfMj4NfsLFYxkTtK40NZxcqf8yyNK43BIjvwv0fQdoG2c4YzBXAMLuEjYbPCx%2B9luPRJ%2FYbMhAalAoegjcTvUXiM9%2FBqAATAyKpJBie8%2F0%2F%2BNDscRRJVV6HBEbhffkEXjg5Ea64lzsUxNjyX6VjIvabYUvEghBMk3IXfvdcRz8IuaOzYH2Un4Bq8pp%2BCylGKYo4LlhI6AnYSGSM2XyE%2BLXzdYc%2ByzCmX0BuOxVZH4r2zxnqfKJYtkw0Si8Y&x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast,无法截图

展开
收起
mssjj5u7ike3a 2023-01-30 16:56:20 386 0
2 条回答
写回答
取消 提交回答
  • 采纳回答

    需要将鉴权地址改为公共读取权限,即将上述鉴权地址中的OSSAccessKeyId、Expires、Signature、security-token参数去掉,变成公共读取权限的地址,如:http://lawyer-zaobao.oss-cn-wulanchabu.aliyuncs.com/1674980396369_78ec566195023b8de74df04529f30e8c.mp4,然后再添加上x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast参数,即可截图。

    2023-01-31 14:28:58
    赞同 1 展开评论 打赏
  • 资深技术专家,全网粉丝10W+。主攻技术开发,擅长分享、写文、测评。

    生成带签名的视频截帧URL 您可以通过SDK生成带签名的视频截帧URL,以Java SDK为例,代码如下:

    // Endpoint以杭州为例,其它Region请按实际情况填写。
    String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    String accessKeyId = "yourAccessKeyId";
    String accessKeySecret = "yourAccessKeySecret";
    // 填写视频文件所在的Bucket名称,例如examplebucket。
    String bucketName = "examplebucket";
    // 填写视频文件的完整路径。若视频文件不在Bucket根目录,需携带文件访问路径,例如examplefolder/videotest.mp4。
    String objectName = "examplefolder/videotest.mp4";
    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    // 使用精确时间模式截取视频17s处的内容,输出为JPG格式的图片,宽度为800,高度为600。
    String style = "video/snapshot,t_17000,f_jpg,w_800,h_600";
    // 指定过期时间为10分钟。
    Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 );
    GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
    req.setExpiration(expiration);
    req.setProcess(style);
    URL signedUrl = ossClient.generatePresignedUrl(req);
    System.out.println(signedUrl);
    // 关闭OSSClient。
    ossClient.shutdown();
    

    生成带签名的视频截帧URL与生成带签名的图片处理URL的方法类似。 注意事项 使用视频截帧时,按视频截帧截取的图片数量计费。有关计费详情的更多信息,请参见数据处理费用。 仅支持对视频编码格式为H264和H265的视频文件进行视频截帧。 OSS默认不保存视频截帧的图片,视频截帧的图片需手动下载并保存至本地。

    2023-01-30 21:23:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载