采用HLS+m3u8方式播放视频,在播放的时候会报跨域问题。例如:https://www.***.com/crossdomain.xml找不到。
方法1:在跨域的网站根目录放crossdomain.xml文件(本文放到了根目录/usr/local/nginx/html/下后附nginx.conf配置):
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
方法2:location 中添加 add_header Access-Control-Allow-Origin *;(不需要放crossdomain.xml文件)
附nginx.conf 配置:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
hls on;
wait_key on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 10s;
hls_playlist_length 60s;
hls_continuous on;
hls_cleanup on;
hls_nested on;
}
}
}
http {
server {
listen 80;
location /live {
add_header Access-Control-Allow-Origin *; //处理跨域问题
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /usr/local/nginx/html/hls;
expires -1;
add_header Cache-Control no-cache;
}
location / {
root html;
index index.html index.htm;
}
}
}