平台通过海康综合安防管理平台获取到视频地址
根据配置项获取hls格式的视频
最后给到的接口地址的http协议的,导致视频播放器不能正常播放
平台前端使用的是vue-video-play,请问这个问题该怎么解决
平台通过海康综合安防管理平台获取到视频地址
提示: 本回答参考 AIGC,由本人审核整理提供。若问题解决,望采纳;如仍有疑问,请评论回复。
根据你提供的信息,问题主要在于从海康综合安防管理平台获取到的HLS视频地址是HTTP协议的,而现代浏览器(如Chrome)默认不允许在HTTPS页面中加载HTTP资源,这会导致视频播放器无法正常播放视频。
vue-video-player
时,可以在视频播放器组件中手动将HTTP URL转换为HTTPS URL。location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
在你的服务器上搭建一个代理服务,例如使用Nginx反向代理:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location /proxy {
proxy_pass http://183.245.39.132:83/openUrl/2kRjm10/1live.m3u8;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
前端代码中将视频地址改为代理服务的地址:
this.$refs.videoPlayer.src = 'https://yourdomain.com/proxy';
let videoUrl = 'http://183.245.39.132:83/openUrl/2kRjm10/1live.m3u8';
if (videoUrl.startsWith('http:')) {
videoUrl = videoUrl.replace('http:', 'https:');
}
this.$refs.videoPlayer.src = videoUrl;
通过以上几种方法,可以解决从海康平台获取到的HTTP视频地址无法在HTTPS页面中播放的问题。建议优先尝试配置HTTPS和CORS,如果无法修改海康平台的配置,再考虑使用代理服务器或修改前端代码。