php获取h5视频直链,一种H5播放实时视频的方法与系统与流程

2cf3f9c0993473cfb157234b12879ee1.gif

本发明涉及播放实时视频,尤其涉及一种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路转码分发。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础题

1,别名,内部,外部,hash优先级? 2,screen协助 1.一台screen -S 协助名称 2.另外一台screen -ls 列出目前开的协助会话(session),找到上面协助名称对应的session号。 3. sc…

大数据笔记(十三)——常见的NoSQL数据库之HBase数据库(A)

一.HBase的表结构和体系结构 1.HBase的表结构 把所有的数据存到一张表中。通过牺牲表空间,换取良好的性能。 HBase的列以列族的形式存在。每一个列族包括若干列 2.HBase的体系结构 主从结构: 主节点:HBase 从节点:RegionServer 包…

linux内核网络钩子函数使用,Linux内核IOCTL网络控制框架实现实例分析

4.6、inet_ioctl函数由于inet_ioctl函数内容分支很多,但功能、处理不难理解,所以我把一些不常见的内容都省去,挑简单重要的说,完全在于抛砖引玉:static int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg){…switch(cmd){case FIOSETOWN://设置属主cas…

(转)递归转非递归的思路和例子

转自:http://blog.51cto.com/cnn237111/1241956 某些算法逻辑,用递归很好表述,程序也很好写。理论上所有的递归都是可以转换成非递归的。如果有些场合要求不得使用递归,那就只好改成非递归了。 通常改成非递归算法的思路&#xff…

iOS - 富文本

iOS--NSAttributedString超全属性详解及应用(富文本、图文混排) ios项目中经常需要显示一些带有特殊样式的文本,比如说带有下划线、删除线、斜体、空心字体、背景色、阴影以及图文混排(一种文字中夹杂图片的显示效果)。…

pdf.js 文字丢失问题 .cmaps

使用pdf.js 展示pdf文件 需求:电子发票类的pdf文件,以base64流的形式请求到,在浏览器中展示pdf文件 遇到的问题: 正常展示后,部分文字无法正常显示, 正常显示如下: 文件目录: js:fun…

超过4g的文件怎么上传到linux,怎么免费上传大于4G的文件到百度云 大于4G的文件不开会员怎么上传到百度云...

4G管家appv1.0 安卓版类型:系统工具大小:13.1M语言:中文 评分:10.0标签:立即下载百度云可以非常方便大家存储一些大文件资料,而且百度云的容量也非常高,不过如果你是普通用户的话要想上传大于4g…

android 屏幕坐标色彩,Android自定义View实现颜色选取器

Android 自定义View 颜色选取器,可以实现水平、竖直选择颜色类似 SeekBar 的方式通过滑动选择颜色。效果图xml 属性1.indicatorColor 指示点颜色2.indicatorEnable 是否使用指示点3.orientation 方向horizontal 水平vertical 竖直使用复制 \library\src…\ColorPick…

linux右键菜单的截图,Linux: 给右键菜单加一个“转换图片为jpg格式”

Linux上通常都会安装imagemagick这个小巧但又异常强大的工具。这个软件提供了一系列很好用的功能。这里说一说如何使用它的convert命令转换图片为jpg格式,以及如何把它添加到Thunar的右键菜单。convert转换图片为jpg格式用起来超简单:convert -format jp…

eclipse实现Android登录功能,eclipse开发安卓登录

划线的地方怎么解决啊?有没有大佬知道如何修改package com.example.login;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Edito…

android tcp 最优窗口,Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)...

简介HTTP协议(超文本传输协议)和 UDP(用户数据包协议),TCP 协议(传输控制协议)TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP…

c语言10个数如何求最大值,C语言,输入10个数怎样输出10个数中最大值,最小值(大一计算机)...

可以参考下面的代码:#include int main(){int loop 10;int min, max, value;do{printf("输入整数:");scanf("%d", &value);if (loop10) {max min value; loop--; continue;} else {if (value > max) max value;if (value loop--;}} …

android波纹效果弹窗,Android自定义View实现波纹效果

Android自定义View实现波纹效果时间:2017-05-27 来源:移动互联网学院1、引言:随着Android智能手机的普及,Android应用得到了大力支持,而Android应用的市场前景也是非常的强势。在Android应用的实际开发中&#xff…

图像滤镜艺术---Oilpaint油画滤镜

图像滤镜艺术---Oilpaint油画滤镜 原文:图像滤镜艺术---Oilpaint油画滤镜Oilpaint油画滤镜 图像油画效果实际上是将图像边缘产生一种朦胧,雾化的效果,同时,将一定的边缘模糊化,这样图像整体上看去像素与像素之间就像雾一样随机呈现…

转:数据库收缩

1. 数据库的相关属性 在MS中创建数据库时会为数据库分配初始的大小(如下图:数据库和日志两个文件),随着数据库的使用文件会逐渐增大。数据库文件大小的增加有两种方式: 自动增长:在自动增长中可以设置每次的…

懒加载与预加载

前端性能优化中图片资源的优化。 1.懒加载(延迟加载) 1.图片进入可视区域之后请求图片资源; 2.对于电商等图片较多,页面很长的业务场景很适用; 3.可以减少无效资源的加载; 4.并发加载的资源过多会阻塞js的加…

8.使用Exists监控ZNode的三大Change事件

一、 zookeeper是一个分布式的协调程序(所有程序都是通过订阅它来相互感知)1. tcp(长链接) watcherserver -》clientclient -》server2. Driver 中的方法 exists() 监控一个znode的 CURD 的操作。client1 client2 同时订阅 baidu…

[SDOI2016]储能表

Description 有一个 n 行 m 列的表格,行从 0 到 n−1 编号,列从 0 到 m−1 编号。每个格子都储存着能量。最初,第 i 行第 j 列的格子储存着 (i xor j) 点能量。所以,整个表格储存的总能量是, 随着时间的推移&#xff0…

html对图片轮播脚本怎么调用,【jquery前端开发】可调整的幻灯片(图片轮播)

第一次写博客,希望接下来写的东西 或多或少能帮到些人,虽然这些东西都是一些大神前辈们写了无数遍的东西,但我尽量以一名小白的视角把代码写得清楚点,好心人的就给点赞吧。1.前期准备这是我们编写代码前必须要做的事,在…

计算机主机信息怎么看,本机电脑硬件配置信息怎么看?Win7/Win10查看详细电脑配置方法...

电脑配置决定了一台电脑的性能好坏,如果电脑配置没有达到游戏或者软件的要求,那么肯定无法流畅运行的。对于一些小白用户不知道如何查看电脑硬件配置,那么本机电脑硬件配置信息怎么看?下面装机之家小编分享一下Win7/Win10查看详细…