小程序video播放OSS防盗链视频报错

小程序video标签播放带有阿里防盗链的视频地址 报错 MEDIA_ELEMENT_ERROR:Format error

  • 小程序开发者工具报
MEDIA_ELEMENT_ERROR:Format error
  • 真机调试报错:
errMsg: "error code = -499897,
domain = kTTVideoErrorDomainOwnPlayer,
info = { TTPlayerErrorInfoKey = "<avio.c,ffurl_seek,490>AVERROR(ENOSYS)
<http.c,check_http_code,1036>AVERROR(EIO)
<http.c,process_line,1362>ret:-858797304
<http.c,http_read_header,1599>HTTP/1.1 403 Forbidden
<avio.c,ffurl_connect,240>err:-858797304
<utils.c,init_input,420>ret:-858797304
<utils.c,avformat_open_input,562>ret:-858797304
ffmpeg format error.code:-858797304,message:Server returned 403 Forbidden (access denied) open input file. fail:-1"; 
isDirectURL = 1; 
},
src = https://static.dffengguang.com.cn/back-end/carvideo/20220624104613.mp4 
--- vid = ,api_version = ,fetcher = --- video_model =
  • 判断应该是防盗链问题,解决如下:
  1. 登录阿里云OSS管理后台配置OSS Referer白名单:

    WeChat72211bfe8a0978540100ffa3c687dcc3.png
  1. 在阿里云cdn配置 Referer白名单:

    WeChat25b2a2aa2a53ea5bc3ea221a5850d929.png

    3.配置的字节小程序域名:

https://microapp.bytedance.com/
https://tmaservice.developer.toutiao.com/
  • 注:当时只设置了阿里OSS的Refer白名单 无效 ,最后添加了cdn的Referer白名单就能播放了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot应用程序中播放OSS存储的视频,您需要执行以下步骤: 1. 在pom.xml中添加aliyun-oss-sdk和aliyun-java-sdk-core依赖项: ``` <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.3.3</version> </dependency> ``` 2. 创建一个OSS客户端的Bean: ``` @Configuration public class OSSConfig { @Value("${oss.endpoint}") private String endpoint; @Value("${oss.accessKeyId}") private String accessKeyId; @Value("${oss.accessKeySecret}") private String accessKeySecret; @Value("${oss.bucketName}") private String bucketName; @Bean public OSS ossClient() { return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); } } ``` 3. 创建一个控制器来处理视频请求,并将视频OSS下载到本地文件系统: ``` @RestController public class VideoController { @Autowired private OSS ossClient; @Value("${oss.bucketName}") private String bucketName; @GetMapping("/video/{key}") public ResponseEntity<Resource> downloadVideo(@PathVariable("key") String key) throws IOException { OSSObject ossObject = ossClient.getObject(bucketName, key); InputStream inputStream = ossObject.getObjectContent(); File videoFile = new File(key); FileUtils.copyInputStreamToFile(inputStream, videoFile); ByteArrayResource resource = new ByteArrayResource(FileUtils.readFileToByteArray(videoFile)); HttpHeaders headers = new HttpHeaders(); headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + key); return ResponseEntity.ok() .headers(headers) .contentLength(videoFile.length()) .contentType(MediaType.parseMediaType("video/mp4")) .body(resource); } } ``` 4. 在application.properties文件中配置OSS的访问凭证和其他属性: ``` oss.endpoint=<your OSS endpoint> oss.accessKeyId=<your access key id> oss.accessKeySecret=<your access key secret> oss.bucketName=<your bucket name> ``` 现在,您可以通过访问“/video/{key}”端点来播放存储在OSS中的视频

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值