本发明涉及播放实时视频,尤其涉及一种h5播放实时视频的方法与系统。
背景技术:
h5是指第5代html,也指用h5语言制作的一切数字产品。所谓html是“超文本标记语言”的英文缩写。“超文本”是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。而“标记”指的是这些超文本必须由包含属性的开头与结尾标志来标记。浏览器通过解码html,就可以把网页内容显示出来。基于这种h5解码技术将接收到的视频信息,就可以通过网页的形式播放出来。
目前,h5播放视频,大部分都不支持websocket方式,都是通过m3u8格式进行播放,延迟将近10秒,无法应用于实时场景。
技术实现要素:
为了解决现有技术中的问题,本发明提供了一种h5播放实时视频的方法与系统。
本发明提供了一种h5播放实时视频的方法,包括以下步骤:
s1、在推流端,将推流格式调整为h264baseline模式;
s2、将视频流转发到rtmp流媒体服务器;
s3、用node.js服务器启动脚本对h264baseline的视频流进行解码,并重新组装成适合websocket模式的视频流;
s4、h5客户端启动连接到node.js服务器的监听端口,并告知node.js服务需要哪一路视频流;
s5、node.js对当前视频流进行实时转发;
s6、当流媒体有中断的时候,根据rtmp流媒体服务器相关事件进行停止或者重启解码并转发;
s7、h5客户端利用转发的视频流,用canvas实时绘制视频流。
作为本发明的进一步改进,在步骤s1中,在推流端,将推流格式由h264high模式,改变成h264baseline模式。
作为本发明的进一步改进,node.js服务器的实时解码过程如下:
1)启动流媒体服务器;
2)推流端将h264high模式改为h264baseline模式,并推流到流媒体服务器;
3)node.js服务器对流媒体服务器流事件进行监控;
4)进行流事件处理,如果流断开,则停止转码,如果新流产生,则启动脚本并实时解码组装。
作为本发明的进一步改进,h5客户端的实时播放流程如下:
1)h5客户端通过websocket连接到node.js服务器;
2)h5客户端指定需要哪一路视频流;
3)node.js服务器实时转发视频流;
4)h5客户端用canvas实时绘制视频流。
本发明还提供了一种h5播放实时视频的系统,包括可读存储介质,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现如上述中任一项所述的方法。
本发明的有益效果是:实现了h5播放实时视频。
附图说明
图1是本发明一种h5播放实时视频的方法的node.js服务器的实时解码流程图。
图2是本发明一种h5播放实时视频的方法的node.js服务器的h5客户端的实时播放流程图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
一种h5播放实时视频的方法,包括以下步骤:
1.在推流端,将原来的推流格式h264high模式,改变成h264baseline模式。
2.将视频流转发到rtmp流媒体服务器。
3.用node.js启动脚本对h264baseline的视频流进行解码,并重新组装成适合websocket模式的视频流。
4.h5客户端启动连接到node.js的监听端口,并告知node.js服务需要哪一路视频流。
5.node.js对当前视频流进行实时转发。
6.当流媒体有中断的时候,根据rtmp流媒体服务器相关事件进行停止或者重启解码并转发。
7.h5客户端利用转发的视频流,用canvas实时绘制视频流。
本发明提供的一种h5播放实时视频的方法,改变推流的模式,能兼容app和h5;需要实现rtmp视频流解码成websocket的视频流;要能监控视频流的状态,实现程序自动停止和重启视频流的解码和转发。
如图1所示,node.js服务器的实时解码过程如下:
1)启动流媒体服务器;
2)推流端将h264high模式改为h264baseline模式,并推流到流媒体服务器;
3)node.js服务器对流媒体服务器流事件进行监控;
4)进行流事件处理,如果流断开,则停止转码,如果新流产生,则启动脚本并实时解码组装。
node.js是一个基于chromev8引擎的javascript运行环境。
如图2所示,h5客户端的实时播放流程如下:
5)h5客户端通过websocket连接到node.js服务器;
1)h5客户端指定需要哪一路视频流;
2)node.js服务器实时转发视频流;
3)h5客户端用canvas实时绘制视频流。
h5播放实时视频应用到娃娃部落抓娃娃的实例:
1.在推流端,将推流参数调整为h264的baseline模式。
2.node.js调用相关的脚本,对rtmp流媒体服务器事件进行监控,同时对客户端的连接进行监听。
3.当有新的baseline模式的流上来时,启动一个脚本进行实时转码。
4.当有新的用户通过h5来观看或者游戏的时候,通过canvas实时绘制视频流。
一种h5播放实时视频的系统,包括可读存储介质,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现如上述中任一项所述的方法。
本发明提供的一种h5播放实时视频的方法与系统,可以在h5或者微信网页里面直接打开视频,并且能实时操作,做到基本无延时,延时在200ms以内。
本发明提供的一种h5播放实时视频的方法与系统,具有以下效果:
1、以前需要通过app才能体验的方式,扩展到h5也能支持。
2、对业务的拉新产生了比较好的效果。
3、在480*640的视频流下解码并组装,一个8核16g内存的服务器,可以支持同时128路转码分发。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。