CN114339419B - 一种视频流拉流处理的方法、装置及存储介质 - Google Patents
一种视频流拉流处理的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114339419B CN114339419B CN202111681486.6A CN202111681486A CN114339419B CN 114339419 B CN114339419 B CN 114339419B CN 202111681486 A CN202111681486 A CN 202111681486A CN 114339419 B CN114339419 B CN 114339419B
- Authority
- CN
- China
- Prior art keywords
- stream
- pull
- video stream
- request
- target
- 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
Links
- 238000003672 processing method Methods 0.000 title description 3
- 230000002159 abnormal effect Effects 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 43
- 238000012216 screening Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005856 abnormality Effects 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 23
- 239000010410 layer Substances 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本公开涉及视频流播放领域,公开了一种视频流拉流处理的方法、装置及存储介质,该方法包括:针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,向播放端发送第一控制信息,以及从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,使各个目标播放端基于第二控制信息对目标视频流进行分批次播放,减轻了流媒体服务器对异常播放的处理压力。
Description
技术领域
本公开涉及视频流播放技术领域,提供了一种视频流拉流处理的方法、装置及存储介质。
背景技术
目前,视频流拉流是指服务器中已存储有视频流,播放端用指定地址去服务器中拉取视频流并进行播放的过程。
由于网络连接异常、视频播放内容异常等原因会导致播放端拉流被迫中断。现有的拉流恢复方法主要是播放端保持心跳监测机制和重连机制,其中的心跳监测机制用来检测视频流的连续性,其中的重连机制是在心跳监测机制监测到断流的时候进行重试拉流。
然而,上述方案存在两个问题:一是,心跳监测机制一般都是通过人为经验制定的规则来判断视频流的连续性,显然,针对不同播放速率的视频流并不通用,而且精度也不高;二是,当出现视频流服务崩溃的异常情况时,播放端的重连机制,会导致在服务恢复后对服务器造成瞬间的高并发压力,也就是服务器雪崩的现象,虽然可以通过负载均衡等策略在一定程度上进行规避,但服务器资源的投入也相对较高。
发明内容
本公开实施例提供一种视频流拉流处理的方法、装置及存储介质,用以减轻流媒体服务器对异常播放的处理压力。
本公开提供的具体技术方案如下:
第一方面,本公开实施例提供了一种视频流拉流处理的方法,方法应用于流媒体服务器,包括:
方法应用于流媒体服务器,包括:
针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,其中,目标视频流是流媒体服务器对视频采集端采集的视频流进行预处理后获取的;
若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放;以及
从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放。
在一些可能的实施例中,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端之前,还包括:
在预设等待时长内获取视频采集端采集的视频流,基于拉流请求包含的拉流标识信息,在获取到的视频流中查找与拉流标识信息对应的视频流;
将查找到的视频流作为目标视频流。
在一些可能的实施例中,若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,包括:
获取播放端发送的拉流请求包含的拉流时刻信息;
计算拉流时刻信息与响应时刻信息之间的请求时长,其中,响应时刻信息用于表征播放端按照最小响应速度接收到拉流请求对应的目标视频流的时刻;
判断播放端在请求时长内是否接收到目标视频流;
若是,当请求时长超出预设响应时长时,则确定拉流请求异常,其中,预设响应时长用于表征播放端按照预设响应速度接收一个目标视频流所用的时长;
否则,确定拉流请求异常。
在一些可能的实施例中,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,包括:
若数目超过预设异常阈值,则在判定拉流时刻信息在预设的有效时间间隔内时,分批次向目标播放端发送第二控制信息和目标视频流。
在一些可能的实施例中,分批次向目标播放端发送目标视频流,包括:
基于数目,确定拉流请求异常的目标播放端的发送批次;
基于发送批次,按照预设发送间隔向目标播放端发送目标视频流。
在一些可能的实施例中,方法还包括:
分别为任意一个发送拉流请求的播放端设置缓存区;
以每一个拉流请求对应的播放端为单位,在缓存区中存储拉流标识信息和拉流时刻信息。
在一些可能的实施例中,第二控制信息包括以下控制信息中的一种或几种:
开始播放控制信息;
暂停播放控制信息;
快进播放控制信息。
第二方面,本公开实施例还提供了一种视频流拉流处理的装置,包括:
发送单元,用于针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,其中,目标视频流是流媒体服务器对视频采集端采集的视频流进行预处理后获取的;
确定单元,用于若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放;以及
控制单元,用于从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放。
第三方面,一种流媒体服务器,包括:
存储器,用于存储可被控制器执行的计算机程序;
控制器与存储器连接,被配置为执行上述第一方面任一项的方法。
第四方面,一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一项所述的方法。
本公开有益效果如下:
综上所述,本公开实施例中,提供的一种视频流拉流处理的方法、装置及存储介质,该视频流拉流处理的方法应用于流媒体服务器,包括:针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放,以及从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放,从而减轻了流媒体服务器对异常播放的处理压力。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为本申请实施例提供的一种流媒体服务器的结构示意图;
图2为本申请实施例提供的一种流媒体服务器的软件架构示意图;
图3为本公开实施例中的对视频流进行拉流处理的系统架构示意图;
图4为本公开实施例中流媒体服务器对视频流进行拉流处理的流程示意图;
图5为本公开实施例中确定目标视频流的流程示意图;
图6为本公开实施例中确定拉流异常的流程示意图;
图7为本公开实施例中一种视频流拉流处理的装置的逻辑架构示意图;
图8为本公开实施例中流媒体服务器的实体架构示意图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书的术语″第一″、″第二″等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
参阅图1所示,图1中示例性示出了根据示例性实施例中客户端100的硬件配置框图。如图1所示,客户端100包括:射频(radio frequency,RF)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(Wireless Fidelity,Wi-Fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
RF电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行客户端100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得客户端100能运行的操作系统。本申请中存储器120可以存储操作系统及各种应用程序,还可以存储执行本申请实施例所述方法的程序代码。
显示单元130可用于接收输入的数字或字符信息,产生与客户端100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在客户端100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及客户端100的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元130可以包括设置在客户端100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本申请中所述的邮件列表界面。
其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现客户端100的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元130可以显示应用程序以及对应的操作步骤。
摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
客户端100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。客户端100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路160、扬声器161、麦克风162可提供用户与客户端100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。客户端100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。
Wi-Fi属于短距离无线传输技术,客户端100可以通过Wi-Fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是客户端100的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行客户端100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本申请中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例所述的处理方法。另外,处理器180与显示单元130耦接。
蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,客户端100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
客户端100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。客户端100还可配置有电源按钮,用于终端的开机和关机,以及锁屏等功能。
参阅图2所示,图2是本申请实施例的定位客户端100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信息通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供客户端100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
通知管理器使应用程序可以在状态栏中显示通知信息(例如短信息的消息摘要,消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D(一种动画方式)图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请实施例中的客户端100可以为手机、平板电脑、可穿戴设备、笔记本电脑以及电视等。
下面结合附图对本公开优选的实施方式进行详细说明。
参阅图3所示,本公开实施例中,系统中包含了至少一个播放端和流媒体服务器,在图3中,以播放端1、播放端2以及播放端n来示例性表示发送拉流请求的播放端,以流媒体服务器来示例性表示与各个播放端进行交互的服务器。本公开实施例中,视频流拉流处理的方法的实现,主要在流媒体服务器侧执行,下面进行具体介绍。
参阅图4所示,本公开实施例中,流媒体服务器对视频流进行拉流处理的具体流程如下:
步骤201:针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,其中,目标视频流是流媒体服务器对视频采集端采集的视频流进行预处理后获取的。
实施过程中,若上述多个播放端中的任意一个播放端向流媒体服务器发起了拉流请求,即该播放端希望播放某个视频流,在这种情况下,流媒体服务器需要从视频采集端采集的视频流中确定出目标视频流,并将该目标视频流推送给发出拉流请求的播放端。这里常见的视频采集端包括主播所在的客户端、监控终端等能够获取视频流的设备。
即具体实施过程中,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端之前,参阅图5所示,还包括:
步骤101:在预设等待时长内获取视频采集端采集的视频流,基于拉流请求包含的拉流标识信息,在获取到的视频流中查找与拉流标识信息对应的视频流。
首先这里的预设等待时长是用于表征视频采集端采集视频流能力的最长限定时长,如果,视频采集端在一个预设等待时长内没有采集到视频流,即无法向播放端发送可以播放的视频流,将该预设等待时长内的视频流个数设置为空,在这种情况下,视频采集端需要开启一个新的采集周期,并以预设等待时长来限定该新的采集周期,即判定在新的采集周期内,视频采集端是否有采集到视频流,通过预设等待时长的设置,能够检测出视频采集端是否能正常采集到视频流。
进一步的,针对播放端的拉流请求,获取其中包含的拉流标识信息,需要根据该拉流标识信息在视频采集端获取的所有视频流中查找与播放端拉流请求相匹配的视频流,即与上述拉流标识信息对应的视频流。
为了便于对多个播放端发出的拉流请求进行处理,该方法还包括:
1)分别为任意一个发送拉流请求的播放端设置缓存区。
实施过程中,在流媒体服务器中为各个播放端设置缓存区,这样,当其中的任意一个播放端发出拉流请求后,即可对其拉流请求包括的具体内容进行存储。
2)以每一个拉流请求对应的播放端为单位,在缓存区中存储拉流标识信息和拉流时刻信息。
具体的,在每一个缓存区内分别为每一个播放端预先划分存储空间,这样能够以每一个拉流请求对应的播放端为单位,即以播放端为单位,在缓存区中分别存储拉流标识信息和拉流时刻信息。通常,上述播放端与拉流请求以key-value的形式进行存储。
步骤102:将查找到的视频流作为目标视频流。
在通过上述步骤101和102,查找到与拉流标识信息对应的视频流后,则将查找出来的视频流确定为目标视频流,该目标视频流即为播放端在发出拉流请求后希望播放的视频流。
步骤202:若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放。以及
考虑到网络中断等对视频流传输过程的影响,本申请实施例中,设置预设响应时长,即表征播放端按照预设响应速度接收一个目标视频流所用的时长。如果流媒体播放器监测到播放端没有在预设响应时长内接收到目标视频流,则确定拉流请求异常。
具体的,若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,参阅图6所示,包括:
步骤2021:获取播放端发送的拉流请求包含的拉流时刻信息。
实施过程中,以播放端发送拉流请求的时刻为时间起点开始计时来衡量播放端是否在预设响应时长内接收到目标视频流,通常,在播放端发送的拉流请求中包含有该播放端的身份标识、要播放的目标视频流的标识信息、拉流时刻信息等,该步骤中即获取拉流请求包含的拉流时刻信息。
步骤2022:计算拉流时刻信息与响应时刻信息之间的请求时长,其中,响应时刻信息用于表征播放端按照最小响应速度接收到拉流请求对应的目标视频流的时刻。
由于实际传输过程中难以直接有效的获取到传输通道即网络的实时情况,因此,在获取到拉流时刻信息后,按照最小响应速度计算播放端预计接收到与拉流请求对应的目标视频流的时刻,即响应时刻信息,然后,计算响应时刻信息与拉流时刻信息之间的请求时长,这里的请求时长显然是允许播放端接收目标视频流的最大时长。
步骤2023:判断播放端在请求时长内是否接收到目标视频流,若是,则执行步骤2024,否则,执行步骤2025。
实施过程中,在得到请求时长后,通过该请求时长来衡量播放端是否接收到了目标视频流,若是,即判定播放端在请求时长内接收到了目标视频流,则执行步骤2024;否则,即判定播放端在请求时长内没有接收到目标视频流,则执行步骤2025。
步骤2024:当请求时长超出预设响应时长时,则确定拉流请求异常,其中,预设响应时长用于表征播放端按照预设响应速度接收一个目标视频流所用的时长。
实施过程中,考虑到目标视频流播放的流畅性,对于在请求时长内接收到目标视频流的情况,还需要进一步判断该请求时长是否超出了预设响应时长,这里,预设响应时长用于表征播放端按照预设响应速度接收一个目标视频流所用的时长,上述预设响应速度即保证播放端播放目标视频流的正常播放。
步骤2025:确定拉流请求异常。
实施过程中,如果播放端在请求时长内没有接收到目标视频流,即在允许播放端接收目标视频流的最大时长内都没有接收到目标视频流,则确定拉流请求异常。
步骤203:从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放。
考虑到实际情况,在视频采集端将采集到的视频流发到流媒体服务器后,会同时有大量的播放端(例如,粉丝数较多的主播对应的播放端等)同时观看该视频流。为了保障大多数播放端的观看体验,本申请实施例中,还会对拉流请求异常的数目进行统计,从而根据该数目对播放端进行灵活控制。
基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,包括:
若数目超过预设异常阈值,则在判定拉流时刻信息在预设的有效时间间隔内时,分批次向目标播放端发送第二控制信息和目标视频流。
实施过程中,预先设定预设异常阈值,该预设异常阈值可根据不同的使用场景进行灵活设定,比如,在播放端的数量达到上千个时,该预设异常阈值可设置为一百;在播放端的数量达到上百个时,该预设异常阈值可设置为十等等。
另外,在网络故障等恢复后还需要对出现异常的播放端再次发送视频流,而考虑到视频流播放的时效性,本申请实施例中,还需要统计拉流请求异常的情况是否在有效时间间隔内,具体的,计算拉流请求中包含的拉流时刻信息与当前时刻之间的时间间隔是否在预设的有效时间间隔内,如果该时间间隔超出了预设的有效时间间隔内,则表明对应的拉流请求的时效性较差,在这种情况下,判定拉流请求无效,即不再向该拉流请求对应的播放端发送目标视频流。
而在数目未超过预设异常阈值,并且,拉流时刻信息在预设的有效时间间隔内时,流媒体服务器需要分批次向目标播放端发送第二控制信息和目标视频流。
上述分批次向目标播放端发送目标视频流,具体包括:
(1)基于数目,确定拉流请求异常的目标播放端的发送批次。
在实施过程中,为了减缓发送视频流的压力,流媒体服务器会根据上述拉流请求异常的数目进行分批发送,具体的,根据上述数目确定拉流请求异常的目标播放端的发送批次,即再次向其发送目标视频流的先后顺序。
例如,设定拉流请求异常的数目为100,如果大于预设异常阈值,则确定相应的目标播放端的发送批次分别为第一批、第二批、第三批、第四批和第五批。
(2)基于发送批次,按照预设发送间隔向目标播放端发送目标视频流。
实施过程中,在确定出发送批次后,流媒体服务器即按照预设发送间隔(例如,2秒)向目标播放端发送目标视频流。
仍以上例进行说明,按照每秒50次、20次、20次、10次的先后分别给第一批、第二批、第三批、第四批和第五批的目标播放端发送目标视频流。
上述分批次向目标播放端发送第二控制信息和目标视频流的方式,防止了推送过快导致播放端并发过大,有效缓解了流媒体服务器的发送压力,并让流媒体服务器雪崩的可能性得到了控制。
这里要补充说明的是,上述第二控制信息包括以下控制信息中的一种或几种:开始播放控制信息、暂停播放控制信息和快进播放控制信息。
通过上述开始播放控制信息、暂停播放控制信息和快进播放控制信息等的第二控制信息的设置,能够使播放端根据当前的实时情况来灵活控制对目标视频流的播放和暂停等。
例如,当流媒体服务器向目标播放端发送50个目标视频流时,可通过开始播放控制信息来设置上述50个目标视频流的前20个目标视频流,暂停播放剩余的30个目标视频流;而在流媒体服务器向目标播放端发送10个目标视频流时,可通过快进播放控制信息来设置上述10个中的后5个目标视频流。
基于同一发明构思,参阅图7所示,本公开实施例中提供一种视频流拉流处理的装置,包括:
发送单元701,用于针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,其中,目标视频流是流媒体服务器对视频采集端采集的视频流进行预处理后获取的;
确定单元702,用于若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放;以及
控制单元703,用于从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放。
基于同一发明构思,参阅图8所示,本公开实施例提供一种流媒体服务器,包括:存储器801和控制器802,具体的:
存储器801,用于存储可被控制器802执行的计算机程序。
控制器802与存储器连接,被配置为执行:
针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,其中,目标视频流是流媒体服务器对视频采集端采集的视频流进行预处理后获取的;
若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放;以及
从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放。
在一些可能的实施例中,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端之前,控制器802还被配置为执行:
在预设等待时长内获取视频采集端采集的视频流,基于拉流请求包含的拉流标识信息,在获取到的视频流中查找与拉流标识信息对应的视频流;
将查找到的视频流作为目标视频流。
在一些可能的实施例中,若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,控制器802被配置为执行:
获取播放端发送的拉流请求包含的拉流时刻信息;
计算拉流时刻信息与响应时刻信息之间的请求时长,其中,响应时刻信息用于表征播放端按照最小响应速度接收到拉流请求对应的目标视频流的时刻;
判断播放端在请求时长内是否接收到目标视频流;
若是,当请求时长超出预设响应时长时,则确定拉流请求异常,其中,预设响应时长用于表征播放端按照预设响应速度接收一个目标视频流所用的时长;
否则,确定拉流请求异常。
在一些可能的实施例中,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,控制器802被配置为执行:
若数目超过预设异常阈值,则在判定拉流时刻信息在预设的有效时间间隔内时,分批次向目标播放端发送第二控制信息和目标视频流。
在一些可能的实施例中,分批次向目标播放端发送目标视频流,控制器802被配置为执行:
基于数目,确定拉流请求异常的目标播放端的发送批次;
基于发送批次,按照预设发送间隔向目标播放端发送目标视频流。
在一些可能的实施例中,控制器802还被配置为执行:
分别为任意一个发送拉流请求的播放端设置缓存区;
以每一个拉流请求对应的播放端为单位,在缓存区中存储拉流标识信息和拉流时刻信息。
在一些可能的实施例中,第二控制信息包括以下控制信息中的一种或几种:
开始播放控制信息;
暂停播放控制信息;
快进播放控制信息。
基于同一发明构思,本公开实施例提供一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一项所述的方法。
综上所述,本公开实施例中,提供的一种视频流拉流处理的方法、装置及存储介质,该视频流拉流处理的方法应用于流媒体服务器,包括:针对任意一个发送拉流请求的播放端,将与拉流请求包含的拉流标识信息对应的目标视频流发送给播放端,若监测到播放端未在预设响应时长内接收到目标视频流,则确定拉流请求异常,并向播放端发送第一控制信息,以使播放端基于第一控制信息取消对拉流请求对应的目标视频流的播放,以及从收到的各个拉流请求中确定拉流请求异常的数目,从发送拉流请求的播放端中筛选出拉流请求异常的目标播放端,基于数目和拉流请求包含的拉流时刻信息,分批次向目标播放端发送第二控制信息和目标视频流,以使各个目标播放端基于第二控制信息对目标视频流进行分批次播放,从而减轻了流媒体服务器对异常播放的处理压力。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种视频流拉流处理的方法,其特征在于,所述方法应用于流媒体服务器,包括:
针对任意一个发送拉流请求的播放端,将与所述拉流请求包含的拉流标识信息对应的目标视频流发送给所述播放端,其中,所述目标视频流是所述流媒体服务器对视频采集端采集的视频流进行预处理后获取的;
若监测到所述播放端未在预设响应时长内接收到所述目标视频流,则确定所述拉流请求异常,并向所述播放端发送第一控制信息,以使所述播放端基于所述第一控制信息取消对所述拉流请求对应的目标视频流的播放;以及
从收到的各个所述拉流请求中确定所述拉流请求异常的数目,从发送拉流请求的播放端中筛选出所述拉流请求异常的目标播放端,基于所述数目和所述拉流请求包含的拉流时刻信息,分批次向所述目标播放端发送第二控制信息和所述目标视频流,以使各个所述目标播放端基于所述第二控制信息对所述目标视频流进行分批次播放。
2.如权利要求1所述的方法,其特征在于,所述将与所述拉流请求包含的所述拉流标识信息对应的目标视频流发送给所述播放端之前,还包括:
在预设等待时长内获取所述视频采集端采集的视频流,基于所述拉流请求包含的所述拉流标识信息,在获取到的所述视频流中查找与所述拉流标识信息对应的视频流;
将查找到的所述视频流作为所述目标视频流。
3.如权利要求1所述的方法,其特征在于,所述基于所述数目和所述拉流请求包含的拉流时刻信息,分批次向所述目标播放端发送第二控制信息和所述目标视频流,包括:
若所述数目超过预设异常阈值,则在判定所述拉流时刻信息在预设的有效时间间隔内时,分批次向所述目标播放端发送第二控制信息和所述目标视频流。
4.如权利要求1所述的方法,其特征在于,所述分批次向所述目标播放端发送所述目标视频流,包括:
基于所述数目,确定所述拉流请求异常的所述目标播放端的发送批次;
基于所述发送批次,按照预设发送间隔向所述目标播放端发送所述目标视频流。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
分别为任意一个发送所述拉流请求的播放端设置缓存区;
以每一个所述拉流请求对应的所述播放端为单位,在所述缓存区中存储所述拉流标识信息和所述拉流时刻信息。
6.如权利要求1所述的方法,其特征在于,所述第二控制信息包括以下控制信息中的一种或几种:
开始播放控制信息;
暂停播放控制信息;
快进播放控制信息。
7.一种视频流拉流处理的装置,其特征在于,包括:
发送单元,用于针对任意一个发送拉流请求的播放端,将与所述拉流请求包含的拉流标识信息对应的目标视频流发送给所述播放端,其中,所述目标视频流是流媒体服务器对视频采集端采集的视频流进行预处理后获取的;
确定单元,用于若监测到所述播放端未在预设响应时长内接收到所述目标视频流,则确定所述拉流请求异常,并向所述播放端发送第一控制信息,以使所述播放端基于所述第一控制信息取消对所述拉流请求对应的目标视频流的播放;以及
控制单元,用于从收到的各个所述拉流请求中确定所述拉流请求异常的数目,从发送拉流请求的播放端中筛选出所述拉流请求异常的目标播放端,基于所述数目和所述拉流请求包含的拉流时刻信息,分批次向所述目标播放端发送第二控制信息和所述目标视频流,以使各个所述目标播放端基于所述第二控制信息对所述目标视频流进行分批次播放。
8.一种流媒体服务器,其特征在于,包括:
存储器,用于存储可被控制器执行的计算机程序;
控制器与所述存储器连接,被配置为执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111681486.6A CN114339419B (zh) | 2021-12-29 | 2021-12-29 | 一种视频流拉流处理的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111681486.6A CN114339419B (zh) | 2021-12-29 | 2021-12-29 | 一种视频流拉流处理的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114339419A CN114339419A (zh) | 2022-04-12 |
CN114339419B true CN114339419B (zh) | 2024-04-02 |
Family
ID=81022843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111681486.6A Active CN114339419B (zh) | 2021-12-29 | 2021-12-29 | 一种视频流拉流处理的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114339419B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115499680A (zh) * | 2022-11-04 | 2022-12-20 | 易方信息科技股份有限公司 | 视频数据自动化异常监控方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108366278A (zh) * | 2018-02-01 | 2018-08-03 | 北京奇艺世纪科技有限公司 | 一种视频播放中的用户交互实现方法及装置 |
CN111245852A (zh) * | 2020-01-16 | 2020-06-05 | 腾讯云计算(北京)有限责任公司 | 流数据传输方法、装置、系统、接入设备及存储介质 |
CN111274325A (zh) * | 2020-02-24 | 2020-06-12 | 中国工商银行股份有限公司 | 平台自动化测试方法及系统 |
CN111641846A (zh) * | 2020-05-19 | 2020-09-08 | 深圳力维智联技术有限公司 | 一种安防监控视频即时播放的方法、装置和系统 |
CN111818121A (zh) * | 2020-05-26 | 2020-10-23 | 杭州爱教乐学科技有限公司 | 直播通信方法、装置、计算机设备及存储介质 |
CN112069190A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 一种分批数据获取方法、装置、设备及介质 |
CN112188225A (zh) * | 2020-09-29 | 2021-01-05 | 上海哔哩哔哩科技有限公司 | 用于直播回放的弹幕下发方法和直播视频弹幕回放方法 |
EP3796318A1 (en) * | 2019-09-19 | 2021-03-24 | Baidu Online Network Technology (Beijing) Co., Ltd. | Video playing method and device, electronic device, and readable storage medium |
WO2021159864A1 (zh) * | 2020-02-11 | 2021-08-19 | 华为技术有限公司 | 一种传输视频音频数据的方法、云端服务器和系统 |
CN113301397A (zh) * | 2021-02-19 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 基于cdn的音视频传输、播放与延时探测方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528280B (zh) * | 2015-09-15 | 2019-10-29 | 阿里巴巴集团控股有限公司 | 一种任务分配方法和系统 |
GB2576798B (en) * | 2019-01-04 | 2022-08-10 | Ava Video Security Ltd | Video stream batching |
-
2021
- 2021-12-29 CN CN202111681486.6A patent/CN114339419B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108366278A (zh) * | 2018-02-01 | 2018-08-03 | 北京奇艺世纪科技有限公司 | 一种视频播放中的用户交互实现方法及装置 |
CN112069190A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 一种分批数据获取方法、装置、设备及介质 |
EP3796318A1 (en) * | 2019-09-19 | 2021-03-24 | Baidu Online Network Technology (Beijing) Co., Ltd. | Video playing method and device, electronic device, and readable storage medium |
CN111245852A (zh) * | 2020-01-16 | 2020-06-05 | 腾讯云计算(北京)有限责任公司 | 流数据传输方法、装置、系统、接入设备及存储介质 |
WO2021159864A1 (zh) * | 2020-02-11 | 2021-08-19 | 华为技术有限公司 | 一种传输视频音频数据的方法、云端服务器和系统 |
CN111274325A (zh) * | 2020-02-24 | 2020-06-12 | 中国工商银行股份有限公司 | 平台自动化测试方法及系统 |
CN111641846A (zh) * | 2020-05-19 | 2020-09-08 | 深圳力维智联技术有限公司 | 一种安防监控视频即时播放的方法、装置和系统 |
CN111818121A (zh) * | 2020-05-26 | 2020-10-23 | 杭州爱教乐学科技有限公司 | 直播通信方法、装置、计算机设备及存储介质 |
CN112188225A (zh) * | 2020-09-29 | 2021-01-05 | 上海哔哩哔哩科技有限公司 | 用于直播回放的弹幕下发方法和直播视频弹幕回放方法 |
CN113301397A (zh) * | 2021-02-19 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 基于cdn的音视频传输、播放与延时探测方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114339419A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367456A (zh) | 通信终端及多窗口模式下的显示方法 | |
CN110865837B (zh) | 一种进行系统升级的方法和终端 | |
CN113473074B (zh) | 一种检测方法、电子设备、检测设备以及存储介质 | |
CN113709026B (zh) | 即时通信消息的处理方法、设备、存储介质和程序产品 | |
CN114201130A (zh) | 一种投屏的方法、装置及存储介质 | |
CN113542545B (zh) | 电子设备及录像方法 | |
CN114339419B (zh) | 一种视频流拉流处理的方法、装置及存储介质 | |
CN111176766A (zh) | 一种通信终端及组件显示方法 | |
CN114374813A (zh) | 多媒体资源管理方法、记录仪及服务器 | |
CN113259700A (zh) | 管理设备、服务器、视频存储方法及系统 | |
CN111158735B (zh) | 一种热补丁文件处理方法及通信终端 | |
CN113014614A (zh) | 一种设备控制方法、控制设备及被控设备 | |
CN113157092B (zh) | 可视化方法、终端设备和存储介质 | |
CN114546219A (zh) | 图片列表的处理方法及相关装置 | |
CN113641431A (zh) | 二维码的增强显示的方法和终端设备 | |
CN113507614A (zh) | 视频的播放进度调节方法及显示设备 | |
CN114286320A (zh) | 一种显示设备、移动终端及蓝牙连接方法 | |
CN113254132A (zh) | 一种应用显示方法及相关装置 | |
CN111159734A (zh) | 通信终端及多应用数据互访处理方法 | |
CN112004006A (zh) | 移动医疗终端及其亮度调整方法 | |
CN113255644B (zh) | 显示设备及其图像识别方法 | |
CN112000411B (zh) | 移动终端及其录音通道占用信息的显示方法 | |
CN112929858B (zh) | 一种门禁卡的模拟方法和终端 | |
CN111142648B (zh) | 一种数据处理方法和智能终端 | |
CN113253905B (zh) | 基于多指操作的触控方法及智能终端 |
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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Applicant after: Qingdao Hisense Mobile Communication Technology Co.,Ltd. Address before: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Applicant before: HISENSE MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |