CN113905249B - 推流异常检测方法及装置 - Google Patents

推流异常检测方法及装置 Download PDF

Info

Publication number
CN113905249B
CN113905249B CN202111162985.4A CN202111162985A CN113905249B CN 113905249 B CN113905249 B CN 113905249B CN 202111162985 A CN202111162985 A CN 202111162985A CN 113905249 B CN113905249 B CN 113905249B
Authority
CN
China
Prior art keywords
plug
push
time period
preset
flow
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
CN202111162985.4A
Other languages
English (en)
Other versions
CN113905249A (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202111162985.4A priority Critical patent/CN113905249B/zh
Publication of CN113905249A publication Critical patent/CN113905249A/zh
Application granted granted Critical
Publication of CN113905249B publication Critical patent/CN113905249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2404Monitoring of server processing errors or hardware failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供推流异常检测方法及装置,其中所述推流异常检测方法,应用于主播客户端,包括:在检测到用户进入直播间的情况下,展示直播间界面,并触发按照预设采样周期,采集推流过程中产生的推流性能数据;对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标;调用展示接口在直播间界面中显示指定面板,指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常。本方案可以提高推流异常的检测效率。

Description

推流异常检测方法及装置
技术领域
本申请涉及直播技术领域,特别涉及一种推流异常检测方法。本申请同时涉及一种推流异常检测装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
在直播中,受客观因素影响,直播视频的异常时有发生。例如,推流异常:主播客户端推送至服务端的视频流出现卡顿。为了应对推流异常,需要对主播客户端推送的视频流进行推流异常检测,以确定造成推流异常的原因。
相关技术中,开发人员可以在观测到主播客户端推送的视频流出现卡顿的情况下,联系该主播客户端的主播,引导主播人工查看并反馈主播客户端的运行环境。这样,开发人员可以根据上述运行环境和服务端中主播客户端的运行日志,人工进行卡顿检测。
但是,随着直播技术的快速发展,主播数量呈爆发式增长,上述人工进行卡顿检测的方式,势必会导致检测效率低下。
发明内容
有鉴于此,本申请实施例提供了一种推流异常检测方法。本申请同时涉及一种推流异常检测装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的推流异常检测效率低的问题。
根据本申请实施例的第一方面,提供了一种推流异常检测方法,应用于主播客户端,包括:
在检测到用户进入直播间的情况下,展示直播间界面,并触发按照预设采样周期,采集推流过程中产生的推流性能数据;
对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标;
调用展示接口在所述直播间界面中显示指定面板,所述指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;
基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常。
根据本申请实施例的第二方面,提供了一种推流异常检测装置,应用于主播客户端,包括:
展示模块,配置为在检测到用户进入直播间的情况下,展示直播间界面,并发送触发指令至采样模块;
所述采样模块,被配置为在接收到所述触发指令的情况下,按照预设采样周期,采集推流过程中产生的推流性能数据;
统计模块,被配置为对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标;
所述展示模块,还被配置为调用展示接口在所述直播间界面中显示指定面板,所述指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;
分析模块,被配置为基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述推流异常检测方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述推流异常检测方法的步骤。
本申请实施例提供的方案中,主播客户端在检测到用户进入直播间的情况下,展示直播间界面,并触发按照预设采样周期,采集推流过程中产生的推流性能数据;对第一预设时间段内采集的推流性能数据进行统计,确定第一预设时间段内的第一推流性能指标;调用展示接口在所述直播间界面中显示指定面板,所述指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;进而基于第一推流性能指标,确定第一预设时段内是否发生推流异常。其中,推流性能数据产生于预设采样周期内的推流过程,可以反映是否发生推流异常。因此,对第一预设时间段内采集的推流性能数据进行统计,确定的第一预设时间段内的第一推流性能指标,可以用于确定第一预设时段内是否发生推流异常。并且,在直播间界面中展示推流性能数据,和/或者第一推流性能指标,可以方便用户及时获知推流性能,进一步提高用户体验。可见,本方案可以实现推流异常检测的自动化及推流性能的可视化,从而提高推流异常检测的效率,降低推流异常检测的成本,以及提高用户体验。
附图说明
图1是本申请一实施例提供的一种推流异常检测方法的流程图;
图2是本申请另一实施例提供的一种推流异常检测方法中,推流性能图的示例图;
图3是本申请另一实施例提供的一种推流异常检测方法中,目标异常处理方式引导图的示例图;
图4是本申请另一实施例提供的一种推流异常检测方法中,推流统计图的示例图;
图5是本申请另一实施例提供的一种推流异常检测方法的处理流程图;
图6是本申请一实施例提供的一种推流异常检测装置的结构示意图;
图7是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请中,提供了一种推流异常检测方法,本申请同时涉及一种推流异常检测装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种推流异常检测方法的流程图,应用于主播客户端,具体包括以下步骤:
S102,在检测到用户进入直播间的情况下,展示直播间界面,并触发按照预设采样周期,采集推流过程中产生的推流性能数据。
其中,推流指主播客户端将采集并完成编码的视频推送至服务端。在具体应用中,主播客户端通常在用户也就是主播进入直播间、且展示直播间界面的情况下,开始推流。在此基础上,为了避免漏采样,可以展示直播间界面的情况下,触发采样。另外,为了进一步降低推流异常检测成本,可以在指定时间点或者接收到推流异常检测指令的情况下执行上述步骤S102。指定时间点可以是根据历史经验确定的容易发生推流异常的时间点,例如,直播高峰时间点、历史推流异常时间点等等。推流异常检测指令可以包括主播点击主播客户端的推流异常检测按钮产生的指令。
并且,推流性能数据包括反映推流过程中网络性能的数据,和/或者反映推流过程中主播客户端所属计算设备也就是终端性能的数据,具体可以是多种的。相应的,采集推流性能数据的方式具体可以是多种的。为了便于理解和合理布局,后续以可选实施例的形式具体说明。
S104,对第一预设时间段内采集的推流性能数据进行统计,确定第一预设时间段内的第一推流性能指标。
其中,第一预设时间段可以是多种的。示例性的,第一预设时间段可以包括:预设采样周期,或者多个预设采样周期。例如,预设采样周期为1秒,第一预设时间段可以为1秒,或者10秒。并且,对应于不同的推流性能数据,可以通过不同的统计方式确定第一推流性能指标。为了便于理解和合理布局,后续以可选实施例的形式具体说明。
S106,调用展示接口在直播间界面中显示指定面板,指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标。
其中,展示接口可以利用预设的渲染参数和布局参数,展示直播间界面和指定面板。并且,指定面板中展示各预设采样周期采集的推流性能数据,和/或者第一推流性能指标的方式可以是多种的。示例性的,指定面板中可以展示性能数据本身和/或者根据性能数据绘制的图表。其中,性能数据可以包括各预设采样周期采集的推流性能数据,和/或者第一推流性能指标。为了便于理解和合理布局,后续以可选实施例的形式对展示图表的情况进行具体说明。
S108,基于第一推流性能指标,确定第一预设时间段内是否发生推流异常。
在具体应用中,基于第一推流性能指标,确定第一预设时间段内是否发生推流异常的方式可以是多种的。示例性的,可以将第一推流性能指标输入预先训练得到的异常识别模型,得到第一预设时间段内是否发生推流异常的识别结果。其中,异常识别模型为利用样本第一推流性能指标和样本第一推流性能指标对应的是否异常的标签训练得到的神经网络模型。或者,示例性的,可以比较第一推流性能指标是否达到预设指标阈值,若达到则确定第一预设时间段内是否发生推流异常。为了便于理解和合理布局,后续以可选实施例的形式对第二种情况进行具体说明。
本申请实施例提供的方案中,推流性能数据产生于预设采样周期内的推流过程,可以反映是否发生推流异常。因此,对第一预设时间段内采集的推流性能数据进行统计,确定的第一预设时间段内的第一推流性能指标,可以用于确定第一预设时段内是否发生推流异常。并且,在直播间界面中展示推流性能数据,和/或者第一推流性能指标,可以方便用户及时获知推流性能,进一步提高用户体验。可见,本方案可以实现推流异常检测的自动化及推流性能的可视化,从而提高推流异常检测的效率,降低推流异常检测的成本,以及提高用户体验。
在一种可选的实施方式中,上述推流性能数据可以包括丢帧数,和/或,终端使用率;
相应地,上述按照预设采样周期,采集推流过程中产生的推流性能数据,具体可以包括如下步骤:
按照预设采样周期,统计预设采样周期的丢帧数;和/或,
按照预设采样周期,调用应用程序接口,获得主播客户端的终端使用率。
在具体应用中,造成推流异常的原因可以包括网络性能异常,和/或者主播客户端的终端性能异常。并且,丢帧数可以反映网络性能是否异常,丢帧数和主播客户端的终端使用率可以反映终端性能是否异常。因此,本实施例通过统计预设采样周期的丢帧数;和/或,获取预设采样周期的主播客户端的终端使用率,可以实现对推流性能数据的采集。
并且,丢帧数和主播客户端的终端使用率均可以是多种的。下面以可选实施例的形式具体说明。
在一种可选的实施方式中,丢帧数可以包括网络丢帧数、渲染丢帧数、编码丢帧数中的至少一种;
相应地,上述按照预设采样周期,统计预设采样周期的丢帧数,包括以下步骤中的至少一个:
按照预设采样周期,统计预设采样周期内推流时丢弃的视频帧个数,得到网络丢帧数;
按照预设采样周期,计算预设采样周期内视频采集模块采集视频帧的个数与目标采集个数之间的差值,得到渲染丢帧数;
按照预设采样周期,统计预设采样周期内对视频采集模块采集的视频帧进行编码时丢弃的视频帧个数,得到编码丢帧数。
在具体应用中,推流的丢帧可以发生在视频流的采集阶段、编码阶段及推送阶段。其中,在采集阶段,视频采集模块通常按照预设的采集参数采集目标采集个数个视频帧,若终端性能异常,则视频采集模块实际采集的视频帧个数小于目标采集个数,出现丢帧。其中,视频采集模块具体可以为摄像头、录屏装置等等。并且,预设的采集参数可以为采集的帧率。示例性的,预设采样周期内视频采集模块采集视频帧的个数为n,根据采集的帧率,计算该预设采样周期内的目标采集个数为m,则m与n的差值d=m-n即为渲染丢帧数。
并且,在编码阶段,主播客户端的终端性能异常导致无法按照预设的视频编码的帧率进行编码,因而主动丢弃视频采集模块已采集、且未进行编码的视频帧。在推流阶段,网络异常导致主播客户端无法及时推送已编码完成的视频帧,因而进行视频帧的主动丢弃以避免直播画面延时。其中,任一帧率指每秒钟传输帧数(FPS,Frame Per Second),也称刷新率,单位为Hz。
在上述基础上,采集阶段和编码阶段的丢帧数可以反映主播客户端的终端性能是否异常;推送阶段的丢帧数可以反映网络性能是否异常。因此,可以通过本实施例的方式针对采集阶段获取渲染丢帧数,针对编码阶段获取编码丢帧数,针对推送阶段获取网络丢帧数,从而准确获取丢帧数。
另外,为了提高后续用于服务端展示推流性能的第二推流性能指标的准确度和丰富度,在一种情况中,上述推流性能数据可以包括:丢帧数据量。丢帧数据量具体可以由丢帧数乘以单个视频帧的数据量得到。例如,单个视频帧的数据量为k字节,网络丢帧数为10个,则网络丢帧数据量为10×K字节。类似的,可以计算得到渲染丢帧数据量和编码丢帧数据量。
在一种可选的实施方式中,上述主播客户端的终端使用率可以包括:处理器使用率和内存使用率中的至少一种;
相应的,上述按照预设采样周期,调用应用程序接口,获得主播客户端的终端使用率,可以包括:
按照预设采样周期,调用第一应用程序接口,获得处理器使用率;和/或,
按照预设采样周期,调用第二应用程序接口,获得内存使用率。
在具体应用中,可以调用不同的应用程序接口,获取相应的终端使用率。示例性的,处理器使用率具体可以包括安装有主播客户端的计算设备的中央处理器使用率,主播客户端对该计算设备的中央处理器的使用率,该计算设备的图形处理器(GPU,GraphicsProcessing Unit)使用率,和/或主播客户端对该计算设备的图形处理器使用率。内存使用率具体可以包括安装有主播客户端的计算设备的内存使用率,和/或主播客户端对该计算设备的内存使用率。
其中,任一使用率可以为瞬时使用率。并且,获取任一中央处理器使用率的应用程序接口可以由计算设备的操作系统提供,获取任一图形处理器使用率的应用程序接口可以由计算设备的显卡驱动提供。另外,在一种情况中,推流性能数据可以包括主播客户端对上述计算设备的内存使用量。内存使用量同样可以通过调用相应应用程序接口获取,具体可以为瞬时使用量。
本实施例通过调用与不同终端使用率对应的不同应用程序接口,可以准确获取主播客户端的终端使用率。
在一种可选的实施方式中,第一推流性能指标包括第一丢帧指标,和/或,第一终端使用指标;
相应地,上述对第一预设时间段内采集的推流性能数据进行统计,确定第一预设时间段内的第一推流性能指标,具体可以包括如下步骤:
统计第一预设时间段内各预设采样周期的丢帧数,得到第一预设时间段内的第一丢帧指标;和/或,
统计第一预设时间段内各预设采样周期获得的终端使用率,得到第一预设时间段内的第一终端使用指标。
在具体应用中,统计第一预设时间段内各预设采样周期的丢帧数,得到第一预设时间段内的丢帧指标,可以是多种的。示例性的,可以直接统计第一预设时间段内各预设采样周期的丢帧数,计算第一预设时间段内各预设采样周期的丢帧数总和,第一预设时间段内各预设采样周期的丢帧数平均值,第一预设时间段内各预设采样周期的丢帧率,和/或者第一预设时间段内各预设采样周期的丢帧率的平均值,得到第一预设时间段内的第一丢帧指标。其中,预设采样周期的丢帧率可以包括预设采样周期的丢帧数与预设采样周期内无丢帧的视频帧总数之间的比值。例如,对于预设采样周期T1,无丢帧的视频帧总数可以包括:视频采集模块的目标采集个数m,编码得到的视频帧数量和编码丢帧数之和C,推送的视频帧数量和网络丢帧数之和P中的至少一种。
并且,若丢帧数为多种,例如丢帧数包括网络丢帧数、渲染丢帧数、编码丢帧数中的至少两种,则可以针对每种丢帧数统计得到上述第一预设时间段内的第一丢帧指标。这样,可以针对不同种类的丢帧数进行针对性地统计,从而更加准确地确定是否存在推流异常。
并且,统计第一预设时间段内各预设采样周期获得的终端使用率,得到第一预设时间段内的第一终端使用指标,具体可以是多种的。示例性的,可以直接统计第一预设时间段内各预设采样周期获得的终端使用率,确定第一预设时间段内各预设采样周期获得的终端使用率中的最大值,和/或计算第一预设时间段内各预设采样周期获得的终端使用率的平均值,得到第一预设时间段内的第一终端使用指标。
通过本实施例,可以获得包括第一丢帧指标,和/或,第一终端使用指标的第一推流性能指标,提高第一推流性能指标的丰富度和准确度,从而提高后续推流异常检测的准确度。
在一种可选的实施方式中,在上述调用展示接口在直播间界面中显示指定面板,指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标,具体可以包括如下步骤:
调用展示接口根据各预设采样周期采集的推流性能数据,生成推流性能图,并渲染推流性能图和预设面板参数,得到指定面板;
调用展示接口在直播间界面中显示上述指定面板。
在具体应用中,推流性能图的形式可以是折线图、柱状图、饼图等等。对于推流性能数据的种类为多个的情况:可以分别基于每种推流性能数据,生成该种推流性能数据的推流性能子图,利用多个推流性能子图生成推流性能图;或者,可以确定每种推流性能数据对应的颜色,利用所确定的颜色和各推流性能数据,生成推流性能图。并且,展示推流性能图的时机,可以是实时或者每隔指定时长生成。为了便于描述和理解,接下来用性能参数指代推流性能数据,和/或者第一推流性能指标。示例性的,对于实时的情况:可以在获得性能参数时,执行本实施例的步骤。对于每隔指定时长的情况:可以将获得的性能参数添加至缓存队列,从缓存队列中第一个性能参数开始,每隔指定时长读取缓存队列中的性能参数,并将所读取的性能参数作为本次采样周期中用于绘制推流性能图的数据,执行本实施例的步骤。其中,指定时长大于预设采样周期。在具体应用中,若在当前的指定时长之前进行了推流性能图的展示,则可以将上一个指定时长的推流性能图替换为当前的指定时长的推流性能图。另外,为了方便回溯,在一种情况中,可以存储每个指定时长的推流性能图。
并且,对于实时展示推流性能图的情况,为了适应主播客户端中尺寸有限的直播间界面,提高用户便捷性,在上述调用展示接口在直播间界面中显示指定面板之后,本申请实施例提供的推流异常检测方法,还可以包括如下步骤:
若在获取到性能参数时,确定出推流性能图中性能参数的个数达到个数阈值,则将推流性能图中获取时间最早的性能参数移除,将推流性能图中余下的性能参数依次移至性能参数空缺的位置,并将当前获取的性能参数显示在推流性能图中获取时间最新的位置;
和/或,若接收到对任一性能参数的选中指令,则在推流性能图中显示选中指令对应时间点的各性能参数。
其中,获取到性能参数可以包括采集到和/或者统计得到性能参数,具体取决于性能参数的种类。本实施例可以实现推流性能图中的性能参数随时间的迁移而不断移动,旧性能参数逐步移出推流性能图,新性能参数加入。并且,选中指令可以是用户使用鼠标滑过某一性能参数。另外,可以在推流性能图中展示选中指令对应的时间点,个数阈值对应的采样时长可以作为推流性能图展示数据的时长。例如,个数阈值为150个,预设采样周期为1秒,预设采样周期可以采集的每种推流性能数据的数量为1个,则个数阈值对应的采样时长为150秒。在一种情况中,为了符合不同用户的查看需求,可以在推流性能图中展示设置按钮,用户可以通过设置按钮设置推流性能图的颜色、所展示的性能参数种类、上述采样时长等等。
示例性的,在主播客户端的用户界面(User Interface)中展示推流性能图,例如,图2所示本申请另一实施例提供的一种推流异常检测方法中,推流性能图的示例图。以展示多种推流性能数据,对每种推流性能数据分别绘制折线图,折线图的Y轴为推流性能数据,且X轴为采样时间点为例。推流性能图中展示有以下独立的折线图:网络丢帧率折线图、渲染丢帧率折线图、编码丢帧率折线图、计算设备的中央处理器使用率折线图、计算设备的图形处理器使用率折线图、计算设备的内存使用率折线图、主播客户端对计算设备的中央处理器使用率折线图、及主播客户端对计算设备的内存使用率折线图。并且,为了方便查看,每种推流性能数据折线图顶部可以展示推流性能数据名称。若接收到对任一推流性能数据的选中指令,则在推流性能图中显示选中指令对应时间点的各推流性能数据,可以包括:每种推流性能数据折线图中展示选中指令对应时间点的时间轴纵线。并且,在每种推流性能数据折线图顶部以文本形式展示该时间点的瞬时采样数据也就是推流性能数据。图2中以网络丢帧率折线图为例示出推流性能数据名称和瞬时采样数据的展示位置,类似的,对任一种推流性能数据均可按此展示。为了便于理解和合理布局,对于上述各中推流性能数据在后续关于采集推流性能数据的可选实施例中进行具体说明。
并且,为了提高推流异常处理的便捷性和准确度,推流性能图中还可以展示以下信息中的至少一种:系统信息、网络信息、主播客户端信息、编码参数、及推流属性信息。其中,系统信息可以包括主播客户端所属计算设备的操作系统版本信息、CPU型号、内存容量、GPU型号等等。网络信息可以包括网络类型、运营商、互联网协议地址(IP地址,InternetProtocol Address),用户所处地理位置等等。网络类型具体可以包括:移动蜂窝网络、无线网络、有线网络等等。主播客户端信息可以包括客户端版本信息、直播间标识、主播标识等等。编码参数可以包括码率、帧率、分辨率、码率控制方式、编码方式等等。推流属性信息可以包括直播状态信息、推流开始时间、直播间地址。其中,直播状态信息可以包括直播中或者直播结束。
并且,上述用户界面也就是推流性能图在接收到性能展示指令的情况下展示,则在按照预设采样周期,采集推流过程中产生的推流性能数据之后,可以将推流性能数据添加至缓存队列。在此基础上,对于实时展示的情况,可以读取缓存队列中采样时间点距当前时间点最近的推流性能数据生成推流性能图并展示,后续执行上述实时展示的步骤即可。对于每隔指定时长展示的情况,可以读取缓存队列中距当前时间点最近的指定时长内的推流性能数据生成推流性能图并展示,后续执行上述每隔指定时长展示的步骤即可。
任何可以根据各预设采样周期采集的推流性能数据,生成推流性能图,以及展示推流性能图的方式均可用于本申请,本实施例对此不作限制。
在一种可选的实施方式中,上述基于第一推流性能指标,确定第一预设时间段内是否发生推流异常,具体可以包括如下步骤:
若第一丢帧指标达到第一预设阈值,则确定第一预设时间段内发生推流异常;和/或,
若第一终端使用指标达到第二预设阈值,则确定第一预设时段内发生推流异常。
在具体应用中,第一预设阈值和第二预设阈值可以根据历史经验以及具体需求设置。并且,对应于不同的丢帧指标可以设置不同的第一预设阈值,类似的,对应于不同的第一终端使用指标,可以设置不同的第二预设阈值。例如,丢帧率的平均值大于或者等于40%,中央处理器使用率的平均值大于或者等于80%,图形处理器使用率的平均值大于或者等于90%等等。其中,丢帧率的平均值具体可以包括:网络丢帧率的平均值,渲染丢帧率的平均值,编码丢帧率的平均值种的至少一种。
本实施例可以通过能够按具体应用情况设置的第一预设阈值和/或第二预设阈值,针对不同的第一推流性能指标进行推流异常检测,从而提高推流异常检测的准确度。
在一种可选的实施方式中,在上述基于第一推流性能指标,确定第一预设时间段内是否发生推流异常之后,本申请实施例提供的推流异常检测方法还可以包括如下步骤:
在确定第一预设时间段内发生推流异常的情况下,根据第一推流性能指标,确定发生推流异常的目标异常类型。
在具体应用中,根据第一推流性能指标,确定发生推流异常的目标异常类型,可以是多种的。示例性的,可以将第一推流性能指标输入预先训练得到的分类模型,得到发生推流异常的目标异常类型。其中,分类模型为利用样本第一推流性能指标和样本第一推流性能指标的异常类型标签训练得到的神经网络模型。或者,示例性的,可以查找预先建立的推流性能指标与异常类型的对应关系,得到第一推流性能指标对应的生推流异常的目标异常类型。
示例性,以丢帧指标包括丢帧率的平均值和终端使用指标包括处理器使用率的平均值为例,说明上述第二种示例性情况中的对应关系。如下表1所示:
表1-推流性能指标与异常类型的对应关系
Figure BDA0003290480360000111
Figure BDA0003290480360000121
本实施例对于发生推流异常的情况,可以基于第一推流性能指标,确定发生推流异常的目标异常类型。目标异常类型可以用于处理推流异常,从而提高用户体验。并且,本实施例自动确定目标异常类型,因此,可以提高推流异常的处理效率。
在一种可选的实施方式中,在上述根据第一推流性能指标,确定发生推流异常的目标异常类型之后,本申请实施例提供的方法还可以包括如下步骤:
根据预先建立的异常类型与异常处理方式的对应关系,查找目标异常类型对应的目标异常处理方式;
展示目标异常处理方式。
对于不同的异常类型,可以采用不用的异常处理方式。并且,为了。示例性的,以上述表1所示的异常类型为例,说明上述异常类型与异常处理方式的对应关系。如下表2所示:
表2-异常类型与异常处理方式的对应关系
Figure BDA0003290480360000122
其中,编码阈值可以根据具体需求设置,例如,编码阈值可以为分辨率1080p和帧率60帧每秒。软编码指使用CPU进行视频编码。硬编码指使用非CPU的处理器进行视频编码,例如,使用GPU、图像处理专用的数字信号处理器(Digital DSP,Signal Processing)、现场可编程逻辑门阵列(FPGA,Field Programmable Gate Array)、专用集成电路(ASIC,Application Specific Integrated Circuit)等等进行视频编码。并且,编码方式预先设置在主播客户端中,因此,可以由主播客户端直接根据类型参数确定编码方式。例如,软编码对应的类型参数为“1”,硬编码对应的类型参数为“0”。
另外,在具体运用中,上述目标异常处理方式的展示形式可以是多种的。示例性的,可以采用文字通知的形式,例如弹幕形式展示目标异常处理方式。或者,示例性的,可以弹出目标异常处理方式引导图,该引导图的内容为目标异常处理方式。其中,如图3所示本申请另一实施例提供的一种推流异常检测方法中,目标异常处理方式引导图的示例图:该引导图可以包含主题区和引导区。主题区用于展示表明推流异常的信息,例如“直播卡顿”、“推流异常”、“CPU使用率异常”等等。引导区用于展示目标异常处理方式,例如,异常处理方式F1至异常处理方式Fn。
本实施例通过展示与标异常类型对应的目标异常处理方式,可以引导用户直接在主播客户端处理推流异常,无需开发人员人工沟通处理,从而提高推流异常的处理效率。并且,针对不同的推流异常类型确定不同的异常处理方式,可以提高推流异常的处理准确度。
在一种可选的实施方式中,在上述按照预设采样周期,采集推流过程中产生的推流性能数据之后,本申请实施例提供的推流检测方法,还可以包括如下步骤:
将推流性能数据添加至缓存队列;
每间隔第二预设时间段,读取缓存队列中的推流性能数据,并对读取的推流性能数据进行统计,确定该第二预设时间段内的第二推流性能指标;
发送第二推流性能指标至服务端,第二推流性能指标用于服务端进行推流性能展示。
在具体应用中,第二预设时间段可以是多种的。示例性的,第二预设时间段可以等于或者大于预设采样周期。或者,示例性的,第二预设时间段可以等于或者大于上述指定时长。本实施例通过发送第二推流性能指标至服务端,可以实现服务端利用第二推流性能指标进行推流性能展示,进而方便开发人员根据该推流性能展示的结果进行推流异常处理、客户端优化等事项。
并且,与上述主播客户端展示推流性能图类似的,关于读取推流性能数据的步骤:“每间隔第二预设时间段,读取缓存队列中的推流性能数据”的执行时机可以是多种的。示例性的,可以从缓存队列中存入推流性能数据开始计时,若计时时长达到第二预设时间段,则执行上述关于读取推流性能数据的步骤。或者,可以在接收到推流性能展示指令的情况下执行上述关于读取推流性能数据的步骤,并且,第一次读取时可以读取缓存队列中距当前时间点最近的第二预设时间段内的推流性能数据。
并且,上述任一实施例中执行读取缓存队列中的推流性能数据的步骤,可以将所读取的推流性能数据从缓存队列中取出,缓存队列中不再缓存所读取的数据。这样,可以降低缓存成本,以及减少缓存队列中的数据与进行推流性能展示的时间尽可能贴近,提高准确度。
在一种可选的实施方式中,推流性能数据包括丢帧数,和/或,终端使用率;第二推流性能指标包括第二丢帧指标,和/或,第二终端使用指标;
相应的,上述对读取的推流性能数据进行统计,确定该第二预设时间段内的第二推流性能指标,包括:
统计当前第二预设时间段内读取的各预设采样周期的丢帧数,得到当前第二预设时间段内的第二丢帧指标;和/或,
统计当前第二预设时间段内各预设采样周期获得的终端使用率,得到当前第二预设时间段内的第二终端使用指标。
在具体应用中,上述统计当前第二预设时间段内读取的各预设采样周期的丢帧数,得到当前第二预设时间段内的第二丢帧指标可以是多种的。示例性的,可以直接统计第二预设时间段内各预设采样周期的丢帧数,计算第二预设时间段内各预设采样周期的丢帧数总和,第二预设时间段内各预设采样周期的丢帧数平均值,第二预设时间段内各预设采样周期的丢帧率,和/或者第二预设时间段内各预设采样周期的丢帧率的平均值,得到第二预设时间段内的第二丢帧指标。其中,预设采样周期的丢帧率可以包括预设采样周期的丢帧数与预设采样周期内无丢帧的视频帧总数之间的比值。例如,对于预设采样周期T1,无丢帧的视频帧总数可以包括:视频采集模块的目标采集个数m,编码得到的视频帧数量和编码丢帧数之和C,推送的视频帧数量和网络丢帧数之和P中的至少一种。并且,若丢帧数为多种,例如丢帧数包括网络丢帧数、渲染丢帧数、编码丢帧数中的至少两种,则可以针对每种丢帧数统计得到上述第二预设时间段内的第二丢帧指标。
并且,统计第二预设时间段内各预设采样周期获得的终端使用率,得到第二预设时间段内的终端使用指标,具体可以是多种的。示例性的,可以直接统计第二预设时间段内各预设采样周期获得的终端使用率,确定第二预设时间段内各预设采样周期获得的终端使用率中的最大值,和/或计算第二预设时间段内各预设采样周期获得的终端使用率的平均值,得到第二预设时间段内的第二终端使用指标。
并且,上述服务端利用第二推流性能指标进行推流性能展示,具体可以包括:服务端根据第二推流性能指标,生成推流统计图,展示推流统计图。其中,推流统计图可以与主播客户端展示的推流性能图类似,区别在于所展示的关于推流性能的数据为第二推流性能指标。
或者,示例性的,以第二推流性能指标为多种,以折线形式展示各第二推流性能指标为例,如图4本申请另一实施例提供的一种推流异常检测方法中,推流统计图的示例图所示:以Y轴为第二推流性能指标,X轴为时间,分别对每种第二推流性能指标绘制一条折线,且每条折线图可以采用不同的线条样式,颜色以及端点等等。例如,图4中第二推流性能指标D1至第二推流性能指标Dn。其中,时间点为用于统计得到第二推流性能指标的各推流性能数据的采样时间区间,例如8:00:10-8:01:10。并且,为了方便查看,推流统计图中可以展示筛选项,开发人员可以在筛选项中选择所展示第二推流性能指标的时间区间和主播标识。另外,推流统计图中还可以存在指定信息展示区域,该区域中可以展示上述系统信息、网络信息、主播客户端信息、编码参数、及推流属性信息中的至少一个。并且,指定信息展示区域也可以展示开发人员选中的第二推流性能指标,以方便查看。任何可以用于推流性能分析的信息均可展示在指定信息展示区域中,本实施例对此不作限制。
为了便于理解,下面以示例性描述的形式对上述部分实施例进行整合说明。
示例性的,如图5所示,本申请另一实施例提供的一种推流异常检测方法的处理流程图,该方法可以包括如下步骤:
启动;从服务端获取动态配置;开始推流;
每1秒采集推流性能数据;采样数据添加至缓存队列;其中,缓存队列为长度300的缓存队列;
通知UI面板实时更新采样数据;统计分析最近10秒的采样数据;
判断距上一次上报服务端是否已达60秒,若已达60秒,则从长度300的缓存队列中统计最近60秒的采样数据;封装所统计的数据并上传至服务器;
判断是否终止推流,若终止,则结束,若未终止,则返回执行每1秒采集推流性能数据的步骤。
本实施例中的各步骤与上述图1实施例及可选实施例中作用相同的步骤相似,对于相同部分在此不再赘述,详见上述图1实施例及可选实施例中作用相同步骤的描述。区别在于为了简洁表述不同。具体的:
启动相当于主播客户端启动;动态配置具体可以包括缓存队列的长度、预设采样周期、第一预设时间段、第二预设时间段、第一预设阈值、和第二预设阈值中的至少一种;开始推流相当于检测到用户进入直播间的情况下,展示直播间界面,也就是主播客户端开始推送视频流至服务端;
1秒相当于预设采样周期;采样数据相当于所采集的推流性能数据;10秒相当于第一预设时间段;60秒相当于第二预设时间段;
通知UI面板实时更新采样数据相当于实时生成推流性能图并展示;统计分析最近10秒的采样数据相当于对第一预设时间段内采集的推流性能数据进行统计,确定第一预设时间段内的第一推流性能指标,基于第一推流性能指标,确定第一预设时间段内是否发生推流异常;
判断距上一次上报服务端是否已达60秒,若已达60秒,则从长度300的缓存队列中统计最近60秒的采样数据及封装所统计的数据并上传至服务器,相当于上述每间隔第二预设时间段,读取缓存队列中的推流性能数据,并对读取的推流性能数据进行统计,确定该第二预设时间段内的第二推流性能指标,发送第二推流性能指标至服务端,第二推流性能指标用于服务端进行推流性能展示。
下面结合具体应用场景对本实施例进行示例性的说明:
主播客户端每秒钟获取一次这1秒时间内的推流性能数据“网络丢帧数、网络丢帧的字节数、渲染丢帧数、编码丢帧数、计算设备CPU使用率、计算设备内存使用率、计算设备GPU使用率、主播客户端对CPU使用率、主播客户端对内存使用量”。将上述推流性能数据封装在一个数据结构中,将该数据结构缓存在内存中的缓存队列里,缓存队列最大长度为300,即缓存队列最多只缓存最近300秒的推流性能数据,该长度支持线上动态配置,每次主播客户端启动都会从服务器拉取一次该长度。
主播客户端每10秒对主播客户端本地记录的推流性能数据进行统计,得到第一推流性能指标,根据第一推流性能指标确定是否存在推流异常,以及发生推流异常的异常类型。根据异常类型和编码信息展示异常处理方式。其中,编码信息具体可以包括编码方式,编码参数等信息。
主播客户端每60秒读取缓存队列中的推流性能数据并统计,上报统计结果至服务端,统计结果即第二推流性能指标。进而,服务端可以根据第二推流性能指标进行推流性能展示。
与上述方法实施例相对应,本申请还提供了推流异常检测装置实施例,图6示出了本申请一实施例提供的一种推流异常检测装置的结构示意图。如图6所示,应用于主播客户端,该装置包括:
展示模块602,配置为在检测到用户进入直播间的情况下,展示直播间界面,并发送触发指令至采样模块604;
采样模块604,被配置为在接收到所述触发指令的情况下,按照预设采样周期,采集推流过程中产生的推流性能数据;
统计模块606,被配置为对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标;
所述展示模块608,还被配置为调用展示接口在所述直播间界面中显示指定面板,所述指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;
分析模块610,被配置为基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常。
本申请实施例提供的方案中,推流性能数据产生于预设采样周期内的推流过程,可以反映是否发生推流异常。因此,对第一预设时间段内采集的推流性能数据进行统计,确定的第一预设时间段内的第一推流性能指标,可以用于确定第一预设时段内是否发生推流异常。并且,在直播间界面中展示推流性能数据,和/或者第一推流性能指标,可以方便用户及时获知推流性能,进一步提高用户体验。可见,本方案可以实现推流异常检测的自动化及推流性能的可视化,从而提高推流异常检测的效率,降低推流异常检测的成本,以及提高用户体验。
在一种可选的实施方式中,所述推流性能数据包括丢帧数,和/或,终端使用率;
相应地,所述采样模块604,进一步被配置为:
按照预设采样周期,统计所述预设采样周期的丢帧数;和/或,
按照所述预设采样周期,调用应用程序接口,获得所述主播客户端的终端使用率。
在一种可选的实施方式中,所述丢帧数包括网络丢帧数、渲染丢帧数、编码丢帧数中的至少一种;
相应地,所述采样模块604,进一步被配置为实现以下步骤中的至少一个:
按照预设采样周期,统计所述预设采样周期内推流时丢弃的视频帧个数,得到网络丢帧数;
按照所述预设采样周期,计算所述预设采样周期内视频采集模块采集视频帧的个数与目标采集个数之间的差值,得到渲染丢帧数;
按照所述预设采样周期,统计所述预设采样周期内对所述视频采集模块采集的视频帧进行编码时丢弃的视频帧个数,得到编码丢帧数。
在一种可选的实施方式中,所述第一推流性能指标包括第一丢帧指标,和/或,第一终端使用指标;
相应地,所述采样模块604,进一步被配置为:
统计第一预设时间段内各预设采样周期的丢帧数,得到所述第一预设时间段内的第一丢帧指标;和/或,
统计所述第一预设时间段内所述各预设采样周期获得的终端使用率,得到所述第一预设时间段内的第一终端使用指标。
在一种可选的实施方式中,所述分析模块610,进一步被配置为:
若所述丢帧指标达到第一预设阈值,则确定所述第一预设时间段内发生推流异常;和/或,
若所述终端使用指标达到第二预设阈值,则确定所述第一预设时段内发生推流异常。
在一种可选的实施方式中,所述分析模块610,进一步被配置为:
在所述基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常之后,在确定所述第一预设时间段内发生推流异常的情况下,根据所述第一推流性能指标,确定发生所述推流异常的目标异常类型。
在一种可选的实施方式中,所述展示模块608,还被配置为:
根据预先建立的异常类型与异常处理方式的对应关系,查找所述目标异常类型对应的目标异常处理方式;
展示所述目标异常处理方式。
在一种可选的实施方式中,统计模块606进一步被配置为:
将所述推流性能数据添加至缓存队列;
每间隔第二预设时间段,读取所述缓存队列中的推流性能数据,并对读取的推流性能数据进行统计,确定该第二预设时间段内的第二推流性能指标;
发送所述第二推流性能指标至服务端,所述第二推流性能指标用于所述服务端进行推流性能展示。
在一种可选的实施方式中,所述推流性能数据包括丢帧数,和/或,终端使用率;所述第二推流性能指标包括第二丢帧指标,和/或,第二终端使用指标;
所述统计模块606进一步被配置为:
统计当前第二预设时间段内读取的各预设采样周期的丢帧数,得到所述当前第二预设时间段内的第二丢帧指标;和/或,
统计所述当前第二预设时间段内所述各预设采样周期获得的终端使用率,得到所述当前第二预设时间段内的第二终端使用指标。
上述为本实施例的一种推流异常检测装置的示意性方案。需要说明的是,该推流异常检测装置的技术方案与上述的推流异常检测方法的技术方案属于同一构思,推流异常检测装置的技术方案未详细描述的细节内容,均可以参见上述推流异常检测方法的技术方案的描述。
图7示出了根据本申请一实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Networks)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720执行所述指令时实现所述的推流异常检测方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的推流异常检测方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述推流异常检测方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述推流异常检测方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的推流异常检测方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述推流异常检测方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (12)

1.一种推流异常检测方法,其特征在于,应用于主播客户端,所述方法包括:
在检测到用户进入直播间的情况下,展示直播间界面,并触发按照预设采样周期,采集推流过程中产生的推流性能数据,其中,所述推流性能数据包括渲染丢帧数、编码丢帧数、网络丢帧数以及所述主播客户端的终端使用率,所述渲染丢帧数在视频流采集阶段获取,所述编码丢帧数在视频流编码阶段获取,所述网络丢帧数在视频流推送阶段获取,所述渲染丢帧数、所述编码丢帧数和所述主播客户端的终端使用率用于反映主播客户端的终端性能是否异常,所述网络丢帧数用于反映网络性能是否异常;
对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标;
调用展示接口在所述直播间界面中显示指定面板,所述指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;
基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常。
2.根据权利要求1所述的方法,其特征在于,所述推流性能数据包括丢帧数,和/或,终端使用率;
相应地,所述按照预设采样周期,采集推流过程中产生的推流性能数据,包括:
按照预设采样周期,统计所述预设采样周期的丢帧数;和/或,
按照所述预设采样周期,调用应用程序接口,获得所述主播客户端的终端使用率。
3.根据权利要求2所述的方法,其特征在于,所述丢帧数包括网络丢帧数、渲染丢帧数、编码丢帧数中的至少一种;
相应地,所述按照预设采样周期,统计所述预设采样周期的丢帧数,包括以下步骤中的至少一个:
按照预设采样周期,统计所述预设采样周期内推流时丢弃的视频帧个数,得到网络丢帧数;
按照所述预设采样周期,计算所述预设采样周期内视频采集模块采集视频帧的个数与目标采集个数之间的差值,得到渲染丢帧数;
按照所述预设采样周期,统计所述预设采样周期内对所述视频采集模块采集的视频帧进行编码时丢弃的视频帧个数,得到编码丢帧数。
4.根据权利要求2所述的方法,其特征在于,所述第一推流性能指标包括第一丢帧指标,和/或,第一终端使用指标;
相应地,所述对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标,包括:
统计第一预设时间段内各预设采样周期的丢帧数,得到所述第一预设时间段内的第一丢帧指标;和/或,
统计所述第一预设时间段内所述各预设采样周期获得的终端使用率,得到所述第一预设时间段内的第一终端使用指标。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常,包括:
若所述第一丢帧指标达到第一预设阈值,则确定所述第一预设时间段内发生推流异常;和/或,
若所述第一终端使用指标达到第二预设阈值,则确定所述第一预设时段内发生推流异常。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常之后,所述方法还包括:
在确定所述第一预设时间段内发生推流异常的情况下,根据所述第一推流性能指标,确定发生所述推流异常的目标异常类型。
7.根据权利要求6所述的方法,其特征在于,在所述根据所述第一推流性能指标,确定发生所述推流异常的目标异常类型之后,所述方法还包括:
根据预先建立的异常类型与异常处理方式的对应关系,查找所述目标异常类型对应的目标异常处理方式;
展示所述目标异常处理方式。
8.根据权利要求1-5任一项所述的方法,其特征在于,在所述按照预设采样周期,采集推流过程中产生的推流性能数据之后,所述方法还包括:
将所述推流性能数据添加至缓存队列;
每间隔第二预设时间段,读取所述缓存队列中的推流性能数据,并对读取的推流性能数据进行统计,确定该第二预设时间段内的第二推流性能指标;
发送所述第二推流性能指标至服务端,所述第二推流性能指标用于所述服务端进行推流性能展示。
9.根据权利要求8所述的方法,其特征在于,所述推流性能数据包括丢帧数,和/或,终端使用率;所述第二推流性能指标包括第二丢帧指标,和/或,第二终端使用指标;
所述对读取的推流性能数据进行统计,确定该第二预设时间段内的第二推流性能指标,包括:
统计当前第二预设时间段内读取的各预设采样周期的丢帧数,得到所述当前第二预设时间段内的第二丢帧指标;和/或,
统计所述当前第二预设时间段内所述各预设采样周期获得的终端使用率,得到所述当前第二预设时间段内的第二终端使用指标。
10.一种推流异常检测装置,其特征在于,应用于主播客户端,所述装置包括:
展示模块,配置为在检测到用户进入直播间的情况下,展示直播间界面,并发送触发指令至采样模块;
所述采样模块,被配置为在接收到所述触发指令的情况下,按照预设采样周期,采集推流过程中产生的推流性能数据,其中,所述推流性能数据包括渲染丢帧数、编码丢帧数、网络丢帧数以及所述主播客户端的终端使用率,所述渲染丢帧数在视频流采集阶段获取,所述编码丢帧数在视频流编码阶段获取,所述网络丢帧数在视频流推送阶段获取,所述渲染丢帧数、所述编码丢帧数和所述主播客户端的终端使用率用于反映主播客户端的终端性能是否异常,所述网络丢帧数用于反映网络性能是否异常;
统计模块,被配置为对第一预设时间段内采集的推流性能数据进行统计,确定所述第一预设时间段内的第一推流性能指标;
所述展示模块,还被配置为调用展示接口在所述直播间界面中显示指定面板,所述指定面板中展示有各预设采样周期采集的推流性能数据,和/或者第一推流性能指标;
分析模块,被配置为基于所述第一推流性能指标,确定所述第一预设时间段内是否发生推流异常。
11.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-9任意一项所述方法的步骤。
12.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-9任意一项所述方法的步骤。
CN202111162985.4A 2021-09-30 2021-09-30 推流异常检测方法及装置 Active CN113905249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111162985.4A CN113905249B (zh) 2021-09-30 2021-09-30 推流异常检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111162985.4A CN113905249B (zh) 2021-09-30 2021-09-30 推流异常检测方法及装置

Publications (2)

Publication Number Publication Date
CN113905249A CN113905249A (zh) 2022-01-07
CN113905249B true CN113905249B (zh) 2023-06-06

Family

ID=79189997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111162985.4A Active CN113905249B (zh) 2021-09-30 2021-09-30 推流异常检测方法及装置

Country Status (1)

Country Link
CN (1) CN113905249B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116193189A (zh) * 2022-10-25 2023-05-30 展讯半导体(成都)有限公司 丢帧率测试方法、装置、系统、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112752113A (zh) * 2020-12-28 2021-05-04 上海哔哩哔哩科技有限公司 直播服务器异常因素的确定方法及装置
CN113094239A (zh) * 2021-04-27 2021-07-09 上海哔哩哔哩科技有限公司 直播异常原因的确定方法及服务器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107026856A (zh) * 2017-03-30 2017-08-08 上海七牛信息技术有限公司 一种网络推流质量的优化方法及优化系统
CN109068157A (zh) * 2018-08-21 2018-12-21 北京潘达互娱科技有限公司 一种直播中推流参数的调整方法、装置及服务器
CN111405312A (zh) * 2020-04-26 2020-07-10 广州酷狗计算机科技有限公司 直播推流方法、装置、终端、服务器及存储介质
CN112199260A (zh) * 2020-11-17 2021-01-08 Oppo(重庆)智能科技有限公司 应用监测方法、装置、系统、终端设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112752113A (zh) * 2020-12-28 2021-05-04 上海哔哩哔哩科技有限公司 直播服务器异常因素的确定方法及装置
CN113094239A (zh) * 2021-04-27 2021-07-09 上海哔哩哔哩科技有限公司 直播异常原因的确定方法及服务器

Also Published As

Publication number Publication date
CN113905249A (zh) 2022-01-07

Similar Documents

Publication Publication Date Title
CN108156006B (zh) 一种埋点数据上报方法、装置及电子设备
US10904112B2 (en) Automatic capture of detailed analysis information based on remote server analysis
US9554292B2 (en) Methods and systems for performance monitoring for mobile applications
CN105740326B (zh) 浏览器的线程状态监测方法及装置
CN110162451B (zh) 一种性能分析方法、装置、服务器及存储介质
EP2688296A1 (en) Video monitoring system and method
CN109144858B (zh) 流畅度检测方法、装置、计算设备及存储介质
CN113395512B (zh) 卡顿检测方法、装置、卡顿检测服务器及存储介质
CN110209978B (zh) 一种数据处理方法和相关装置
US20130036235A1 (en) Method of transmission of visual content
CN112995418B (zh) 视频彩铃播放方法、发送方法及相关设备
CN113905249B (zh) 推流异常检测方法及装置
CN106921518B (zh) 监控视图展示方法及装置
CN110908864A (zh) 一种设备卡顿的处理方法、装置、设备和介质
CN106789209B (zh) 异常处理方法和装置
EP3754998A1 (en) Streaming media quality monitoring method and system
CN108874673B (zh) 应用程序的测试方法及装置
CN113296666A (zh) 主播曝光数据上报方法、装置、终端设备及存储介质
CN110209539B (zh) 一种测试方法、终端设备以及测试器
CN111143216A (zh) 质量报告的生成方法、装置、设备及计算机可读存储介质
CN112527539B (zh) 一种界面检测的方法以及相关装置
CN108183839B (zh) 一种基于第三方软件的实时网速显示方法及系统
CN113377602A (zh) 一种业务运行监测方法、装置、设备及存储介质
CN112764988A (zh) 一种数据分段采集方法及装置
CN111723320B (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
GR01 Patent grant
GR01 Patent grant