解决网页视频最大只能播放6路的问题

您所在的位置:网站首页 浏览器只能最小化才能看直播 解决网页视频最大只能播放6路的问题

解决网页视频最大只能播放6路的问题

2024-07-13 08:51| 来源: 网络整理| 查看: 265

一、前言

现在谷歌浏览器由于是同源设置,最大只能播放6路视频。如果是火狐浏览器还好,可以更改这个同源支持的路数,但是如果是谷歌的话就难受了,因为这个参数是写死到源码中的,所以要实现播放多路视频还需要走一些其他的方法。

二、思路

既然是同源策略,那么哪些会被视为同源,哪些又被视为非同源呢?网络上的一些教程解决方案都太复杂,要么就是引入新的技术,要么还得nginx编译支持http2.0技术,我搞java的怎么有那么多的精力去搞这种c语言编译? 非同源:不同的ip或者是端口不同即可,那我们就从端口不同入手即可。

三、教程

现在网页播放谷歌已经默认不支持flash了,因此播放只能通过http-flv播放,正是通过该播放模式,才会有6路限制。既然同学们采用了http-flv的播放方式,肯定会用到nginx。下面是我nginx的播放配置,浏览器访问是通过这个ip:8070/live/xxxx来播放这个视频。

server { listen 8070; location / { root html; index index.html index.htm; } location /live { flv_live on; #打开HTTP播放FLV直播流功能 chunked_transfer_encoding on; #支持'Transfer-Encoding: chunked'方式回复 #add_header 'Access-Control-Allow-Headers' 'X-Requested-With'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS'; add_header 'Access-Control-Allow-Origin' '*'; #添加额外的HTTP头 add_header 'Access-Control-Allow-Credentials' 'true'; #添加额外的HTTP头 } }

但是由于谷歌的同源设置,这里就有问题了,ip:8070只能最大支持6次,而不是采用的flv.js出了问题。 这时候就要搞一些骚操作,我给这个8070增加了一个代理8061端口,也就是说通过8061端口也能访问到8070的视频。

server { listen 8061; server_name 192.168.2.200; location /{ root html; proxy_pass http://192.168.2.200:8070; index index.html index.htm; } }

如果想要支持100路都是可以的,只要你服务器带宽够,这样又不引入其他的技术,是不是美滋滋?

后台或者前端拼接视频地址的时候就需要判断一下 判断一下响应给前端的8070端口是否大于6,如果大于6就使用备用端口8061


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3