m3u8流媒体跨域报错无法播放的问题-No ‘Access-Control-Allow-Origin’

2020.4.8 技术分享 40

m3u8流媒体跨域报错无法播放的问题-No ‘Access-Control-Allow-Origin’ 技术分享-第1张

一、如果服务器是Apache

1、打开配置文件“httpd.conf”搜索“LoadModule headers_module modules/mod_headers.so”把前面的“#”号去掉,这是第一步也是必须的一步。;

 

经测试 这个一般是默认打开的,不用修改 路径一般为  /www/server/apache/conf

 

2.1、打开配置文件“vhosts.conf”找到域名所在的地方添加:“Header set Access-Control-Allow-Origin *”即可,示例如下:

 

如果是用的宝塔面板的话,一般在配置文件里面修改 vhosts.conf

 

但是问题来了  我按照就成修改了,但是还是无法播放呢,关键是 另外的站点,好像没有修改 竟然能播放

 

所以问题 应该不是出在了 第二步

 

最后发现了 m3u8 里面的ts链接是 https , 所以  m3u8的链接 必须是 https  问题出在这上面,比较容易忽略

 

又出现错误了,发现还是不行,突然想明白了。第2.1的 “Header set Access-Control-Allow-Origin * 这个是放在 m3u8 所在服务器网站里面的配置文件里的,而不是放在播放网站里面的,真的是晕了,我也是菜,一直 只要 存放m3u8 的服务器配置一次就行了,问题解决

 

补充,下面的教程 我没用到 可不可用待确定

 

2.2、如果配置不好怕搞坏了可以省略第2步,但第一步一定要做,然后直接在网站所在的根目录中加入以下.htaccess文件,文件内容为:

<IfModule mod_setenvif.c> <IfModule mod_headers.c> <FilesMatch “\.(m3u8|ts)$”> SetEnvIf Origin “:” IS_CORS Header set Access-Control-Allow-Origin “*” env=IS_CORS </FilesMatch> </IfModule>

</IfModule>

 

———————————-

二、如果服务器是Nginx

1.1、如果安装了宝塔面板则在location的最下面大括号的上面加入“add_header Access-Control-Allow-Origin *;”即可;

m3u8流媒体跨域报错无法播放的问题-No ‘Access-Control-Allow-Origin’ 技术分享-第2张

1.2、或者是打开“nginx.conf”文件修改,代码如下:

  1. location ~* \.(m3u8|ts)$ { add_header AccessControlAllowOrigin *;
  2. }

或者是:

  1. location / { add_header AccessControlAllowOrigin *;
  2. }
相关推荐:

评论

昵称*

邮箱*

网址