m3u8直播跨域访问被拒绝,视频无法正常播放的解决办法

有些第三方的m3u8直播地址,放到自己网站上无法正常播放。是因为这些第三方的直播地址做了防跨域,无法在其它网站上播放。

比如:https://www.xxxxx.com/live/1.m3u8是一个第三方的直播地址,放在我们自己网站(https://www.zhiboblog.com)上播放时无法播放,提示跨域访问被拒绝。

如何解决m3u8直播跨域访问被拒绝,视频无法正常播放呢?

其实也很简单,只要在nginx上做一下反向代理。

打开nginx配置文件,添加下面这段代码,添加好后重启一下nginx

location ^~ /third_live/ {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,Keep-Alive,Origin,User-Agent,X-Requested-With,content-type,Authorization, x-ui-request,lang';
    proxy_pass https://www.xxxxx.com/;
    proxy_set_header referer "";
}

上面这段代码的意思是,将我们自己网站的"/third_live/"这个地址反向代理到"https://www.xxxxx.com/"这个地址,也就是当访问我们自己网站"https://www.zhiboblog.com/third_live/"这个地址的时候就相当于访问了"https://www.xxxxx.com/"这个地址。

并且把referer设置成了空,这样就可以通过对方的referer验证。

原来的第三方直播地址:https://www.xxxxx.com/live/1.m3u8,现在就可以用:https://www.zhiboblog.com/third_live/live/1.m3u8来播放了。

这样就解决了m3u8直播跨域访问被拒绝,视频无法正常播放的问题了。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: