CN113810767B - 一种基于websocket的视频实时监视方法及系统 - Google Patents

一种基于websocket的视频实时监视方法及系统 Download PDF

Info

Publication number
CN113810767B
CN113810767B CN202111067414.2A CN202111067414A CN113810767B CN 113810767 B CN113810767 B CN 113810767B CN 202111067414 A CN202111067414 A CN 202111067414A CN 113810767 B CN113810767 B CN 113810767B
Authority
CN
China
Prior art keywords
video
code stream
time
playing
websocket
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111067414.2A
Other languages
English (en)
Other versions
CN113810767A (zh
Inventor
杨小凡
陶亮
蒋衍君
张晓瑞
纪陵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing SAC Automation Co Ltd
Original Assignee
Nanjing SAC Automation Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing SAC Automation Co Ltd filed Critical Nanjing SAC Automation Co Ltd
Priority to CN202111067414.2A priority Critical patent/CN113810767B/zh
Publication of CN113810767A publication Critical patent/CN113810767A/zh
Application granted granted Critical
Publication of CN113810767B publication Critical patent/CN113810767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了视频监视技术领域的一种基于websocket的视频实时监视方法及系统。浏览器与视频服务器之间通过websocket通信,方法由浏览器执行,包括:分别请求主码流视频和辅码流视频;播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间;当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频。通过服务器、客户机时标计算播放延迟,进行实时播放策略调整,解决了实时监视应用场景下实时性能不足的问题。

Description

一种基于websocket的视频实时监视方法及系统
技术领域
本发明属于视频监视技术领域,具体涉及一种基于websocket的视频实时监视方法及系统。
背景技术
视频实时监视是很多工业生产、公共安全等领域的重要应用,B/S架构具有使用方便、灵活,不需要客户端安装特定软件的优点。然后随着Adobe公司的Flash插件退出历史舞台,浏览器实时视频流往往需要利用定制的特定厂家插件来实现,背离了B/S架构的客户端无需安装特定软件的优点,用户体验不佳。目前存在一些无插件解决方案,但是对于实时浏览的场景,其存在实时性能不足的问题。
发明内容
为解决现有技术中的不足,本发明提供一种基于websocket的视频实时监视方法及系统,能实时进行播放策略调整,解决了实时浏览的场景实时性能不足的问题。
为达到上述目的,本发明所采用的技术方案是:
第一方面,提供一种基于websocket的视频实时监视方法,浏览器与视频服务器之间通过websocket通信,方法由浏览器执行,包括:分别请求主码流视频和辅码流视频;播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间;当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频。
进一步地,所述主码流视频和辅码流视频均在其头部添加视频服务器当前采集到的实时视频的时标。
进一步地,浏览器与视频服务器之间的通信采用应用控制的滑动窗口管理,即浏览器端代码在任意时刻,都维持一个连续的允许发送的帧的序号,称为发送窗口;同时,视频服务器端也维持了一个连续的允许接收的帧的序号,称为接收窗口;视频服务器端在发完一个数据帧后,不停下来等待应答帧,而是连续发送K1个数据帧后等待浏览器端确认;同时视频服务器端在每一帧报文内部均填入视频服务器端的本机当前时标Ts;当浏览器端代码接收到视频服务器端的数据帧超过K2个数据帧(K2≤K1)时,回复已收到数据帧的序号到服务器端;视频服务器端接收到浏览器端的数据帧应答帧,计算已确认数据帧和已发送数据帧的差值,当差值大于零时,继续发送差值个数的帧;接收端保持一个已接收到的码流缓冲区,并记录当前收到的发送端发送的最后一帧报文的本机时间Tclast和最后一帧报文内存储的时标Tslast
进一步地,播放主码流视频前,先将主码流视频转换为fmp4格式,包括建立fmp4播放头,fmp4播放头中的moovBox部分包含每秒播放的H.264帧数。
进一步地,所述设定的第一阈值时间周期为2秒。
进一步地,所述计算主码流视频的播放延迟时间Tplay的方法为:
Tplay=Tdiff-Td0-Tskip
Tdiff=Tslast-Tclast
Td0=Ts0-Tc0
其中,Tslast表示当前收到的发送端发送的最后一帧报文内存储的时标,Tdiff表示当前收到的发送端发送的最后一帧报文与浏览器端接收的最后一帧报文内存储的时标的差值,Tclast表示当前收到的发送端发送的最后一帧报文的本机时间,Td0表示浏览器本地时标与服务器端时标的差值,即浏览器端连接上服务端后,websocket接收到的第一帧报文内的视频服务器端的本机时标Ts0与接收到第一帧报文的浏览器端本机时标Tc0的差值,Tskip表示已跳过播放时长。
进一步地,所述当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频,具体为:在已接收的缓冲区中,寻找到最新的I帧报文,从最新的I帧报文开始播放,同时根据之前最后播放的帧序号至最新的I帧报文的帧序号差值更新已跳过播放时长Tskip=已跳过的帧数/每秒H.264帧数。
进一步地,所述当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频,具体为:将播放主码流视频切换为播放辅码流视频,同时强制断开主码流视频的请求,而后重新请求主码流视频,同时,抛弃辅码流视频的历史部分,从辅码流视频的最新I帧开始重新构建辅码流视频的fmp4头,从而播放H.264辅码流视频,通过降低清晰度保证视频实时性;与此同时,对重新请求的主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频。
进一步地,所述设定条件为:主码流视频稳定时间持续20秒以上。
第二方面,提供一种基于websocket的视频实时监视系统,浏览器与视频服务器之间通过websocket通信,浏览器包括:第一模块,用于分别请求主码流视频和辅码流视频;第二模块,用于播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间;第三模块,用于当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;第四模块,用于当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频。
与现有技术相比,本发明所达到的有益效果:本发明通过按照设定的时间周期计算主码流视频的播放延迟时间;当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频;利用浏览器应用层滑动窗口通信方式及同时多路websocket连接承载不同清晰度码流荷载,通过服务器、客户机时标计算播放延迟,进行实时播放策略调整,解决了实时监视应用场景下实时性能不足的问题。
附图说明
图1是本发明实施例提供的一种基于websocket的视频实时监视方法的主要流程示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例一:
如图1所示,一种基于websocket的视频实时监视方法,浏览器与视频服务器之间通过websocket通信,方法由浏览器执行,包括:分别请求主码流视频和辅码流视频;播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间;当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频。
在B/S架构进行视频实时监控应用时,采用websocket技术进行实时视频流推送方式可以实现免浏览器插件播放实时视频功能,但是由于websocket技术基于TCP协议,且网络存在通信延迟,波动等情况,会导致采用此种监视手段的视频播放内容实时性逐渐降低;
为解决此问题,本实施例具体采用以下技术方案:
a)视频服务器同时获取视频摄像头或视频通信设备传输的主码流视频和辅码流视频;
b)视频服务器将主码流视频和辅码流视频中的视频H.264信号抽取出来;
c)视频服务器实时计算每秒H.264(ISOM)码流的帧数;
d)web浏览器加载的HTML页面中引用或嵌入了视频处理和信号连接代码。
浏览器端代码逻辑为:
分别请求主码流视频和辅码流视频;
(1)浏览器生成2路websocket链接,链接至视频服务器,一路websocket链接请求主码流视频,(下称websocket链接1)、另一路请求辅码流视频(下称websocket链接2),主码流视频和辅码流视频均在其头部添加视频服务器当前采集到的实时视频的最新时标(至少精确到0.5秒);
(2)视频服务器与WEB浏览器间通过websocket通信,在websocket内承载的信息包括时间头信息、帧序号和视频码流(包括主码流视频和辅码流视频);
(3)两路websocket链接与视频服务器间的通信采用应用控制的滑动窗口管理,即浏览器端代码在任意时刻,都维持一个连续的允许发送的帧的序号,称为发送窗口;同时,视频服务器端也维持了一个连续的允许接收的帧的序号,称为接收窗口。在发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送K1(K1≤9)个数据帧;浏览器端代码接收到视频服务器端的数据帧超过K2时(K2≤K1,一般取),回复已收到数据帧的序号,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。其中K1的选择为0.1~0.5秒时间的视频流的报文帧数目(具体数值可根据实际网络情况调优)。接收端保持一个已接收到的码流缓冲区,并记录当前收到的发送端发送的最后一帧报文的本机时间Tclast和最后一帧报文内存储的时标Tslast
播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间;
(4)首次链接上视频服务器后,记录运行浏览器的计算机时间Tc0;记录码流头部的服务器时标Ts0当前时间;计算Tc0、Ts0的时间差Td0=Ts0-Tc0
(5)首先将视频服务器的主视频流转换为fmp4格式,包括建立fmp4播放头,特别的播放头中的moovBox部分包含每秒播放的H.264帧数,该帧数由视频服务器提供;
(6)设置已跳过播放时长的初始值Tskip=0;
(7)获取当前最后收到的码流中的头部信息获取的服务器当前时标Ts;计算当前播放时长与已传输的报文可播放的时长的差,即主码流视频的播放延迟时间,Tplay的方法为:
Tplay=Tdiff-Td0-Tskip
Tdiff=Tslast-Tclast
Td0=Ts0-Tc0
其中,Tslast表示当前收到的发送端发送的最后一帧报文内存储的时标,Tdiff表示当前收到的发送端发送的最后一帧报文与浏览器端接收的最后一帧报文内存储的时标的差值,Tclast表示当前收到的发送端发送的最后一帧报文的本机时间,Td0表示初始连接时浏览器本地时标与服务器端时标的差值,即浏览器端连接上服务端后,websocket接收到的第一帧报文内的视频服务器端的本机时标Ts0与接收到第一帧报文的浏览器端本机时标Tc0的差值,Tskip表示已跳过播放时长。
当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;
本实施例中,第一阈值设置为2秒,当Tplay>2秒时,表示浏览器端出现渲染卡顿等可能,这时执行如下操作:在已接收的缓冲区中,寻找到最新的I帧报文,从最新的I帧报文开始播放,同时根据之前最后播放的帧序号至最新的I帧报文的帧序号差值更新已跳过播放时长Tskip=已跳过的帧数÷每秒H.264帧数。
当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频;
当Tplay<2秒时,将播放码流切换至辅码流视频,同时强制断开websocket链接1,而后重新链接websocket,再次连接视频服务器获取主码流视频,形成新的websocket链接1;于此同时,抛弃辅码流视频的历史部分,从辅码流视频最新I帧开始重新构建辅码流视频fmp4头,从而播放H.264辅码流视频,通过降低清晰度保证视频实时性;与此同时,对重新链接上的websocket链接1,计算Td0,依次顺序按照上述步骤(6)、步骤(7)处理,并计算Tplay=Tdiff-Td0-Tskip,当Tplay>1秒,且稳定一定时间(实践中配置为20秒以上),表示网络拥塞降低,切换至主码流,重新按主码流播放,跳至步骤(4)开始继续执行。
本实施例通过按照设定的时间周期计算主码流视频的播放延迟时间;当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频;利用浏览器应用层滑动窗口通信方式及同时多路websocket连接承载不同清晰度码流荷载,通过服务器、客户机时标计算播放延迟,能实时进行播放策略调整,解决了实时浏览的场景实时性能不足的问题。
实施例二:
基于实施例一所述的基于websocket的视频实时监视方法,本实施例提供一种基于websocket的视频实时监视系统,浏览器与视频服务器之间通过websocket通信,浏览器包括:
第一模块,用于分别请求主码流视频和辅码流视频;
第二模块,用于播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间;
第三模块,用于当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频;
第四模块,用于当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (4)

1.一种基于websocket的视频实时监视方法,其特征是,浏览器与视频服务器之间通过websocket通信,方法由浏览器执行,包括:
分别请求主码流视频和辅码流视频,包括;
步骤(1),浏览器生成两路websocket链接,链接至视频服务器,一路websocket链接请求主码流视频,定义为:websocket链接一、另一路请求辅码流视频,定义为:websocket链接二,主码流视频和辅码流视频均在其头部添加视频服务器当前采集到的实时视频的最新时标;
步骤(2),视频服务器与WEB浏览器间通过websocket通信,在websocket内承载的信息包括时间头信息、帧序号和视频码流,视频码流包括主码流视频和辅码流视频;
步骤(3),两路websocket链接与视频服务器间的通信采用应用控制的滑动窗口管理,即浏览器端代码在任意时刻,都维持一个连续的允许发送的帧的序号,称为发送窗口;同时,视频服务器端也维持了一个连续的允许接收的帧的序号,称为接收窗口;发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送K1个数据帧;浏览器端代码接收到视频服务器端的数据帧超过K2时,K2≤K1,回复已收到数据帧的序号,即使在连续发送过程中收到了接收方发来的应答帧,也继续发送;其中,K1的选择为0.1~0.5秒时间的视频流的报文帧数目;接收端保持一个已接收到的码流缓冲区,并记录当前收到的发送端发送的最后一帧报文的本机时间Tclast和最后一帧报文内存储的时标Tslast
播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间,包括:
步骤(4),首次链接上视频服务器后,记录运行浏览器的计算机时间Tc0;记录码流头部的服务器时标Ts0当前时间;计算Tc0、Ts0的时间差Td0=Ts0-Tc0
步骤(5),首先将视频服务器的主视频流转换为fmp4格式,包括建立fmp4播放头,播放头中的moovBox部分包含每秒播放的H.264帧数;
步骤(6),设置已跳过播放时长的初始值Tskip=0;
步骤(7),获取当前最后收到的码流中的头部信息获取的服务器当前时标Ts;计算当前播放时长与已传输的报文可播放的时长的差,即主码流视频的播放延迟时间Tplay的方法为:
Tplay=Tdiff-Td0-Tskip
Tdiff=Tslast-Tclast
Td0=Ts0-Tc0
其中,Tslast表示当前收到的发送端发送的最后一帧报文内存储的时标,Tdiff表示当前收到的发送端发送的最后一帧报文与浏览器端接收的最后一帧报文内存储的时标的差值,Tclast表示当前收到的发送端发送的最后一帧报文的本机时间,Td0表示初始连接时浏览器本地时标与服务器端时标的差值,即浏览器端连接上服务端后,websocket接收到的第一帧报文内的视频服务器端的本机时标Ts0与接收到第一帧报文的浏览器端本机时标Tc0的差值,Tskip表示已跳过播放时长;
当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频,包括:在已接收的缓冲区中,寻找到最新的I帧报文,从最新的I帧报文开始播放,同时根据之前最后播放的帧序号至最新的I帧报文的帧序号差值更新已跳过播放时长Tskip=已跳过的帧数÷每秒H.264帧数;
当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频,包括:当主码流视频的播放延迟时间小于第一阈值时,将播放码流切换至辅码流视频,同时强制断开websocket链接一,而后重新链接websocket,再次连接视频服务器获取主码流视频,形成新的websocket链接一;于此同时,抛弃辅码流视频的历史部分,从辅码流视频最新I帧开始重新构建辅码流视频fmp4头,从而播放H.264辅码流视频;与此同时,对重新链接上的websocket链接一,计算Td0,依次顺序按照步骤(6)、步骤(7)处理,并计算Tplay=Tdiff-Td0-Tskip,当Tplay>1秒,且稳定设定时间,表示网络拥塞降低,切换至主码流,重新按主码流播放,跳至步骤(4)开始继续执行。
2.根据权利要求1所述的基于websocket的视频实时监视方法,其特征是,所述第一阈值为2秒。
3.根据权利要求1所述的基于websocket的视频实时监视方法,其特征是,当重新请求的主码流视频稳定时间持续20秒以上,重新播放主码流视频。
4.一种基于websocket的视频实时监视系统,其特征是,浏览器与视频服务器之间通过websocket通信,浏览器包括:
第一模块,用于分别请求主码流视频和辅码流视频,包括;
步骤(1),浏览器生成两路websocket链接,链接至视频服务器,一路websocket链接请求主码流视频,定义为:websocket链接一、另一路请求辅码流视频,定义为:websocket链接二,主码流视频和辅码流视频均在其头部添加视频服务器当前采集到的实时视频的最新时标;
步骤(2),视频服务器与WEB浏览器间通过websocket通信,在websocket内承载的信息包括时间头信息、帧序号和视频码流,视频码流包括主码流视频和辅码流视频;
步骤(3),两路websocket链接与视频服务器间的通信采用应用控制的滑动窗口管理,即浏览器端代码在任意时刻,都维持一个连续的允许发送的帧的序号,称为发送窗口;同时,视频服务器端也维持了一个连续的允许接收的帧的序号,称为接收窗口;发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送K1个数据帧;浏览器端代码接收到视频服务器端的数据帧超过K2时,K2≤K1,回复已收到数据帧的序号,即使在连续发送过程中收到了接收方发来的应答帧,也继续发送;其中,K1的选择为0.1~0.5秒时间的视频流的报文帧数目;接收端保持一个已接收到的码流缓冲区,并记录当前收到的发送端发送的最后一帧报文的本机时间Tclast和最后一帧报文内存储的时标Tslast
第二模块,用于播放主码流视频,同时按照设定的时间周期计算主码流视频的播放延迟时间,包括:
步骤(4),首次链接上视频服务器后,记录运行浏览器的计算机时间Tc0;记录码流头部的服务器时标Ts0当前时间;计算Tc0、Ts0的时间差Td0=Ts0-Tc0
步骤(5),首先将视频服务器的主视频流转换为fmp4格式,包括建立fmp4播放头,播放头中的moovBox部分包含每秒播放的H.264帧数;
步骤(6),设置已跳过播放时长的初始值Tskip=0;
步骤(7),获取当前最后收到的码流中的头部信息获取的服务器当前时标Ts;计算当前播放时长与已传输的报文可播放的时长的差,即主码流视频的播放延迟时间Tplay的方法为:
Tplay=Tdiff-Td0-Tskip
Tdiff=Tslast-Tclast
Td0=Ts0-Tc0
其中,Tslast表示当前收到的发送端发送的最后一帧报文内存储的时标,Tdiff表示当前收到的发送端发送的最后一帧报文与浏览器端接收的最后一帧报文内存储的时标的差值,Tclast表示当前收到的发送端发送的最后一帧报文的本机时间,Td0表示初始连接时浏览器本地时标与服务器端时标的差值,即浏览器端连接上服务端后,websocket接收到的第一帧报文内的视频服务器端的本机时标Ts0与接收到第一帧报文的浏览器端本机时标Tc0的差值,Tskip表示已跳过播放时长;
第三模块,用于当主码流视频的播放延迟时间大于第一阈值时,跳过部分帧继续播放主码流视频,包括:在已接收的缓冲区中,寻找到最新的I帧报文,从最新的I帧报文开始播放,同时根据之前最后播放的帧序号至最新的I帧报文的帧序号差值更新已跳过播放时长Tskip=已跳过的帧数÷每秒H.264帧数;
第四模块,用于当主码流视频的播放延迟时间小于第一阈值时,播放辅码流视频并重新请求主码流视频,当重新请求的主码流视频满足设定条件后,重新播放主码流视频,包括:当主码流视频的播放延迟时间小于第一阈值时,将播放码流切换至辅码流视频,同时强制断开websocket链接一,而后重新链接websocket,再次连接视频服务器获取主码流视频,形成新的websocket链接一;于此同时,抛弃辅码流视频的历史部分,从辅码流视频最新I帧开始重新构建辅码流视频fmp4头,从而播放H.264辅码流视频;与此同时,对重新链接上的websocket链接一,计算Td0,依次顺序按照步骤(6)、步骤(7)处理,并计算Tplay=Tdiff-Td0-Tskip,当Tplay>1秒,且稳定设定时间,表示网络拥塞降低,切换至主码流,重新按主码流播放,跳至步骤(4)开始继续执行。
CN202111067414.2A 2021-09-13 2021-09-13 一种基于websocket的视频实时监视方法及系统 Active CN113810767B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111067414.2A CN113810767B (zh) 2021-09-13 2021-09-13 一种基于websocket的视频实时监视方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111067414.2A CN113810767B (zh) 2021-09-13 2021-09-13 一种基于websocket的视频实时监视方法及系统

Publications (2)

Publication Number Publication Date
CN113810767A CN113810767A (zh) 2021-12-17
CN113810767B true CN113810767B (zh) 2024-02-13

Family

ID=78895150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111067414.2A Active CN113810767B (zh) 2021-09-13 2021-09-13 一种基于websocket的视频实时监视方法及系统

Country Status (1)

Country Link
CN (1) CN113810767B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219500A (zh) * 2014-08-27 2014-12-17 天津市中信互联科技有限公司 监控视频直播的装置和方法
CN107018415A (zh) * 2017-03-17 2017-08-04 浙江大华技术股份有限公司 一种基于双码流输出视频数据的方法和装置
CN107277612A (zh) * 2016-04-05 2017-10-20 韩华泰科株式会社 用于在web浏览器上播放媒体流的方法和设备
CN108769616A (zh) * 2018-06-21 2018-11-06 泰华智慧产业集团股份有限公司 一种基于rtsp协议的实时视频无插件预览方法及系统
CN109218839A (zh) * 2017-07-07 2019-01-15 杭州海康威视数字技术股份有限公司 视频播放方法及装置
CN112866345A (zh) * 2020-12-31 2021-05-28 珠海派诺科技股份有限公司 一种基于WebSocket的流媒体低延时通信实现方法、电子设备、存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219500A (zh) * 2014-08-27 2014-12-17 天津市中信互联科技有限公司 监控视频直播的装置和方法
CN107277612A (zh) * 2016-04-05 2017-10-20 韩华泰科株式会社 用于在web浏览器上播放媒体流的方法和设备
CN107018415A (zh) * 2017-03-17 2017-08-04 浙江大华技术股份有限公司 一种基于双码流输出视频数据的方法和装置
CN109218839A (zh) * 2017-07-07 2019-01-15 杭州海康威视数字技术股份有限公司 视频播放方法及装置
CN108769616A (zh) * 2018-06-21 2018-11-06 泰华智慧产业集团股份有限公司 一种基于rtsp协议的实时视频无插件预览方法及系统
CN112866345A (zh) * 2020-12-31 2021-05-28 珠海派诺科技股份有限公司 一种基于WebSocket的流媒体低延时通信实现方法、电子设备、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
流媒体技术在高速公路视频监控系统中的应用;彭思岭;;中国交通信息化(09);全文 *

Also Published As

Publication number Publication date
CN113810767A (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
CN104735470B (zh) 一种流媒体数据传输方法及装置
JP4623616B2 (ja) データ伝送方法および装置
CN106686438B (zh) 一种跨设备的音频图像同步播放的方法、装置及系统
CN104125429B (zh) 视频数据传输的调节方法及装置
US20090019178A1 (en) Adaptive bitrate management for streaming media over packet networks
CN111093083B (zh) 数据传输方法及装置
EP3471422B1 (en) Video playback method and apparatus for selecting a video frame discarding scheme
KR20140098248A (ko) 비디오 스트림 내의 아티팩트를 최소화하는 방법, 비디오 스트림의 속성을 변경하는 시스템 및 컴퓨터 판독가능 매체
EP3122043B1 (en) Method and system for determining a quality value of a video stream
EP2086174A1 (en) A method and system of multimedia service performance monitoring
US20110187926A1 (en) Apparatus and method for correcting jitter
US20120195388A1 (en) Encoding Apparatus, Encoding Method, and Storage Medium
JP4384992B2 (ja) コンテンツ・ストリームのビット・レートを調節する装置及び処理、並びに関連したプロダクト
JP4705265B2 (ja) 映像または音声伝送システム
JP4327674B2 (ja) 映像品質管理方法および映像品質管理システム
CN100568956C (zh) 一种流媒体快速播放的方法
CN101540657A (zh) 通信控制设备、通信控制方法和通信控制程序
US20120117265A1 (en) Method and communication system for implementing stream services, and relevant device
JP2010028378A (ja) 通信装置及び通信方法
CN102439935A (zh) 媒体适配的方法和装置
CN113810767B (zh) 一种基于websocket的视频实时监视方法及系统
JP2008211579A (ja) 映像品質推定方法および映像通信システム
CN113596112A (zh) 一种面向视频监控的传输方法
CN111629282B (zh) 一种实时的纠删码编码冗余度动态调节方法
US20090046744A1 (en) Communication control apparatus, communication control method, and computer program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant