本发明涉及实时码流播放控制技术领域,特别涉及一种视频监控系统中实时码流播放控制的实现方法。
背景技术:
随着信息技术和网络应用的急剧发展,无线网络、互联网络、多媒体、远程传输、宽带通讯等新生事物,己经在不容罝疑地日渐改变着我们的工作和生活方式。研究发现,人类通过视觉获取的信息约占信息量的70%,视频信息具有直观性、可观性等优越性,视频的应用范围广泛,功能很多,有的视频为监控视频,实时传输给用户监控画面。
监控视频一般为实时码流传输视频数据,实时码流传输视频的速率与网络速率相关,无法控制视频播放的速率也无法根据用户需求进行后退、倍数播放和制定播放等功能,因此在用户观看监控视频的时候不方便。
技术实现要素:
本发明的目的就在于为了解决上述实时码流视频不方便控制播放速率导致人为调节视频进度困难的问题而提供一种视频监控系统中实时码流播放控制的实现方法,具有增加控制条实现视频的快退快进、暂停、播放、倍速播放和鼠标拖动功能的优点。
本发明通过以下技术方案来实现上述目的,一种视频监控系统中实时码流播放控制的实现方法,包括以下步骤:
s1、制作视频控制条:从应用网关接口中获取将要播放的视频的基本信息,包括视频直播地址、开始时间和结束时间,新建变量用以存储开始时间和结束时间从date日期格式转换为时间戳的值,以这两个时间戳作为控制条的开始值和结束值,在此之中,以开始时间和结束时间的字符串值作为控制条两端默认展示信息;
s2、正常播放:前端使用setinterval定时器调用自定义方法,在该方法内,首先取得浏览器video对象当前的属性值currenttime,用以和本地video对象记录的currenttime(此currenttime为浏览器video对象上一秒的currenttime属性值)作比较,如果两个值相同,则说明当前视频并未在播放中,否则当前视频正在播放中;
s3、倍速播放:将浏览器video对象的currenttime属性值赋值给本地video对象的currenttime变量,判断当前播放中视频的播放速率,从而为控制条中,自增的控制点设置不同的自增量,将控制点值转换为字符型日期格式,用于展示控制点默认展示格式,设备通过心跳接口连接视频,获取当前播放视频的播放时间,赋值给本地video对象的控制点变量,当接收到本地video对象的速率变量变化,立即调用接口通知后端改变视频传输速率;
s4、播放控制:接收到暂停播放的指令后,首先注销浏览器中的video对象,修改本地video对象id,通过接口发送指令,通知后端停止推送视频流,接收到重新播放的指令后,通过接口通知后端当前视频已经播放到的位置和结束时间,让后端重新推流,并且修改本地video对象id,用于重新生成浏览器video对象;
s5、视频拖动:记录拖动点,销毁浏览器对象,修改本地video对象id,通知后端重新推送以拖动点为开始时间和视频的结束时间为结束时间的直播视频流,成功接收后端重新推送的视频流后,修改本地video对象id,生成浏览器video对象。
优选的,所述步骤s2中setinterval定时器为间歇调用指令,该指令调用自定义方法的间隔为1s。
优选的,所述步骤s2中的浏览器video对象的currenttime属性值用于记录当前设备在视频播放中经过的时间。
优选的,所述步骤s3中的心跳接口是采用主备机器之间定时通过心跳链路发送心跳信号,且时间间隔为50s。
与现有技术相比,本发明的有益效果是:通过获取直播流视频的基本信息制作控制条,在控制条内部再通过自增的控制点设置不同的自增量,改变视频传输速率;通过注销浏览器中的video对象,修改本地video对象id,让后端重新推流;通过修改本地video对象id,生成新的浏览器video对象,以拖动点为开始时间和视频的结束时间为结束时间的直播视频流,从而实现视频的快退快进、暂停、播放、倍速播放和鼠标拖动功能,便于人为调节直播流视频的播放,使用更加方便。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种视频监控系统中实时码流播放控制的实现方法,包括以下步骤:
s1、制作视频控制条:从应用网关接口中获取将要播放的视频的基本信息,包括视频直播地址、开始时间和结束时间,新建变量用以存储开始时间和结束时间从date日期格式转换为时间戳的值,以这两个时间戳作为控制条的开始值和结束值,在此之中,以开始时间和结束时间的字符串值作为控制条两端默认展示信息;
s2、正常播放:前端使用setinterval定时器调用自定义方法,在该方法内,首先取得浏览器video对象当前的属性值currenttime,用以和本地video对象记录的currenttime(此currenttime为浏览器video对象上一秒的currenttime属性值)作比较,如果两个值相同,则说明当前视频并未在播放中,否则当前视频正在播放中;
s3、倍速播放:将浏览器video对象的currenttime属性值赋值给本地video对象的currenttime变量,判断当前播放中视频的播放速率,从而为控制条中,自增的控制点设置不同的自增量,将控制点值转换为字符型日期格式,用于展示控制点默认展示格式,设备通过心跳接口连接视频,获取当前播放视频的播放时间,赋值给本地video对象的控制点变量,当接收到本地video对象的速率变量变化,立即调用接口通知后端改变视频传输速率;
s4、播放控制:接收到暂停播放的指令后,首先注销浏览器中的video对象,修改本地video对象id,通过接口发送指令,通知后端停止推送视频流,接收到重新播放的指令后,通过接口通知后端当前视频已经播放到的位置和结束时间,让后端重新推流,并且修改本地video对象id,用于重新生成浏览器video对象;
s5、视频拖动:记录拖动点,销毁浏览器对象,修改本地video对象id,通知后端重新推送以拖动点为开始时间和视频的结束时间为结束时间的直播视频流,成功接收后端重新推送的视频流后,修改本地video对象id,生成浏览器video对象。
所述步骤s2中setinterval定时器为间歇调用指令,该指令调用自定义方法的间隔为1s,所述步骤s2中的浏览器video对象的currenttime属性值用于记录当前设备在视频播放中经过的时间,所述步骤s3中的心跳接口是采用主备机器之间定时通过心跳链路发送心跳信号,且时间间隔为50s。
本发明添加播放控制条的方式基于video.js,为基于rtmp协议的直播流,video.js是一个通用的在网页上嵌入视频播放器的js库,video.js自动检测浏览器对html5的支持情况,如果不支持html5则自动使用flash播放器;rtmp协议是被flash用于对象,视频,音频的传输,这个协议建立在tcp协议或者轮询http协议之上。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。