一种无客户端的跨平台视频播放实现方法与流程

文档序号:11292672阅读:1164来源:国知局
一种无客户端的跨平台视频播放实现方法与流程

本发明属于互联网流媒体技术领域,涉及一种无客户端的跨平台视频播放实现方法。



背景技术:

随着互联网的高速发展,视频监控类应用的物联网设备的增多,人们通过pc端web浏览器或手机客户端观看视频的需求逐步增多,传统的实时传输协议(rtp)、实时流传输协议(rtsp)等流媒体协议已逐渐显示其中的缺点,服务端实现、部署复杂度高,需要开放单独的网络端口,容易被网络防火前拦截等。而传统的基于http协议的流媒体服务器,虽然部署简单,不需单独的网络端口,但其对实时视频流的支持较差,且需要安装flash插件来支持视频播放,难以做到跨平台来满足大众的需求。

因此,研究一种跨平台性能好、无需专用播放器或插件支持的物联网设备视频播放方法,具有巨大的实际应用价值。



技术实现要素:

本发明的目的是提供一种无客户端的跨平台视频播放实现方法,解决了现有技术中视频播放跨平台性差,需要专用的客户端或浏览器插件支持,服务端安装部署麻烦的问题。

本发明采用的技术方案是,一种无客户端的跨平台视频播放实现方法,按照以下步骤实施:

步骤1、客户端向流媒体服务器发起视频请求

1.1)启动流媒体服务器,解析配置文件,创建rpc线程并绑定至特定端口,监听客户端连接的到来;

1.2)web客户端读取数据库中保存的摄像机列表显示至web界面供用户选择;

1.3)根据用户所选的具体摄像机编号、通道号向流媒体服务器rpc接口发起视频请求;

步骤2、流媒体服务器对web客户端请求进行解析处理;

步骤3、web客户端向流媒体服务器发起http请求;

步骤4、流媒体服务器通过http协议传递特定视频分片至web客户端;

步骤5、web客户端解析视频分片内容并播放。

本发明的有益效果是,结合dash协议和视频监控的特点,通过对dash协议的实时性增强和优化等改进,实现了实时和历史视频播放。服务端按照dash视频流支持的格式对原始视频进行处理,生成mpd索引文件和视频分片文件,客户端采用html5+mse技术完成视频流的播放,用户无需单独安装flash插件或特定播放器软件,即可自适应不同视频流中分辨率、帧率的改变,借助浏览器能够很好的在android、ios、windows、linux等不同平台阅览视频,支持实时视频和历史视频的调阅,增强用户体验。

附图说明

图1为本发明方法的整体框架图;

图2为本发明方法rpc模块交互流程图;

图3为本发明视频播放过程中http交互图。

具体实施方式

以下本文中的流媒体服务器是指装有服务端程序的pc机,web客户端是指支持html5和mse扩展的web浏览器。

本发明采用html5+mse(mediasourceextensions)技术,从工程角度实现mpeg-dash协议,实现了无客户端的视频播放方法。

如图1所示,流媒体服务器由rpc模块、dash视频流处理模块、http服务模块三部分构成,其中rpc模块负责和客户端进行通信并处理客户端视频请求;dash视频流处理模块负责将原始视频流数据打包成mpeg-dash支持的格式,产生视频分片文件和mpd索引文件存储在服务器端;http服务模块负责视频分片文件的传输。

本发明方法,基于上述的流媒体服务器架构,按照以下步骤实施:

步骤1、客户端向流媒体服务器发起视频请求

1.1)启动流媒体服务器,解析配置文件,创建rpc线程并绑定至特定端口(默认为8090,用于和web客户端进行rpc通讯),监听客户端连接的到来;

1.2)web客户端读取数据库中保存的摄像机列表显示至web界面供用户选择;

1.3)根据用户所选的具体摄像机编号、通道号向流媒体服务器rpc接口发起视频请求;

步骤2、流媒体服务器对web客户端请求进行解析处理

2.1)解析客户端请求命令;

2.2)创建视频处理线程,将原始h.264格式的视频流数据打包处理成mpeg-dash所需的格式,生成mpd索引文件和视频分片并存储于服务器端;

2.3)采用统一命名规范对视频分片进行命名处理;

2.4)通过rpc接口返回mpd文件所在的虚拟url至web客户端;

步骤3、web客户端向流媒体服务器发起http请求

3.1)根据rpc接口返回的url向流媒体服务器发起httpget请求,下载mpd文件;

3.2)解析mpd索引文件,获得媒体持续时间、比特率、分片url等媒体特征信息;

3.3)根据视频分片1的url向流媒体服务器发起http请求;

步骤4、流媒体服务器通过http协议传递特定视频分片至web客户端

4.1)解析web客户端的http请求;

4.2)根据web客户端的请求url,流媒体服务器查找该url对应的视频分片文件;

4.3)调用readfile()函数读取视频分片文件,通过httpsendhttpresponse()方法返回视频分片数据至web客户端;

步骤5、web客户端解析视频分片内容并播放

5.1)web客户端解析视频分片内容并进行播放;

5.2)开启自适应机制,通过一定的策略估算网络带宽,调整下一次请求视频分片的比特率,继续向流媒体服务器请求下一个视频分片,直至视频播放完成。

实施例

步骤1、客户端向流媒体服务器发起视频请求

1.1)启动流媒体服务器,解析配置文件,创建rpc线程并绑定至特定端口(默认为8090,用于和web客户端进行rpc通讯),监听客户端连接的到来;

1.2)web客户端读取数据库中保存的摄像机列表显示至web界面供用户选择;

1.3)根据用户所选的具体摄像机编号、通道号向流媒体服务器rpc接口发起视频请求;

步骤2、流媒体服务器对web客户端请求进行解析处理

2.1)解析客户端请求命令;

2.2)创建视频处理线程,将原始h.264格式的视频流数据打包处理成mpeg-dash所需的格式,生成mpd索引文件和视频分片并存储于服务器端,mpd索引文件以xml格式存在,主要由mpd、period、adaptationset、representation、segmenttemplate标签构成。其中mpd标签中的type属性代表视频属性是实时视频或历史视频,minbuffertime属性代表视频的最小缓存时间,mediapresentationduration属性代表节目的总播放时间;adaptationset标签中的contenttype属性代表媒体的呈现方式,包括视频、音频或字幕;representaiton标签中codecs属性代表视频编解码器类型,minitype属性代表视频格式,width、height、framerate属性分别代表该视频分片的宽度、高度、帧率信息。segmenttemplate标签中timescale属性表示切片的时间轴,其生成的视频切片名用$number$标识,表示该部分由具体的数字来表示;

2.3)采用统一命名规范对视频分片进行命名处理,切片文件名由视频文件名称和切片序号两部分组成,所有的视频片段都以“live-video-sd-”开头,按固定顺序连接视频片段的序号“1”,“2”……;

2.4)通过rpc接口返回mpd文件所在的虚拟url至web客户端,rpc模块通信的完整流程如图2所示,首先创建rpc线程,监听web客户端连接,在收到客户端视频请求后对其进行解析,然后调用视频处理线程对原始视频流进行处理,等待视频分片的产生。当流媒体服务器端产生视频分片后,返回mpd文件url至web端,否则返回相应的错误编码;

步骤3、web客户端向流媒体服务器发起http请求

3.1)根据rpc接口返回的url向流媒体服务器发起httpget请求,下载mpd文件;

3.2)解析mpd索引文件,获得媒体持续时间、比特率、分片url等媒体特征信息;

3.3)根据视频分片1的url向流媒体服务器发起httpget请求;

步骤4、流媒体服务器通过http协议传递特定视频分片至web客户端

4.1)解析web客户端的http请求;

4.2)根据web客户端的请求url,流媒体服务器查找该url对应的视频分片文件;

4.3)调用readfile()函数读取视频分片文件,通过httpsendhttpresponse()方法返回视频分片数据至web客户端;

步骤5、web客户端解析视频分片内容并播放

5.1)web客户端解析视频分片1的内容并进行播放;

5.2)开启自适应机制,通过一定的策略估算网络带宽,调整下一次请求视频分片的比特率,继续向流媒体服务器请求下一个视频分片,直至视频播放完成,http请求过程的交互逻辑如图3所示。

本发明的方法,流媒体服务器部署在windows平台,由windows服务统一进行管理,web客户端为支持html5和mse扩展的浏览器。web端用户在登录成功后,根据所选摄像机编号,向流媒体服务器发起视频请求,在获得视频流后对其进行解析处理,完成视频画面的播放。与传统的web端视频流播放相比,本发明方法无需特定的flash插件支持,跨平台性强,用户可在任一时间、任一地点完成视频流的阅览。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1