CN110213596B - 直播切换方法、装置、计算机设备和存储介质 - Google Patents

直播切换方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110213596B
CN110213596B CN201810262970.7A CN201810262970A CN110213596B CN 110213596 B CN110213596 B CN 110213596B CN 201810262970 A CN201810262970 A CN 201810262970A CN 110213596 B CN110213596 B CN 110213596B
Authority
CN
China
Prior art keywords
live
access server
data
live streaming
video frame
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
CN201810262970.7A
Other languages
English (en)
Other versions
CN110213596A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810262970.7A priority Critical patent/CN110213596B/zh
Publication of CN110213596A publication Critical patent/CN110213596A/zh
Application granted granted Critical
Publication of CN110213596B publication Critical patent/CN110213596B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种直播切换方法、装置、计算机可读存储介质和计算机设备,该方法包括:获取各个接入服务器在多个历史时间段对应的直播流数据,根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。本申请提供的方案可以提高直播切换准确率。

Description

直播切换方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种直播切换方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,观看各种网络直播视频逐渐成为人们工作、学习、社交以及休闲娱乐的一种新兴方式。然而,对于竞争激烈的直播平台来说,直播平台的低卡顿率视为直播平台的生命,通常观众会选择低卡顿率的直播平台作为自己的直播业务承载体。
然而,目前的传统方法是当正在进行直播的直播平台发生卡顿等现象时,正在进行直播的当前播放服务器按照配置顺序逐个从各个候选服务器中拉取直播流数据从而进行直播切换避免直播平台发生卡顿,但是并未能够有效地保证从下一个候选服务器拉取的直播流数据的质量优于当前直播平台的直播流数据的质量,因此导致直播切换准确率低。
发明内容
基于此,有必要针对上述技术问题,提供一种当从候选服务器中发现更佳的直播流质量时,主动进行直播切换从而提高直播切换准确率的直播切换方法、装置、计算机可读存储介质和计算机设备。
一种直播切换方法,该方法包括:
获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器;
根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;
根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;
根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;
将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
一种直播切换装置,该装置包括:
直播流数据获取模块,用于获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器;
直播状态数据获取模块,用于根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;
直播流质量计算模块,用于根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;
目标接入服务器选取模块,用于根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;
直播流数据拉取模块,用于将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行所述程序时实现以下步骤:
获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器;
根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;
根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;
根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;
将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器;
根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;
根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;
根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;
将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
上述直播切换方法、装置、计算机可读存储介质和计算机设备,获取各个接入服务器在多个历史时间段对应的直播流数据,其中直播流数据包括各个接入服务器对应的服务器标识,且接入服务器包括正在进行直播播放的当前播放接入器和候选接入服务器,再根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据。进一步地,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据计算得到各个接入服务器对应的直播流质量,根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量从而选取目标接入服务器。最终将目标接入服务器作为当前播放接入服务器,以使得播放终端主动从目标接入服务器拉取直播流数据。当从候选服务器中发现更佳的直播流质量时,主动进行直播切换,从当前播放接入服务器切换到目标接入服务器中拉取直播流数据,因此通过准确地主动切换到直播流质量最优的目标接入服务器上拉取直播流数据,从而能够有效地防止播放终端可能因为之前正在进行直播的接入服务器上的直播流质量变差导致直播出现卡顿等现象。
附图说明
图1为一个实施例中直播切换方法的应用环境图;
图2为一个实施例中直播切换方法的流程示意图;
图3为另一个实施例中直播切换方法的流程示意图;
图4为一个实施例中各个接入服务器对应的直播流质量计算的流程示意图;
图5为另一个实施例中各个接入服务器对应的直播流质量计算的流程示意图;
图6为又一个实施例中各个接入服务器对应的直播流质量计算的流程示意图;
图7为一个实施例中直播切换方法的示意图;
图8为一个实施例中各个接入服务器获取直播流数据的流程示意图;
图9为一个实施例中各个接入服务器获取直播流数据的示意图;
图10为另一个实施例中各个接入服务器获取直播流数据的示意图;
图11为一个实施例中直播切换装置的结构框图;
图12为另一个实施例中直播切换装置的结构框图;
图13为一个实施例中直播流质量计算模块的结构框图;
图14为另一个实施例中直播流质量计算模块的结构框图;
图15为再一个实施例中直播流质量计算模块的结构框图;
图16为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中直播切换方法的应用环境图。参照图1,该直播切换方法应用于直播切换系统。该直播切换系统包括上传终端110、接入服务器122、接入服务器124、接入服务器126、处理服务器130、流处理服务器132、拉流服务器140和播放终端150。其中,正在进行直播的播放终端150的直播数据是从拉流服务器140拉取得到的,其中拉流服务器140从流处理服务器132拉取经过转协议或者转编码处理后的直播数据,流处理服务器132与当前播放接入服务器连接,从当前播放接入服务器拉取原始直播数据。
具体地,处理服务器130获取各个接入服务器120在多个历史时间段对应的直播流数据,其中直播流数据包括各个接入服务器对应的服务器标识,且接入服务器包括正在进行直播播放的当前播放接入器和候选接入服务器,再根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据。进一步地,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据计算得到各个接入服务器对应的直播流质量,根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量从而选取目标接入服务器。最终将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。终端和服务器通过网络连接,以及服务器与服务器之间通过网络连接。终端具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。应当说明的是,服务器可以不需要这么多的服务器,有些服务器可以省略或者功能合二为一。
如图2所示,在一个实施例中,提供了一种直播切换方法。本实施例主要以该方法应用于上述图1中的处理服务器130来举例说明。参照图2,该直播切换方法具体包括如下步骤:
步骤202,获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器。
其中,这里的直播流数据是直播过程中与直播相关的数据,可以是直播音视频数据本身,也可以是根据直播音视频数据的直播状态统计计算得到的直播状态数据,如直播音视频帧数、直播音视频帧率等等。上传终端进行直播时需将直播音视频数据推送至推流服务器,可以将直播音视频数据使用传输协议进行封装得到的流数据推送至推流服务器,传输协议可以是但不限于实时流传输协议RTSP、实时消息传输协议RTMP、基于超文本传输协议HTTP的流媒体网络传输协议HLS等等。推流服务器将相同的直播音视频数据推送至各个接入服务器中,但是相同的直播音视频数据在各个接入服务器的直播状态是不同的,因此各个接入服务器存在对应的直播流数据,其中,直播状态决定了观看终端的直播质量。
为了区分不同接入服务器对应的直播流数据,因此直播流数据中包括但不限于各个接入服务器对应的服务器标识,所谓服务器标识是用于唯一标识接入服务器,而接入服务器可以是但不限于终端与服务器连接的服务器、中心机房等等。这里的接入服务器包括但不限于当前播放接入服务器和候选接入服务器,所谓当前播放接入服务器是正在进行直播播放的接入服务器,而候选接入服务器是除了当前播放接入服务器之外的接入服务器,是用于等待随时进行直播切换的接入服务器。其中,历史时间段是随着直播过程中形成的各个时间段,时间段对应的时间间隔的数量可预先根据自定义规则进行配置,以及时间段对应的时间间隔可以是相同的时间间隔,也可以是不同的时间间隔,或者是一定数量的时间段对应的时间间隔相同或者一定数量的时间段对应的时间间隔是不同的。
具体地,各个接入服务器可以直接将各个历史时间段的直播音视频原始数据作为直播流数据,上报至处理服务器,处理服务器根据直播音视频原始数据进行统计计算得到各个历史时间段的直播状态数据。各个接入服务器也可以根据各个历史时间段的直播音视频原始数据进行统计计算得到各个历史时间段的直播状态数据,再将直播状态数据作为直播流数据上报至各个接入服务器。
其中,各个接入服务器中包括正在进行直播播放的当前播放接入服务器和等待进行直播切换的除了当前播放接入服务器之外的候选接入服务器。
步骤204,根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据。
其中,直播视频帧状态数据是直播过程中根据视频帧参数计算得到的状态数据,这里的直播视频帧状态数据可以根据直播流数据得到,比如直播视频帧状态数据包括但不限于直播视频帧帧率、某一历史时间段内根据到达各个接入服务器的直播视频数目计算得到的直播视频帧状态数据时间差等等。同样地,直播音频帧状态数据是直播过程中根据音频帧参数计算得到的状态数据,而直播音频帧状态数据也可以根据直播流数据得到,例如直播音频帧状态数据包括但不限于某一历史时间段内根据到达各个接入服务器的直播音频数目计算得到的直播音频帧状态数据时间差等等。
步骤206,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量。
其中,这里的直播流质量是用于体现各个接入服务器上的直播流数据的优劣的其中一个指标,具体可根据直播流质量越高直播观看的效果越佳的原则,比如A接入服务器的直播流质量明显高于其他接入服务器的直播流质量,则说明A接入服务器中的直播观看效果优于其他接入服务器的直播观看效果。其中直播流质量的计算方式可以是但不限于可根据各个历史时间段对应的直播视频帧状态数据计算得到各个接入服务器对应的直播流质量、或可根据各个历史时间段对应的直播音频帧状态数据计算得到各个接入服务器对应的直播流质量、或根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和直播音频帧状态数据进行加权后,再计算得到各个接入服务器对应的直播流质量。
具体地,在获取到各个接入服务器在各个历史时间段内对应的直播视频帧帧率、和/或直播视频帧状态数据时间差和/或直播音频帧状态数据时间差等等后,进一步地可以是但不限于只根据各个接入服务器在各个历史时间段对应的直播视频帧帧率计算得到直播视频帧帧率的波动性来体现各个接入服务器对应的直播流质量。或者只根据各个接入服务器在各个历史时间段对应的直播音频帧状态数据时间差的连续性来体现各个接入服务器对应的直播流质量。或者只根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据时间差的幅度来体现各个接入服务器对应的直播流质量。或者同时根据各个接入服务器在各个历史时间段对应的直播音频帧状态数据和直播视频帧状态数据分别占据的权重分配比来计算得到各个接入服务器对应的直播流质量等等。
步骤208,根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器。
具体地,当前播放接入服务器是正在进行直播播放的接入服务器,然后再根据当前播放接入服务器对应的直播流质量和除了当前播放接入服务器之外的候选接入服务器对应的直播流质量选取目标接入服务器。在一个实施例中,选取目标接入服务器的原则具体可以是根据当前播放接入服务器的直播流质量从多个候选接入服务器中选取优于当前播放接入服务器的直播流质量的候选接入服务器,将选取出来的候选接入服务器作为目标接入服务器。若选取出的候选接入服务器有多个,则从多个候选接入服务器中选取直播流质量最高的候选接入服务器作为目标接入服务器。在另一个实施例中,选取目标接入服务器的原则可以是从多个候选接入服务器中选取直播流质量高于当前播放接入服务器的直播流质量且同时满足达到预设直播流质量阈值的候选接入服务器作为目标接入服务器。
例如,当前播放接入服务器A的直播流质量为90,候选接入服务器a的直播流质量为50,候选接入服务器b的直播流质量为100,候选接入服务器c的直播流质量为150,则从高于当前播放接入服务器A的直播流质量的候选接入服务器b和候选接入服务器c中选取直播流质量最高的候选接入服务器作为目标接入服务器,即候选接入服务器c。
步骤210,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
具体地,在选取出目标接入服务器后,为了当前正在进行直播的播放终端的直播观看效果达到最佳,需将选取出的目标接入服务器作为当前播放接入服务器,正在进行直播的播放终端主动切换到目标接入服务器去拉取直播流数据以保证直播观看效果达到最佳。只要处理服务器从多个候选接入服务器中选取出直播流质量最高的目标接入服务器后,就会将目标接入服务器作为当前播放接入服务器,正在进行直播的播放终端会主动从目标接入服务器中拉取直播流数据,避免正在进行直播的播放终端的直播发生卡顿或者出现其他影响直播观看效果等的问题。然而,若无法从多个候选接入服务器中选取出目标接入服务器,则说明正在进行直播的当前播放接入服务器的直播流质量最佳,则无需进行直播切换。
上述直播切换方法,获取各个接入服务器在多个历史时间段对应的直播流数据,其中直播流数据包括各个接入服务器对应的服务器标识,且接入服务器包括正在进行直播播放的当前播放接入器和候选接入服务器,再根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据。进一步地,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据计算得到各个接入服务器对应的直播流质量,根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量从而选取目标接入服务器。最终将目标接入服务器作为当前播放接入服务器,以使得播放终端主动从目标接入服务器拉取直播流数据。当从候选服务器中发现更佳的直播流质量时,主动进行直播切换,从当前播放接入服务器切换到目标接入服务器中拉取直播流数据,因此也能够准确地主动切换到直播流质量更佳的目标接入服务器上拉取直播流数据,从而有效地防止播放终端因为之前正在进行直播的接入服务器上的直播流质量可能变差导致直播出现卡顿等现象。
在一个实施例中,如图3所示,直播流数据还包括直播流标识,该接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器,在图2的基础上该直播切换方法还包括:
步骤302,获取当前直播流标识,根据当前直播流标识获取各个接入服务器在各个历史时间段对应的当前直播视频帧状态数据和/或当前直播音频帧状态数据,形成与当前直播流标识对应的直播流数据子集。
其中,这里的当前直播流标识是用来唯一标识正在进行直播的直播流数据,直播平台上的直播流数据除了包括各个接入服务器对应的服务器标识之外,还包括直播平台上不同主播上传的直播流数据,则可用直播流标识来标识同一直播平台上的不同主播进行直播的直播流数据。若直播流数据包括多个直播流标识时,则可依次将多个直播流标识作为当前直播流标识,或者从多个直播流标识中随机选取一个直播流标识作为当前直播流标识。
具体地,从直播平台中正在进行直播的直播流数据对应的直播流标识中获取其中一个直播流数据的直播流标识作为当前直播流标识或者依次将多个正在进行直播的直播流数据对应的直播流标识作为当前直播流标识,根据该当前直播流标识获取对应的各个接入服务器在各个的历史时间段对应的当前直播视频帧状态数据或者当前直播音频帧状态数据或者将两者都获取得到。进一步地,将获取到的当前直播视频帧状态数据和/或当前直播音频帧状态数据形成与当前直播流标识对应的直播流数据子集。其中,形成与当前直播流标识对应的直播流数据子集的形成方式将相同接入服务器标识在各个历史时间段对应的当前直播视频帧状态数据或者当前直播音频帧状态数据进行分类,形成后的直播流数据子集如表1所示,若当前直播流标识为Stream ID1,各个历史时间段为T1~T6,用IP1、IP2等表示各个接入服务器标识,用a1~a6表示获取到当前直播视频帧状态数据和/或当前直播音频帧状态数据,表1为:
表1
StreamID1 T1 T2 T3 T4 T5 T6
IP1 a1 a2 a3 a4 a5 a6
IP2 a1 a2 a3 a4 a5 a6
步骤304,将下一个直播流标识作为当前直播流标识,返回获取当前直播流标识的步骤,直到形成各个直播流标识对应的直播流数据子集。
其中,因为直播平台可能有多个主播同时进行直播,且一个主播的直播流数据可推送至不同的接入服务器中,则不同主播的直播流数据可能推送至同一个接入服务器中,因此同一个接入服务器中可能会有不同主播各自推送的直播流数据,则同一接入服务器中有多个直播流标识对应的直播流数据。进一步地,在形成当前直播流标识对应的直播流数据子集后,需形成各个直播流标识对应的直播流数据子集,具体地,各个接入服务器需从其余的直播流标识对应的直播流数据中再获取下一个直播流数据,将下一个直播流数据对应的直播流标识作为当前直播流标识或者依次将其余的直播流标识作为当前直播流标识,返回获取当前直播流标识,根据当前直播流标识获取各个接入服务器在各个历史时间段对应的当前直播视频帧状态数据和/或当前直播音频帧状态数据的步骤,直至形成各个直播流标识对应的直播流数据子集。例如,形成后的各个直播流标识对应的直播流数据子集如表2所示,若直播流标识为Stream ID1、Stream ID2,各个历史时间段为T1~T6,用IP1、IP2等表示各个接入服务器标识,用a1~a6表示获取到当前直播视频帧状态数据和/或当前直播音频帧状态数据,表2为:
表2
StreamID1 T1 T2 T3 T4 T5 T6
IP1 a1 a2 a3 a4 a5 a6
IP2 a1 a2 a3 a4 a5 a6
StreamID2 T1 T2 T3 T4 T5 T6
IP1 a1 a2 a3 a4 a5 a6
IP2 a1 a2 a3 a4 a5 a6
步骤306,根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量。
步骤308,根据直播流标识对应的当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取与直播流标识对应的目标接入服务器。
具体地,直播流数据子集是根据直播流标识和服务器标识形成的数据集合,然后在根据各个直播流数据子集中的直播视频帧状态数据和/或直播音频帧状态数据计算得到在不同主播在各个直播流状态下各个接入服务器对应的直播流质量,包括直播标识对应的正在进行直播播放的当前播放接入服务器对应的直播流质量和各个候选接入服务器对应的直播流质量。进一步地,从各个候选接入服务器对应的直播流质量中选取优于当前播放接入服务器对应的直播流质量的候选接入服务器作为目标接入服务器。若选取出多个候选服务器对应的直播流质量都优于当前播放接入服务器对应的直播流质量,则从选取出的多个候选服务器中选取最高的直播流质量对应的候选接入服务器作为目标接入服务器。
步骤310,根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
具体地,在选取出目标接入服务器后,因为当前的直播平台可能有多个主播同时进行直播,且发生直播切换之前的多个主播进行直播的当前播放接入服务器可能都是不同的,因此选取出与直播流标识对应的目标接入服务器可能有多个,也就是说不同主播对应的目标接入服务器可能是不同的。而为了各个主播的直播观看效果都达到最佳,需根据选取出与直播流标识对应的目标接入服务器得到与直播流标识对应的当前播放接入服务器,而直播流标识对应的播放终端主动从对应的目标接入服务器中拉取直播流数据。
如,直播流标识有直播流标识A和直播流标识B,发生直播切换之前直播流标识A和直播流标识B对应的当前播放接入服务器分别为接入服务器A和接入服务器B,选取出与直播流标识A对应的目标接入服务器为接入服务器a,而选取出与直播流标识B对应的目标接入服务器为接入服务器b,则将直播流标识A对应的播放终端主动从接入服务器A切换至接入服务器a中拉取直播流数据,同样地,直播流标识B对应的播放终端主动从接入服务器B切换至接入服务器b中拉取直播流数据。
在一个实施例中,如图4所示,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:
步骤402,获取各个接入服务器在各个历史时间段对应的视频帧率,视频帧率为接入服务器根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔计算得到。
其中,视频帧率是用于测量显示视频帧数的量度,这里的视频帧率可以通过单位时间内的到达各个接入服务器的直播视频帧的数量来表示。具体地,处理服务器获取各个接入服务器在各个历史时间段对应的直播视频帧数目以及各个历史时间段对应的时间间隔,处理服务器再根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔的比值计算得到各个接入服务器在各个历史时间段对应的视频帧率。或者各个接入服务器先根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔计算得到各个历史时间段对应的视频帧率,各个接入服务器再将各个历史时间段对应的视频帧率上报至处理服务器。其中,各个历史时间段对应的时间间隔可以为相同的时间间隔,也可以是不同的时间间隔或者根据自定义规则划分的各个历史时间段对应的时间间隔。如用fps来表示视频帧率,则视频帧率fps=各个历史时间段内到达的视频帧数/各个历史时间段对应的时间间隔。假设某一历史时间段内到达的视频帧数为100帧,该历史时间段对应的时间间隔为5s,则视频帧率fps=100/5=20帧/秒。
步骤404,当视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个接入服务器对应的直播流质量。
具体地,在获取各个接入服务器在各个历史时间段对应的视频帧率后,需对获取到的视频帧率的数目进行检测,若检测到视频帧率的数量满足预设数目时,需根据各个视频帧率计算各个相邻历史时间段对应的视频帧率的波动幅度。这里的波动幅度是各个相邻历史时间段对应的视频帧率波动的一个幅度值。具体可根据当前历史时间段对应的视频帧率与下一个历史时间段对应的视频帧率计算得到。进一步地,在计算得到各个相邻历史时间段对应的视频帧率的波动幅度之后,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个接入服务器对应的直播流质量,计算方法可以自定义。在一个实施例中,具体计算如公式1所示:
Figure BDA0001610687340000131
其中Qn为第n个接入服务器上的直播流质量,fpsi为第i个历史时间段对应的视频帧率,fpsi-fpsi+1是波动幅度,5是历史时间段的预设数目,应当说明5个历史时间段为举例说明。
在一个实施例中,如图5所示,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:
步骤502,获取各个历史时间段内的起始直播视频帧和终止直播视频帧。
步骤504,获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间。
具体地,各个接入服务器获取各个历史时间段内的起始直播视频帧和终止直播视频帧,所谓起始直播视频帧是在各个历史时间段内最开始到达各个接入服务器的直播视频帧,而终止直播视频帧是在各个历史时间段内最后到达各个接入服务器的直播视频帧。其中,因为各个历史时间段的起始时间可能并不是各个历史时间段内的起始直播视频帧到达的时间,同样地,各个历史时间段的终止时间可能并不是终止直播视频帧到达的时间。因此则需在获取到各个历史时间段内的起始直播视频帧和终止直播视频帧后,进一步地获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间。其中,视频帧起始时间是起始直播视频帧在各个历史时间段内到达各个接入服务器的时间点,同样地,视频帧终止时间是终止直播视频帧在各个历史时间段内到达各个接入服务器的时间点。
步骤506,根据视频帧起始时间与视频帧终止时间计算得到各个历史时间段对应的直播视频帧状态数据时间差。
步骤508,根据各个历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
具体地,在获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间后,根据视频帧起始时间与视频帧终止时间计算得到各个历史时间段对应的直播视频帧状态数据时间差,再根据各个历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量,计算方法可自定义。在一个实施例中,根据各个历史时间段的时间间隔与对应的直播视频帧状态数据时间差具体计算得到各个接入服务器对应的直播流质量如公式2所示:
Figure BDA0001610687340000151
其中,Qv为直播流质量,vtsi为第i个历史时间段内的直播视频帧状态数据时间差,ltsi为第i个历史时间段对应的时间间隔,5为各个历史时间段的数量,应当说明5个历史时间段为举例说明。
在一个实施例中,如图6所示,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:
步骤602,获取各个历史时间段内的起始直播音频帧和终止直播音频帧。
步骤604,获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间。
具体地,各个接入服务器获取各个历史时间段内的起始直播音频帧和终止直播音频帧,所谓起始直播音频帧是在各个历史时间段内最开始到达各个接入服务器的直播音频帧,而终止直播音频帧是在各个历史时间段内最后到达各个接入服务器的直播音频帧。其中,各个历史时间段的起始时间可能并不是各个历史时间段内的起始直播音频帧到达的时间,同样地,各个历史时间段的终止时间可能并不是终止直播音频帧到达的时间。因此则需在获取到各个历史时间段内的起始直播音频帧和终止直播音频帧后,进一步地获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间。其中,音频帧起始时间是起始直播音频帧在各个历史时间段内到达各个接入服务器的时间点,同样地,音频帧终止时间是终止直播音频帧在各个历史时间段内到达各个接入服务器的时间点。
步骤606,根据音频帧起始时间与音频帧终止时间计算得到各个历史时间段对应的直播音频帧状态数据时间差。
步骤608,根据各个历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
具体地,在获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间后,根据音频帧起始时间与音频帧终止时间计算得到各个历史时间段对应的直播音频帧状态数据时间差,再根据各个历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量,计算方法可以自定义。在一个实施例中,根据各个历史时间段的时间间隔与对应的直播音频帧状态数据时间差具体计算得到各个接入服务器对应的直播流质量如公式3所示:
Figure BDA0001610687340000161
其中,QA为直播流质量,atsi为第i个历史时间段内的直播音频帧状态数据时间差,ltsi为第i个历史时间段对应的时间间隔,5为各个历史时间段的数量,应当说明5个历史时间段为举例说明。
在一个实施例中,目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据,包括:向拉流服务器下发切换指令,以使得拉流服务器在保持下行连接的状态下从目标接入服务器拉取直播流数据,播放终端从拉流服务器拉取直播流数据。
本实施例中,为了防止正在进行直播的播放终端可能因为当前的播放接入服务器的直播流质量变差导致直播出现卡顿,在从多个候选接入服务器中选取出目标接入服务器后,向正在进行直播的播放终端对应的拉流服务器主动下发切换指令,所谓切换指令用于指示拉流服务器进行直播切换的指令。其中,切换指令中包括但不限于目标接入服务器的连接地址格式,例如连接地址格式为:协议名:\\域名(或者IP):端口\挂载点\流标识.flv。
进一步地,拉流服务器接收到目标接入服务器下发的切换指令后,拉流服务器需继续保持下行连接然后再从目标接入服务器中拉取直播流数据。然后拉流服务器成功拉取直播流数据后,播放终端再从拉流服务器中拉取直播流数据继续进行直播。这样主动进行直播切换,不需等到直播发生卡顿后再进行直播切换,能够有效地保证播放终端的观众观看直播的质量。
在一个实施例中,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据之前,包括:检测当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则进入将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据步骤。
本实施例中,在将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据之前,为了避免频繁的直播切换造成直播系统不稳定的情况,需进一步地检测当前播放接入服务器是否在预设时间段内已经发生过直播切换,若当前播放接入服务器在预设时间段内未发生过直播切换,则可进入将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据步骤,反之,则暂时停止进行直播切换。如图7所示,图7示出一个实施例中直播切换方法的示意图。若接入服务器A为当前播放接入服务器,正在进行直播的播放终端通过拉流服务器从当前播放接入服务器中拉取直播流数据进行直播,即从接入服务器A中拉取直播流数据进行直播。然后再从多个候选接入服务器中选取接入服务器B为目标接入服务器,为了防止频繁地进行直播切换造成直播系统不稳定,处理服务器需检测接入服务器A在预设时间段内是否已经发生过直播切换,当只有检测到未发生直播切换时,处理服务器才能主动向流处理服务器发生切换指令,流处理服务器再主动将直播从接入服务器A切换至接入服务器B,最终播放终端对应的拉流服务器通过流处理服务器成功切换至接入服务器B中拉取直播流数据以继续进行直播。
在一个实施例中,如图8所示,各个接入服务器获取直播流数据的步骤包括:
步骤802,各个接入服务器接收第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据。
其中,各个接入服务器获取直播流数据可通过第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据。具体地,如图9所示,图9示出一个实施例中各个接入服务器获取直播流数据的示意图。若第一直播平台的主播将原始直播流数据推送至该直播平台对应的推流服务器上,该直播平台对应的推流服务器将原始直播流数据进行复制得到多份相同的直播流数据,再将多份相同的直播流数据包括原始直播流数据转发至各个接入服务器,此时各个接入服务器将获取到相同的直播流数据,最终播放终端对应的拉流服务器可从接入服务器中拉取直播流数据从而进行直播。其中,例如,若接入服务器有5个,则该直播平台对应的推流服务器可将复制得到的相同的直播流数据全推给5个接入服务器或者只推给其中几个接入服务器,其余接入服务器上的直播流数据可通过步骤804或者步骤806的获取方式获取得到。
步骤804,各个接入服务器接收从第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的。
其中,各个接入服务器上的直播流数据除了步骤802的获取方式获取得到之外,还可通过第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,而拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的。
具体地,如图10所示,图10示出一个实施例中各个接入服务器获取直播流数据的示意图。第一直播平台的主播将原始直播流数据推送至第一直播平台对应的推流服务器后,推流服务器将原始直播流数据进行复制得到多份相同的直播流数据后,推流服务器再将多份相同的直播流数据转发至第二直播平台。此时,第二直播平台对应的拉流服务器可将直播流数据拉取得到。进一步地,第二直播平台对应的拉流服务器将拉取得到的直播流数据发送至各个接入服务器,然后播放终端对应的拉流服务器可从接入服务器中拉取直播流数据从而进行直播。
应当说明的是,第二直播平台对应的拉流服务器将拉取得到的直播流数据都分别发送至各个接入服务器或者只发送至其中几个接入服务器,其余的接入服务器上的直播流数据可通过步骤802和步骤806的获取方式获取得到。
步骤806,各个接入服务器接收从第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
其中,各个接入服务器上的直播流数据除了步骤802和步骤804的获取方式获取得到之外,还可通过第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
具体地,如图10所示,第一直播平台的主播除了将原始直播流数据直接推送至第一直播平台对应的推流服务器之外,还可将原始直播流数据推送至第二直播平台对应的推流服务器上,此时第二直播平台对应的推流服务器将原始直播流数据进行复制得到的多份相同直播流数据。然后第二直播平台对应的推流服务器再将复制得到的多份相同直播流数据分别发送至各个接入服务器,最终播放终端对应的拉流服务器可从接入服务器中拉取直播流数据从而进行直播。
应当说明的是,第二直播平台对应的推流服务器可将复制得到的多份相同直播流数据都分别发送至各个接入服务器或者只发送至其中几个接入服务器,其余的接入服务器上的直播流数据可通过步骤802和步骤804的获取方式获取得到。
图8为一个实施例中各个接入服务器获取直播流数据的步骤的流程示意图。应该理解的是,虽然图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个具体的实施例中,提供了一种直播切换方法。具体包括如下步骤:
步骤902,各个接入服务器可通过以下三种方式获取直播流数据,应当说明的是,可直接只通过以下三种方式的其中一种获取至少两路的直播流数据,或者通过以下三种方式中的其中两种方式获取至少两路的直播流数据,或者同时通过三种方式获取到至少两路的直播流数据。
步骤902a,第一直播平台上的主播将原始直播流数据推送至第一直播平台对应的推流服务器,该第一直播平台对应的推流服务器对该原始直播流数据进行复制得到多份相同的直播流数据,然后再将直播流数据分别发送至接入服务器。
步骤902b,第一直播平台对应的接入服务器将直播流数据转发至第二直播平台,第二直播平台对应的拉流服务器拉取直播流数据,再将拉取得到的直播流数据发送至接入服务器。
步骤902c,第一直播平台上的主播除了将原始直播流数据直接推送至第一直播平台对应的推流服务器之外,还将原始直播流数据推送至第二直播平台对应的推流服务器,然后第二直播平台对应的推流服务器对该原始直播流数据进行复制得到多份相同的直播流数据,然后再将直播流数据分别发送至接入服务器。
步骤904,获取各个接入服务器在多个历史时间段对应的直播流数据,该直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器,若直播流数据还包括直播流标识,接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器。
步骤906,若直播流数据还包括直播流标识,接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器,则获取当前直播流标识,根据当前直播流标识获取各个接入服务器在各个历史时间段对应的当前直播视频帧状态数据和/或当前直播音频帧状态数据,形成与当前直播流标识对应的直播流数据子集。
步骤908,将下一个直播流标识作为当前直播流标识,返回获取当前直播流标识的步骤,直到形成各个直播流标识对应的直播流数据子集。
步骤910,根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量。
步骤912,根据直播流标识对应的当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取与直播流标识对应的目标接入服务器。
步骤914,根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
步骤916,根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据。
步骤918,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量。
步骤918a,获取各个接入服务器在各个历史时间段对应的视频帧率,视频帧率为接入服务器根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔计算得到,当视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个接入服务器对应的直播流质量。
步骤918b,获取各个历史时间段内的起始直播视频帧和终止直播视频帧,获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间,根据视频帧起始时间与视频帧终止时间计算得到各个历史时间段对应的直播视频帧状态数据时间差,根据各个历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
步骤918c,获取各个历史时间段内的起始直播音频帧和终止直播音频帧,获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间,根据音频帧起始时间与音频帧终止时间计算得到各个历史时间段对应的直播音频帧状态数据时间差,根据各个历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
步骤920,根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器。
步骤922,检测当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则向拉流服务器下发切换指令,以使得拉流服务器在保持下行连接的状态下从目标接入服务器拉取直播流数据,播放终端从拉流服务器拉取直播流数据。
应该理解的是,上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图11所示,在一个实施例中,提供了一种直播切换装置1100,该装置包括:
直播流数据获取模块1102,用于获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器。
直播状态数据获取模块1104,用于根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据。
直播流质量计算模块1106,用于根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量。
目标接入服务器选取模块1108,用于根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器。
直播流数据拉取模块1110,用于将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
如图12所示,在一个实施例中,该直播切换装置1100还包括直播流数据子集获取模块1112,其中:
直播流数据子集获取模块1112,用于获取当前直播流标识,根据当前直播流标识获取各个接入服务器在各个历史时间段对应的当前直播视频帧状态数据和/或当前直播音频帧状态数据,形成与当前直播流标识对应的直播流数据子集。
直播流数据子集获取模块1112还用于将下一个直播流标识作为当前直播流标识,返回获取当前直播流标识的步骤,直到形成各个直播流标识对应的直播流数据子集。
直播流质量计算模块1106还用于根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量。
目标接入服务器选取模块1108还用于根据直播流标识对应的当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取与直播流标识对应的目标接入服务器。
直播流数据拉取模块1110还用于根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
如图13所示,在一个实施例中,直播流质量计算模块1106包括:视频帧率获取单元1106a和波动幅度计算单元1106b,其中:
视频帧率获取单元1106a,用于获取各个接入服务器在各个历史时间段对应的视频帧率,视频帧率为接入服务器根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔计算得到。
波动幅度计算单元1106b,用于当视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个接入服务器对应的直播流质量。
如图14所示,在一个实施例中,直播流质量计算模块1106包括:直播视频帧获取单元1302、直播视频帧时间获取单元1304、直播视频帧状态数据时间差计算单元1306和直播流质量计算单元1308,其中:
直播视频帧获取单元1302,用于获取各个历史时间段内的起始直播视频帧和终止直播视频帧。
直播视频帧时间获取单元1304,用于获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间。
直播视频帧状态数据时间差计算单元1306,用于根据视频帧起始时间与视频帧终止时间计算得到各个历史时间段对应的直播视频帧状态数据时间差。
直播流质量计算单元1308,用于根据各个历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
如图15所示,在一个实施例中,直播流质量计算模块1106包括:直播音频帧获取单元1402、直播音频帧时间获取单元1404、直播音频帧状态数据时间差计算单元1406和直播流质量获取单元1408,其中:
直播音频帧获取单元1402,用于获取各个历史时间段内的起始直播音频帧和终止直播音频帧。
直播音频帧时间获取单元1404,用于获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间。
直播音频帧状态数据时间差计算单元1406,用于根据音频帧起始时间与音频帧终止时间计算得到各个历史时间段对应的直播音频帧状态数据时间差。
直播流质量获取单元1408,用于根据各个历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
在一个实施例中,直播流数据拉取模块1110还用于向拉流服务器下发切换指令,以使得拉流服务器在保持下行连接的状态下从目标接入服务器拉取直播流数据,播放终端从拉流服务器拉取直播流数据。
在一个实施例中,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据之前,包括:检测当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则进入将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据步骤。
在一个实施例中,该直播切换装置1100还用于各个接入服务器接收第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据,和/或各个接入服务器接收从第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的,和/或各个接入服务器接收从第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的处理服务器130。如图16所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现直播切换方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行直播切换方法。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的直播切换装置可以实现为一种计算机程序的形式,计算机程序可在如图16所示的计算机设备上运行。计算机设备的存储器中可存储组成该直播切换装置的各个程序模块,比如,图11所示的直播流数据获取模块、直播状态数据获取模块、直播流质量计算模块、目标接入服务器选取模块和直播流数据拉取模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的直播切换方法中的步骤。
例如,图16所示的计算机设备可以通过如图11所示的直播切换装置中的直播流数据获取模块执行获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器的步骤。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器;根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
在一个实施例中,直播流数据还包括直播流标识,该接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器,所述计算机程序还使得所述处理器执行如下步骤:获取当前直播流标识,根据当前直播流标识获取各个接入服务器在各个历史时间段对应的当前直播视频帧状态数据和/或当前直播音频帧状态数据,形成与当前直播流标识对应的直播流数据子集;将下一个直播流标识作为当前直播流标识,返回获取当前直播流标识的步骤,直到形成各个直播流标识对应的直播流数据子集;根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量;根据直播流标识对应的当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取与直播流标识对应的目标接入服务器;根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
在一个实施例中,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:获取各个接入服务器在各个历史时间段对应的视频帧率,视频帧率为接入服务器根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔计算得到;当视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个接入服务器对应的直播流质量。
在一个实施例中,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:获取各个历史时间段内的起始直播视频帧和终止直播视频帧;获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间;根据视频帧起始时间与视频帧终止时间计算得到各个历史时间段对应的直播视频帧状态数据时间差;根据各个历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
在一个实施例中,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:获取各个历史时间段内的起始直播音频帧和终止直播音频帧;获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间;根据音频帧起始时间与音频帧终止时间计算得到各个历史时间段对应的直播音频帧状态数据时间差;根据各个历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
在一个实施例中,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据,包括:向拉流服务器下发切换指令,以使得拉流服务器在保持下行连接的状态下从目标接入服务器拉取直播流数据,播放终端从拉流服务器拉取直播流数据。
在一个实施例中,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据之前,包括:检测当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则进入将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据步骤。
在一个实施例中,各个接入服务器获取直播流数据的步骤包括:各个接入服务器接收第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据;和/或各个接入服务器接收从第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的;和/或各个接入服务器接收从第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:获取各个接入服务器在多个历史时间段对应的直播流数据,直播流数据包括各个接入服务器对应的服务器标识,接入服务器包括当前播放接入服务器和候选接入服务器;根据直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据;根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量;根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器;将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据。
在一个实施例中,直播流数据还包括直播流标识,该接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器,所述计算机程序还使得所述处理器执行如下步骤:获取当前直播流标识,根据当前直播流标识获取各个接入服务器在各个历史时间段对应的当前直播视频帧状态数据和/或当前直播音频帧状态数据,形成与当前直播流标识对应的直播流数据子集;将下一个直播流标识作为当前直播流标识,返回获取当前直播流标识的步骤,直到形成各个直播流标识对应的直播流数据子集;根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量;根据直播流标识对应的当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取与直播流标识对应的目标接入服务器;根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
在一个实施例中,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:获取各个接入服务器在各个历史时间段对应的视频帧率,视频帧率为接入服务器根据各个历史时间段内的直播视频帧数目与对应的各个历史时间段对应的时间间隔计算得到;当视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个接入服务器对应的直播流质量。
在一个实施例中,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:获取各个历史时间段内的起始直播视频帧和终止直播视频帧;获取起始直播视频帧对应的视频帧起始时间和终止直播视频帧对应的视频帧终止时间;根据视频帧起始时间与视频帧终止时间计算得到各个历史时间段对应的直播视频帧状态数据时间差;根据各个历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
在一个实施例中,根据各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:获取各个历史时间段内的起始直播音频帧和终止直播音频帧;获取起始直播音频帧对应的音频帧起始时间和终止直播音频帧对应的音频帧终止时间;根据音频帧起始时间与音频帧终止时间计算得到各个历史时间段对应的直播音频帧状态数据时间差;根据各个历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
在一个实施例中,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据,包括:向拉流服务器下发切换指令,以使得拉流服务器在保持下行连接的状态下从目标接入服务器拉取直播流数据,播放终端从拉流服务器拉取直播流数据。
在一个实施例中,将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据之前,包括:检测当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则进入将目标接入服务器作为当前播放接入服务器,以使得播放终端从目标接入服务器拉取直播流数据步骤。
在一个实施例中,各个接入服务器获取直播流数据的步骤包括:各个接入服务器接收第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据;和/或各个接入服务器接收从第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的;和/或各个接入服务器接收从第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (18)

1.一种直播切换方法,其特征在于,包括:
获取各个接入服务器在多个历史时间段对应的直播流数据,所述直播流数据包括直播流标识和各个接入服务器对应的服务器标识,所述接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器;
根据所述直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,包括:根据所述直播流数据得到各个直播流标识对应的直播流数据子集,所述直播流数据子集包括各个接入服务器在各个历史时间段且同一直播流标识对应的直播视频帧状态数据和/或直播音频帧状态数据;
根据所述各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量;
根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器,包括:根据同一直播流标识对应的当前播放接入服务器的直播流质量和候选接入服务器的直播流质量,选取对应的目标接入服务器,得到各个直播流标识对应的目标接入服务器;
将所述目标接入服务器作为当前播放接入服务器,以使得播放终端从所述目标接入服务器拉取直播流数据,包括:根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
2.根据权利要求1所述的方法,其特征在于,根据所述各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:
获取各个所述接入服务器在各个历史时间段对应的视频帧率,所述视频帧率为所述接入服务器根据各个所述历史时间段内的直播视频帧数目与对应的各个所述历史时间段对应的时间间隔计算得到;
当所述视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个所述接入服务器对应的直播流质量。
3.根据权利要求1所述的方法,其特征在于,根据所述各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:
获取各个所述历史时间段内的起始直播视频帧和终止直播视频帧;
获取所述起始直播视频帧对应的视频帧起始时间和所述终止直播视频帧对应的视频帧终止时间;
根据所述视频帧起始时间与所述视频帧终止时间计算得到各个所述历史时间段对应的直播视频帧状态数据时间差;
根据各个所述历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
4.根据权利要求1所述的方法,其特征在于,根据所述各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:
获取各个所述历史时间段内的起始直播音频帧和终止直播音频帧;
获取所述起始直播音频帧对应的音频帧起始时间和所述终止直播音频帧对应的音频帧终止时间;
根据所述音频帧起始时间与所述音频帧终止时间计算得到各个所述历史时间段对应的直播音频帧状态数据时间差;
根据各个所述历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
5.根据权利要求1所述的方法,其特征在于,将所述目标接入服务器作为当前播放接入服务器,以使得播放终端从所述目标接入服务器拉取直播流数据,包括:
向拉流服务器下发切换指令,以使得所述拉流服务器在保持下行连接的状态下从所述目标接入服务器拉取直播流数据,所述播放终端从所述拉流服务器拉取所述直播流数据。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标接入服务器作为当前播放接入服务器,以使得播放终端从所述目标接入服务器拉取直播流数据之前,包括:
检测所述当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则进入所述将所述目标接入服务器作为当前播放接入服务器,以使得播放终端从所述目标接入服务器拉取直播流数据步骤。
7.根据权利要求1所述的方法,其特征在于,所述各个接入服务器获取直播流数据的步骤包括:
所述各个接入服务器接收第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据;和/或
所述各个接入服务器接收从第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,所述拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的;和/或
所述各个接入服务器接收从第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
8.根据权利要求1至7任意一项所述的方法,其特征在于,所述根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器,包括:
从多个候选接入服务器中,选取直播流质量高于当前播放接入服务器的直播流质量、且直播流质量达到预设直播流质量阈值的候选接入服务器作为目标接入服务器。
9.一种直播切换装置,其特征在于,所述装置包括:
直播流数据获取模块,用于获取各个接入服务器在多个历史时间段对应的直播流数据,所述直播流数据包括直播流标识和各个接入服务器对应的服务器标识,所述接入服务器包括各个直播流标识对应的当前播放接入服务器和候选接入服务器;
直播状态数据获取模块,用于根据所述直播流数据获取各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,包括:根据所述直播流数据得到各个直播流标识对应的直播流数据子集,所述直播流数据子集包括各个接入服务器在各个历史时间段且同一直播流标识对应的直播视频帧状态数据和/或直播音频帧状态数据;
直播流质量计算模块,用于根据所述各个接入服务器在各个历史时间段对应的直播视频帧状态数据和/或直播音频帧状态数据,计算得到各个接入服务器对应的直播流质量,包括:根据各个直播流数据子集,计算得到在各个直播流状态下,各个接入服务器对应的直播流质量;
目标接入服务器选取模块,用于根据当前播放接入服务器对应的直播流质量和候选接入服务器对应的直播流质量,选取目标接入服务器,包括:根据同一直播流标识对应的当前播放接入服务器的直播流质量和候选接入服务器的直播流质量,选取对应的目标接入服务器,得到各个直播流标识对应的目标接入服务器;
直播流数据拉取模块,用于将所述目标接入服务器作为当前播放接入服务器,以使得播放终端从所述目标接入服务器拉取直播流数据,包括:根据直播流标识对应的目标接入服务器,得到与直播流标识对应的当前播放接入服务器,以使得直播流标识对应的播放终端从对应的目标接入服务器拉取直播流数据。
10.根据权利要求9所述的装置,其特征在于,所述直播流质量计算模块包括:
视频帧率获取单元,用于获取各个所述接入服务器在各个历史时间段对应的视频帧率,所述视频帧率为所述接入服务器根据各个所述历史时间段内的直播视频帧数目与对应的各个所述历史时间段对应的时间间隔计算得到;
波动幅度计算单元,用于当所述视频帧率的数量满足预设数目时,计算各个相邻历史时间段对应的视频帧率的波动幅度,根据各个相邻历史时间段对应的视频帧率的波动幅度计算得到各个所述接入服务器对应的直播流质量。
11.根据权利要求9所述的装置,其特征在于,所述直播流质量计算模块包括:
直播视频帧获取单元,用于获取各个所述历史时间段内的起始直播视频帧和终止直播视频帧;
直播视频帧时间获取单元,用于获取所述起始直播视频帧对应的视频帧起始时间和所述终止直播视频帧对应的视频帧终止时间;
直播视频帧状态数据时间差计算单元,用于根据所述视频帧起始时间与所述视频帧终止时间计算得到各个所述历史时间段对应的直播视频帧状态数据时间差;
直播流质量计算单元,用于根据各个所述历史时间段对应的时间间隔与对应的直播视频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
12.根据权利要求9所述的装置,其特征在于,所述直播流质量计算模块包括:
直播音频帧获取单元,用于获取各个所述历史时间段内的起始直播音频帧和终止直播音频帧;
直播音频帧时间获取单元,用于获取所述起始直播音频帧对应的音频帧起始时间和所述终止直播音频帧对应的音频帧终止时间;
直播音频帧状态数据时间差计算单元,用于根据所述音频帧起始时间与所述音频帧终止时间计算得到各个所述历史时间段对应的直播音频帧状态数据时间差;
直播流质量获取单元,用于根据各个所述历史时间段对应的时间间隔与对应的直播音频帧状态数据时间差计算得到各个接入服务器对应的直播流质量。
13.根据权利要求9所述的装置,其特征在于,所述直播流数据拉取模块还用于向拉流服务器下发切换指令,以使得所述拉流服务器在保持下行连接的状态下从所述目标接入服务器拉取直播流数据,所述播放终端从所述拉流服务器拉取所述直播流数据。
14.根据权利要求9所述的装置,其特征在于,所述直播流数据拉取模块还用于检测所述当前播放接入服务器是否在预设时间段内发生过直播切换,若否,则进入所述将所述目标接入服务器作为当前播放接入服务器,以使得播放终端从所述目标接入服务器拉取直播流数据步骤。
15.根据权利要求9所述的装置,其特征在于,所述各个接入服务器在多个历史时间段对应的直播流数据是所述各个接入服务器接收第一直播平台对应的推流服务器发送的通过将原始直播流数据进行复制得到的相同的直播流数据;和/或
所述各个接入服务器在多个历史时间段对应的直播流数据是所述各个接入服务器接收从第二直播平台对应的拉流服务器发送的通过将拉取得到的直播流数据进行复制得到的相同的直播流数据,所述拉取得到的直播流数据是从第一直播平台对应的接入服务器转发至第二直播平台得到的;和/或
所述各个接入服务器在多个历史时间段对应的直播流数据是所述各个接入服务器接收从第二直播平台对应的推流服务器发送的通过将第一直播平台对应的原始直播流数据进行复制得到的相同的直播流数据。
16.根据权利要求9至15任一项所述的装置,其特征在于,所述目标接入服务器选取模块还用于从多个候选接入服务器中,选取直播流质量高于当前播放接入服务器的直播流质量、且直播流质量达到预设直播流质量阈值的候选接入服务器作为目标接入服务器。
17.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
CN201810262970.7A 2018-03-28 2018-03-28 直播切换方法、装置、计算机设备和存储介质 Active CN110213596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810262970.7A CN110213596B (zh) 2018-03-28 2018-03-28 直播切换方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810262970.7A CN110213596B (zh) 2018-03-28 2018-03-28 直播切换方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110213596A CN110213596A (zh) 2019-09-06
CN110213596B true CN110213596B (zh) 2021-08-24

Family

ID=67778797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810262970.7A Active CN110213596B (zh) 2018-03-28 2018-03-28 直播切换方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110213596B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414208B (zh) * 2020-03-13 2023-08-01 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备
CN111464759B (zh) * 2020-03-26 2022-03-18 广州虎牙科技有限公司 一种直播导播方法、装置、存储介质及设备
CN114845139B (zh) * 2022-04-27 2024-02-13 抖动科技(深圳)有限公司 多层次混合分发方法、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014041353A3 (en) * 2012-09-13 2014-05-22 Tupac Martir Media content distribution
CN105657579A (zh) * 2015-10-29 2016-06-08 乐视致新电子科技(天津)有限公司 直播音频切换方法、流媒体服务器及客户端
CN106921866A (zh) * 2017-05-03 2017-07-04 广州华多网络科技有限公司 辅助直播的多视频导播方法和设备
CN107249133A (zh) * 2017-02-24 2017-10-13 北京潘达互娱科技有限公司 直播流数据处理方法及装置
CN107734362A (zh) * 2017-10-11 2018-02-23 咪咕视讯科技有限公司 一种视频源的确定方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749379B2 (en) * 2013-10-31 2017-08-29 Electronics And Telecommunications Research Institute Apparatus and method for receiving video service in hybrid network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014041353A3 (en) * 2012-09-13 2014-05-22 Tupac Martir Media content distribution
CN105657579A (zh) * 2015-10-29 2016-06-08 乐视致新电子科技(天津)有限公司 直播音频切换方法、流媒体服务器及客户端
CN107249133A (zh) * 2017-02-24 2017-10-13 北京潘达互娱科技有限公司 直播流数据处理方法及装置
CN106921866A (zh) * 2017-05-03 2017-07-04 广州华多网络科技有限公司 辅助直播的多视频导播方法和设备
CN107734362A (zh) * 2017-10-11 2018-02-23 咪咕视讯科技有限公司 一种视频源的确定方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN110213596A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
US11240556B2 (en) Automatic content recognition with local matching
US11778258B2 (en) Establishing a streaming presentation of an event
KR102083996B1 (ko) 미디어 콘텐츠 매칭 및 인덱싱
CN110213596B (zh) 直播切换方法、装置、计算机设备和存储介质
US11838563B2 (en) Switching between transmitting a preauthored video frame and a composited video frame
KR20210022134A (ko) 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
US11265359B2 (en) Managing concurrent streaming of media streams
US20190306265A1 (en) Group enhanced content delivery
US9602869B2 (en) Method and apparatus for fast channel change
US20200389680A1 (en) Content-Modification System with System Resource Request Feature
US11381654B2 (en) Streaming content based on skip histories
US11336949B2 (en) Content-modification system with testing and reporting feature
US11386696B2 (en) Content-modification system with fingerprint data mismatch and responsive action feature
CN108259815B (zh) 视频关键帧转发方法、装置和视频直播系统
CN112866750B (zh) 视频数据处理方法、视频播放方法及相关设备
US11290513B1 (en) Distributed adaptive bitrate (ABR) asset delivery
US10432986B2 (en) Recall and triggering system for control of on-air content at remote locations
AU2017383098A1 (en) Content streaming via a communications network
US11800170B2 (en) Content-modification system with feature for prioritizing channels used in channel identification
US20230283841A1 (en) Content-modification system with user experience analysis feature
US20220256252A1 (en) Playback of media content during dual mode trick play operations
CN114598897A (zh) 直播调度方法、设备和可读介质
CN116389799A (zh) 音视频码流的转码处理方法、装置、电子设备及存储介质
CN111526376A (zh) 拉流调度的方法、拉流的方法及装置
CN110896504A (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