浏览器只能播放6路http-flv流的解决方法

一、现象

如下图所示,尝试在网页中播放超过6路http-flv流, 结果第7路无法播放。

浏览器只能播放6路http-flv流的解决方法_第1张图片

 

在开发者工具中可以看到超过6个在线播放数目时,请求flv地址处于pending状态。

浏览器只能播放6路http-flv流的解决方法_第2张图片

 

二、原因

导致该现象产生的原因为浏览器同域名请求的最大并发数限制。具体可以参考文章《浏览器同域名请求的最大并发数限制》、《flvjs是否限制了直播流的数量?》。

 

三、解决方法

方法一、使用nginx-http-live-module。nginx-http-live-module是nginx-http-flv-module的作者在其基础上开发的商用软件。该模块使用了HTTP/2.0,从而解决浏览器限制HTTP/1.x同源连接并发个数的问题。参考文章《使用HTTP/2.0解决浏览器限制同源HTTP/1.x连接并发个数的问题》。缺点:该模块不开源,不免费,如果想使用,得联系nginx-http-flv-module和nginx-http-live-module的作者。注意:不能简单的在编译nginx时加上http_v2_module和nginx-http-flv-module,这样开启http2.0是会失败的,参考文章《关于https的支持》。

 

方法二:使用ws-flv(websocket-flv),目前很火的流媒体服务器ZLMediaKit支持ws-flv。链接:https://github.com/xia-chu/ZLMediaKit/wiki/%E6%92%AD%E6%94%BEurl%E8%A7%84%E5%88%99

编译方法可以参考博文《windows下编译ZLMediaKit》。

 

 

 

 

你可能感兴趣的:(音视频技术,http-flv)