CN111212294B - 直播间的状态更新方法、装置及可读存储介质 - Google Patents
直播间的状态更新方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN111212294B CN111212294B CN201811399577.9A CN201811399577A CN111212294B CN 111212294 B CN111212294 B CN 111212294B CN 201811399577 A CN201811399577 A CN 201811399577A CN 111212294 B CN111212294 B CN 111212294B
- Authority
- CN
- China
- Prior art keywords
- terminal
- live broadcast
- state
- time
- anchor
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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/26291—Content 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 for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
Abstract
本申请公开了一种直播间的状态更新方法、装置及可读存储介质,涉及直播技术领域。该方法包括:确定与直播间对应的状态机;确定第一终端;当时钟时刻达到所述第一终端的上播时刻时,通过状态机将第一终端的直播状态更新为上播状态。通过后台服务器中存储的状态机确定时钟时刻是否达到第一终端的上播时刻,并当达到第一终端的上播时刻时向第一终端发送第一上播请求,也即由命令驱动上播修改为由状态机驱动上播,直播状态的变更无需依赖各个主播终端中的时钟时刻,而是统一由后台服务器中的时钟时刻进行确定,并在状态机中更新直播状态,避免了各个主播终端中的时钟时刻不同步而导致的后台服务器中接收到的请求次序出现混乱。
Description
技术领域
本申请实施例涉及直播技术领域,特别涉及一种直播间的状态更新方法、装置及可读存储介质。
背景技术
网络直播是一种利用通信网络和多媒体通信技术,在网络直播平台对多种内容进行直播的多媒体形式。网络直播中包括有公共直播间的直播形式,即多个主播在公共直播间进行直播,该公共直播间可以分为多个直播时间段,每个时间段由一个主播在该公共直播间中进行直播,如:20:00开始,主播A发起在该公共直播间的上播,21:00主播A发起下播,且主播B发起在该公共直播间的上播,22:15主播B发起下播,由主播C发起在该公共直播间的上播,也即,一个时间段内由一个主播在该公共直播间中进行直播。
上述公共直播间的直播形式中,由主播终端和后台服务器完成直播,且主播的直播状态是通过主播终端的命令进行更新的,如:主播A正在进行直播,且主播A在后台服务器中设定有下播时刻,当主播A的主播终端上的时刻达到下播时刻时,主播A的主播终端向后台服务器发送下播请求,而主播B的主播终端从后台服务器获取了主播A的下播时刻,并当主播B的主播终端上的时刻达到主播A的下播时刻时,主播B的主播终端向后台服务器发送上播请求以进行主播B的直播。
然而,由于上述第二种直播形式中,是通过主播终端命令驱动的方式改变主播的直播状态的,而主播终端是根据主播终端上的时钟时刻发送请求的,当上述主播A的主播终端与主播B的主播终端上的时钟时刻不同步时,易导致主播B的上播请求先发送至后台服务器,而主播A的下播请求后发送至后台服务器的情况,则后台服务器中无法正确对请求进行处理,也无法正确修改主播A和主播B的直播状态。
发明内容
本申请实施例提供了一种方法、装置及可读存储介质,可以解决的问题。所述技术方案如下:
一方面,提供了一种直播间的状态更新方法,所述方法包括:
确定与所述直播间对应的状态机,所述状态机中存储有n个主播终端的直播状态以及所述直播状态的更新时刻,所述更新时刻包括上播时刻和下播时刻,所述直播状态为上播状态或下播状态,n≥1;
在所述n个主播终端确定出第一终端,所述第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端;
根据所述状态机确定时钟时刻是否达到所述第一终端的上播时刻;
当所述时钟时刻达到所述第一终端的上播时刻时,通过所述状态机将所述第一终端的直播状态更新为所述上播状态;
根据所述上播状态向所述第一终端发送第一上播请求,所述第一上播请求用于请求所述第一终端发送第一直播视频流进行直播。
另一方面,提供了一种直播间的状态更新装置,所述装置包括:
确定模块,用于确定与所述直播间对应的状态机,所述状态机中存储有n个主播终端的直播状态以及所述直播状态的更新时刻,所述更新时刻包括上播时刻和下播时刻,所述直播状态为上播状态或下播状态,n≥1;
所述确定模块,还用于在所述n个主播终端确定出第一终端,所述第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端;
所述确定模块,还用于根据所述状态机确定时钟时刻是否达到所述第一终端的上播时刻;
更新模块,用于当所述时钟时刻达到所述第一终端的上播时刻时,通过所述状态机将所述第一终端的直播状态更新为所述上播状态;
发送模块,用于根据所述上播状态向所述第一终端发送第一上播请求,所述第一上播请求用于请求所述第一终端发送第一直播视频流进行直播。
另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中所述的直播间的状态更新方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中所述的直播间的状态更新方法。
另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请实施例中所述的直播间的状态更新方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过后台服务器中存储的状态机确定时钟时刻是否达到第一终端的上播时刻,并当达到第一终端的上播时刻时更新第一终端的直播状态,向第一终端发送第一上播请求,第一终端根据该第一上播请求进行直播,也即由命令驱动上播修改为由状态机驱动上播,主播终端的变更无需依赖各个主播终端中的时钟时刻,而是统一由后台服务器中的时钟时刻进行确定,避免了各个主播终端中的时钟时刻不同步而导致的后台服务器中接收到的请求次序出现混乱,后台服务器中无法对接收到的请求进行正确处理,以及及时更新主播终端的直播状态的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的直播间的状态更新系统的实施环境示意图;
图2是本申请一个示例性实施例提供的直播间的状态更新方法的流程图;
图3是本申请一个示例性实施例提供的直播间的界面示意图;
图4是本申请另一个示例性实施例提供的直播间的状态更新方法的流程图;
图5是本申请另一个示例性实施例提供的直播间的状态更新方法的流程图;
图6是基于图5示出的实施例提供的主播终端对就绪通知进行确认的界面示意图;
图7是本申请另一个示例性实施例提供的直播间的状态更新系统的实施环境示意图;
图8是本申请另一个示例性实施例提供的直播间的状态更新方法的流程图;
图9是本申请一个示例性实施例提供相关技术中直播间的状态更新方法的流程图;
图10是本申请一个示例性实施例提供的直播间的状态更新装置的结构框图;
图11是本申请另一个示例性实施例提供的直播间的状态更新装置的结构框图;
图12是本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请中涉及的名词进行简单介绍:
公共直播间:是一种多个主播在一个直播间中分时段进行直播的直播形式,该公共直播间在每个时段由一个主播在该公共直播间中进行直播,如:主播A在后台服务器中设置该主播A的直播时段为20:00至21:00,主播B在后台服务器中设置该主播B的直播时段为21:00至22:15,则20:00主播A在该公共直播间的上播,21:00主播A发起下播,且主播B发起在该公共直播间的上播,22:15主播B发起下播。
值得注意的是,本申请实施例中涉及的直播间可以实现为上述公共直播间,也可以实现为其他由多个主播分时段进行直播的直播间,也即本申请对该公共直播间的命名方式不加以限定。
直播状态:是指主播终端当前的处于直播中的状态,可选地,该直播状态为上播状态或下播状态,其中,上播状态是指主播终端正在向后台服务器发送直播视频流进行直播,下播状态是指主播终端已停止向后台服务器发送直播视频流或者后台服务器的时钟时刻尚未到达该主播终端的上播时刻。可选地,该直播状态还可以是就绪状态、上播状态以及下播状态中的任意一中,其中,就绪状态是指后台服务器中的时钟时刻距离主播终端的上播时刻预设时长时,该主播终端的状态。示意性的,主播A的上播时刻为20:00,下播时刻为21:00,且上播时刻之前1分钟内为就绪状态,则19:59至20:00是主播A的主播终端处于就绪状态,20:00至21:00主播A的主播终端处于上播状态,21:00之后该主播A的主播终端处于下播状态。
状态机(Finite State Machine,FSM):是一种由状态寄存器和组合逻辑电路构成的能够根据条件对状态进行更新的控制中心。本申请实施例中,该状态机用于根据主播终端的上播时刻和下播时刻更新主播终端的直播状态。示意性的,主播A的上播时刻为20:00,下播时刻为21:00,则后台服务器的时钟时刻达到20:00时,后台服务器通过状态机将主播A的直播状态更新为上播状态。
其次,示意性的,本申请涉及的应用场景至少包括如下场景:
主播可以通过申请的方式参与到K歌直播间中进行唱歌直播,如:K歌直播间中当前已排的主播有:主播a(13:00-14:00)、主播b(15:00-16:00)、主播c(16:00-17:00),则,14:00-15:00以及17:00之后的时间段未被安排主播,则当主播d向后台服务器申请参与该K歌直播间时,后台服务器可以默认将该主播d安排至14:00-15:00的时间段,也可以由该主播d对直播时间段进行选择。
后台服务器中的状态机中存储有每个已安排时间段的主播的上播时刻和下播时刻,如:主播a的上播时刻为13:00,下播时刻为14:00,则当后台服务器的时钟时刻达到13:00时,通过该状态机将主播a的直播状态更新为上播状态,并根据该上播状态向主播a的主播终端发送上播请求,主播a的主播终端根据该上播请求向后台服务器发送直播视频流进行直播。
值得注意的是,上述应用场景为示意性的举例,在实际操作中,通过状态机对直播状态进行更新的应用场景都可以使用本申请实施例中提供的直播间的状态更新方法,本申请实施例对此不加以限定。
图1是本申请一个示例性实施例提供的直播间的状态更新系统的实施环境示意图,如图1所示,该系统包括主播终端11和后台服务器12;
主播终端11通过向后台服务器12申请直播时段,后台服务器12可以通过默认分配的方式,将直播间中未被分配的直播时段分配给该主播终端11,也可以接收主播终端11设定的直播时段,并在该设定的直播时段未被分配时将该设定的直播时段分配给该主播终端11。可选地,该主播终端11包括第一终端111和第二终端112,其中,第二终端112在直播间中的直播次序位于第一终端111后一位,也即该第一终端111直播结束后,由该第二终端112进行直播。可选地,该第一终端111的下播时刻可以是该第二终端112的上播时刻,该第二终端112的上播时刻也可以是第一终端111的下播时刻之后某一时刻,也即第一终端111的下播时刻与第二终端112的上播时刻之间有一段时间是没有主播在该直播间进行直播的。可选地,该主播终端11可以是手机、平板等移动终端,也可以是台式电脑、膝上便携式笔记本电脑等终端。
可选地,主播终端11与后台服务器12之间通过通信网络进行连接,该通信网络可以是有线网络,也可以是无线网络,本申请实施例对此不加以限定。
该后台服务器12中包括状态机121,每个状态机121中存储有在同一个直播间中安排有直播时段的主播终端的直播状态以及该直播状态的更新时刻,该更新时刻包括主播终端的上播时刻和下播时刻,也即,每个直播间对应一个状态机。结合上述举例,第一终端111通过后台服务器12设定在直播间的直播时段后,后台服务器在状态机121中增加该第一终端111的直播状态以及该直播时段的上播时刻和下播时刻。
示意性的,第一终端111通过后台服务器12获取直播间A的当前直播安排表,并确认14:00-15:00的时段无主播进行直播,第一终端111向后台服务器12发送直播请求,该直播请求用于申请第一终端111在14:00-15:00的时段在直播间A中进行直播,后台服务器12确认该时段未安排主播进行直播后,将该第一终端111的直播状态(下播状态)、上播时刻(14:00)以及下播时刻(15:00)存储至该直播间A对应的状态机中,可选地,每个主播终端11的直播状态在状态机121存储时,默认为下播状态,然后状态机121根据该主播终端11的上播时刻或下播时刻对该主播终端11的直播状态进行更新。
结合上述实施环境及应用场景,对本申请实施例涉及的直播间的状态更新方法进行说明,图2是本申请一个示例性的实施例提供的直播间的状态更新方法流程图,以该方法应用在如图1所示的后台服务器12中为例进行说明,如图2所示,该方法包括:
步骤201,确定与直播间对应的状态机。
可选地,该状态机中存储有n个主播终端的直播状态以及直播状态的更新时刻,该更新时刻包括上播时刻和下播时刻,该直播状态为上播状态或下播状态,n≥1。
可选地,每个直播间对应一个直播间标识,状态机中包括与该状态机对应的直播间的直播间标识,通过该直播间标识确定与该直播间对应的状态机。
可选地,该状态机中存储有在该直播间中安排有时段进行直播的主播终端的直播状态,以及每个主播终端的直播状态的更新时刻。
示意性的,K歌直播间的直播间标识为020,主播a、主播b以及主播c在该K歌直播间中的三个时段安排有直播,分别为主播a(13:00-14:00)、主播b(15:00-16:00)、主播c(16:00-17:00),后台服务器中存储有与该K歌直播间的直播间标识020对应的状态机,该状态机中存储的每个主播终端的直播状态以及更新时刻如下表一所示:
表一(状态机020)
主播终端 | 直播状态 | 上播时刻 | 下播时刻 |
主播a | 上播状态 | 13:00 | 14:00 |
主播b | 下播状态 | 15:00 | 16:00 |
主播c | 下播状态 | 16:00 | 17:00 |
当前后台服务器中的时钟时刻为13:15,在主播a的上播时刻之后以及主播a的下播时刻之前,故主播a的主播终端处于上播状态。可选地,主播a的上播状态是后台服务器中的时钟时刻达到13:00时,状态机对该主播a的直播状态进行更新后得到的。可选地,当后台服务器中的时钟时刻达到13:00时,后台服务器需确定在主播a上一个进行直播的主播终端已处于下播状态后,将该主播a的直播状态更新为上播状态。
可选地,该状态机中的主播终端以及主播终端的上播时刻和下播时刻是通过终端向后台服务器发送直播请求后存储的,后台服务器接收终端发送的直播请求,该直播请求中包括终端请求在直播间进行直播的时间段,当直播间的该时间段未被状态机中已存储的主播终端占用时,将该终端与该时间段对应的上播时刻和下播时刻存储至状态机中,可选地,该终端在该状态机中的初始直播状态为下播状态。
可选地,状态机中的主播终端时按上播次序进行存储的,则根据上述发送直播请求的终端请求的时间段确定终端在状态机中的上播次序,并根据该上播次序将终端的直播状态、上播时刻以及下播时刻存储至状态机中。
步骤202,在n个主播终端中确定出第一终端。
该第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端,也即当前正在进行直播的主播终端直播结束后,由该第一终端进行直播。
可选地,状态机中按照直播的时间顺序依次存储主播终端的直播状态以及更新时刻,如上表一所示,主播a为最先开始直播的主播终端,主播b为主播a下一位进行直播的主播终端,而主播c为最后一位进行直播的主播终端,则状态机中按照主播a、主播b、主播c的顺序存储该三个主播终端的直播状态以及更新时刻。
可选地,状态机中还可以按照主播终端存储入该状态机的顺序依次存储该主播终端,当需要确定当前进行直播的主播终端的下一位进行直播的主播终端时,依次对状态机中处于下播状态的主播终端进行遍历,得到上播时刻与当前时钟时刻最接近的主播终端作为下一个进行直播的主播终端。
步骤203,根据所述状态机确定时钟时刻是否达到第一终端的上播时刻。
可选地,该第一终端为上述至少一个主播终端中除当前正在进行直播的主播终端外,下一个进行直播的主播终端。
后台服务器根据状态机确定时钟时刻是否达到第一终端的上播时刻,也即该后台服务器根据状态机确定时钟时刻是否达到下一位进行直播的主播终端的上播时刻。其中,后台服务器可以每隔预设时刻进行一次确定,也可以当该第一终端的上一位进行直播的主播终端结束直播后进行确定,本申请实施例对该状态机确定时钟时刻是否达到第一终端的上播时刻的时机不做限定。
步骤204,当时钟时刻达到第一终端的上播时刻时,通过状态机将第一终端的直播状态更新为上播状态。
可选地,当时钟时刻达到第一终端的上播时刻,且该第一终端上一位进行直播的主播终端处于下播状态时,通过状态机将该第一终端的直播状态更新为上播状态,也即同一时刻在状态机中不可存在两个主播终端的直播状态为上播状态。
步骤205,根据上播状态向第一终端发送第一上播请求。
可选地,该第一上播请求用于请求第一终端发送第一直播视频流进行直播。可选地,该第一终端将直播视频流发送至后台服务器后,后台服务器向观看终端发送拉取消息,观看终端根据该拉取消息从后台服务器拉取直播视频流对第一终端的直播进行观看。
可选地,观看终端还可以从后台服务器中获取直播间的直播安排列表,即获取即将进行直播的主播终端以及主播终端的直播时段。示意性的,请参考图3,观看终端31中显示有正在进行直播的主播a的视频311,以及直播安排控件312,当用户在该直播安排控件312上进行点击后,显示直播安排列表313,该直播安排列表313中显示有正在直播的主播a、下一个进行直播的主播b的上播时刻为17:00、主播b下一位进行直播的主播c的上播时刻为18:00,以及主播c下一位进行直播的主播d的上播时刻为19:00,且默认第n+1进行直播的主播的上播时刻即为第n个进行直播的主播的下播时刻。
综上所述,本实施例提供的直播间的直播状态更新方法,通过后台服务器中存储的状态机确定时钟时刻是否达到第一终端的上播时刻,并当达到第一终端的上播时刻时更新第一终端的直播状态,向第一终端发送第一上播请求,第一终端根据该第一上播请求进行直播,也即由命令驱动上播修改为由状态机驱动上播,主播终端的变更无需依赖各个主播终端中的时钟时刻,而是统一由后台服务器中的时钟时刻进行确定,避免了各个主播终端中的时钟时刻不同步而导致的后台服务器中接收到的请求次序出现混乱,后台服务器中无法对接收到的请求进行正确处理,以及及时更新主播终端的直播状态的问题。
在一个可选的实施例中,第一终端需要根据下播时刻向后台服务器发送下播请求以修改在状态机中的直播状态,当第一终端超时未发送下播请求时,后台服务器通过超时兜底策略将第一终端的直播状态更新为下播状态。
图4是本申请另一个示例性实施例提供的直播间的状态更新方法流程图,以该方法应用在如图1所示的后台服务器12中为例进行说明,如图4所示,该方法包括:
步骤401,确定与直播间对应的状态机。
可选地,该状态机中存储有至少一个主播终端的直播状态以及直播状态的更新时刻,该更新时刻包括上播时刻和下播时刻,该直播状态为上播状态或下播状态。
可选地,每个直播间对应一个直播间标识,状态机中包括与该状态机对应的直播间的直播间标识,通过该直播间标识确定与该直播间对应的状态机。
可选地,该状态机中存储有在该直播间中安排有时段进行直播的主播终端的直播状态,以及每个主播终端的直播状态的更新时刻。
步骤402,在n个主播终端中确定出第一终端。
该第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端,也即当前正在进行直播的主播终端直播结束后,由该第一终端进行直播。
可选地,状态机中按照直播的时间顺序依次存储主播终端的直播状态以及更新时刻,如上表一所示,主播a为最先开始直播的主播终端,主播b为主播a下一位进行直播的主播终端,而主播c为最后一位进行直播的主播终端,则状态机中按照主播a、主播b、主播c的顺序存储该三个主播终端的直播状态以及更新时刻。
可选地,状态机中还可以按照主播终端存储入该状态机的顺序依次存储该主播终端,当需要确定当前进行直播的主播终端的下一位进行直播的主播终端时,依次对状态机中处于下播状态的主播终端进行遍历,得到上播时刻与当前时钟时刻最接近的主播终端作为下一个进行直播的主播终端。
步骤403,根据所述状态机确定时钟时刻是否达到第一终端的上播时刻。
可选地,该第一终端为上述至少一个主播终端中除当前正在进行直播的主播终端外,下一个进行直播的主播终端,也即当前正在进行直播的主播终端直播结束后,由该第一终端进行直播。
后台服务器根据状态机确定时钟时刻是否达到第一终端的上播时刻,也即该后台服务器根据状态机确定时钟时刻是否达到下一位进行直播的主播终端的上播时刻。其中,后台服务器可以每隔预设时刻进行一次确定,也可以当该第一终端的上一位进行直播的主播终端结束直播后进行确定,本申请实施例对该状态机确定时钟时刻是否达到第一终端的上播时刻的时机不做限定。
步骤404,当时钟时刻达到第一终端的上播时刻时,通过状态机将第一终端的直播状态更新为上播状态。
可选地,当时钟时刻达到第一终端的上播时刻,且该第一终端上一位进行直播的主播终端处于下播状态时,通过状态机将该第一终端的直播状态更新为上播状态,也即同一时刻在状态机中不可存在两个主播终端的直播状态为上播状态。
步骤405,根据上播状态向第一终端发送第一上播请求。
可选地,该第一上播请求用于请求第一终端发送第一直播视频流进行直播。可选地,该第一终端将直播视频流发送至后台服务器后,后台服务器向观看终端发送拉取消息,观看终端根据该拉取消息从后台服务器拉取直播视频流对第一终端的直播进行观看。
可选地,后台服务器包括后台业务服务器和后台多媒体服务器,第一终端将直播视频流发送至后台多媒体服务器后,后台多媒体服务器向后台业务服务器发送视频上行成功通知,后台业务服务器向观看终端发送观看通知,观看终端根据该观看通知从后台多媒体服务器拉取直播视频流进行观看。
步骤406,接收第一终端发送的下播请求。
可选地,后台服务器的状态机中存储有该第一终端的上播时刻和下播时刻,第一终端中也存储有上播时刻和下播时刻,第一终端中的时钟时刻达到该下播时刻时,第一终端向后台服务器发送上述下播请求,也即,该下播请求是第一终端中的时钟时刻达到第一终端的下播时刻时第一终端向后台服务器发送的。
步骤407,根据下播请求通过状态机将第一终端的直播状态更新为下播状态。
若通过后台服务器的状态机结束第一终端的直播,会产生如下情况:由于第一终端的时钟时刻与后台服务器的时钟时刻不同步,后台服务器的时钟时刻达到第一终端的下播时刻时,通过状态机结束第一终端的直播,而第一终端的时钟时刻尚未达到该第一终端的下播时刻,第一终端的直播被突然中断,第一终端的直播体验较差。故通过第一终端的命令驱动方式实现该第一终端的下播,也即通过第一终端发送的下播请求将该第一终端的直播状态更新为下播状态,避免第一终端的直播突然中断而导致直播的观看体验较差的问题。
步骤408,根据状态机确定时钟时刻是否达到第二终端的上播时刻。
可选地,该第二终端在直播间的直播次序位于第一终端的后一位。
可选地,通过第一终端发送的下播请求在状态机中修改第一终端的直播状态后,时钟时刻与第二终端的上播状态之间的时序关系包括如下两种情况:
第一种:第一终端的直播状态更新为下播状态时,时钟时刻尚未达到第二终端的上播时刻;
第二种:第一终端的直播状态更新为下播状态时,时钟时刻已达到第二终端的上播时刻,但未超出预设时长。其中,该预设时长可以是提前设定的,也可以是根据后台服务器的网络状态确定的,如:后台服务器网络情况较好时,设定预设时长为5秒,当后台服务器的网络情况较差时,设定预设时长为7秒。
步骤409,当时钟时刻达到第二终端的上播时刻时,通过状态机将第二终端的直播状态更新为上播状态。
可选地,针对上述步骤407中的两种情况,分别采用如下方式:
针对第一种情况,时钟时刻尚未到达第二终端的上播时刻,则持续根据状态机确定时钟时刻是否达到第二终端的上播时刻,直到时钟时刻达到第二终端的上播时刻时,通过状态机将第二终端的直播状态更新为上播状态;针对第二种情况,则视为该时钟时刻达到了第二终端的上播时刻,直接通过状态机将第二终端的直播状态更新为上播状态。
步骤410,当根据状态机确定时钟时刻超出第一终端的下播时刻预设时长,且未接收到第一终端发送的下播请求时,通过状态机将第一终端的直播状态更新为下播状态。
可选地,当第一终端的网络情况较差时,该第一终端的时钟时刻达到第一终端的下播时刻时,第一终端向后台服务器发送下播请求,但由于网络情况较差,后台服务器无法接收到该下播请求,则为了避免第一终端的直播状态影响未进行直播的主播终端的直播状态,后台服务器通过状态机将第一终端的直播状态更新为下播状态,也即后台服务器通过强制下播的方式结束该第一终端的直播。
步骤411,当通过状态机确定时钟时刻已超出第二终端的上播时刻时,将第二终端的直播状态更新为上播状态。
可选地,当时钟时刻已超出第二终端的上播时刻时,则通过该状态机直接将第二终端的直播状态更新为上播状态。可选地,由于第一终端在状态机中的直播状态已更新为下播状态,则当前状态机中无主播终端的直播状态为上播状态,状态机可以在无主播终端的直播状态为上播状态时,对第一终端下一位进行直播的主播终端(也即第二终端)的上播时刻进行确认,并当判断当前时钟时刻超出该第二终端的上播时刻时,将第二终端的直播状态更新为上播状态。
可选地,该第二终端的直播状态也可以通过工作人员对状态机的设置,更新为上播状态。
步骤412,根据上播状态向第二终端发送第二上播请求。
可选地,该第二上播请求用于请求第二终端发送第二直播视频流进行直播。
可选地,第二终端发送第二直播视频流进行直播的方式请参考上述步骤404。
综上所述,本实施例提供的直播间的直播状态更新方法,通过后台服务器中存储的状态机确定时钟时刻是否达到第一终端的上播时刻,并当达到第一终端的上播时刻时更新第一终端的直播状态,向第一终端发送第一上播请求,第一终端根据该第一上播请求进行直播,也即由命令驱动上播修改为由状态机驱动上播,主播终端的变更无需依赖各个主播终端中的时钟时刻,而是统一由后台服务器中的时钟时刻进行确定,避免了各个主播终端中的时钟时刻不同步而导致的后台服务器中接收到的请求次序出现混乱,后台服务器中无法对接收到的请求进行正确处理,以及及时更新主播终端的直播状态的问题。
本实施例提供的方法,通过接收第一终端的下播请求将状态机中该第一终端的直播状态更新为下播状态,避免由于服务器与第一终端的时钟时刻不一致,而导致服务器单侧结束第一终端的直播时,第一终端直播内容尚未结束,而导致直播过程被突然切断的问题。
本实施例提供的方法,当第一终端的下播时刻超出预设时长但尚未收到第一终端的下播请求时,在服务器侧结束第一终端的直播并修改状态机中的直播状态,避免由于第一终端的网络因素延误尚未进行直播的主播终端的直播流程。
在一个可选的实施例中,第一终端还可以通过发送加播请求的方式延长直播时长,还可以通过发送状态查询请求的方式查询状态机中该第一终端的直播状态以对第一终端中的直播状态进行及时更新。
图5是本申请另一个示例性实施例提供的直播间的状态更新方法流程图,以该方法应用在图1所示的后台服务器12中为例进行说明,如图5所示,该方法包括:
步骤501,确定与直播间对应的状态机。
可选地,该状态机中存储有至少一个主播终端的直播状态以及直播状态的更新时刻,该更新时刻包括上播时刻和下播时刻,该直播状态为上播状态或下播状态。
可选地,每个直播间对应一个直播间标识,状态机中包括与该状态机对应的直播间的直播间标识,通过该直播间标识确定与该直播间对应的状态机。
步骤502,在n个主播终端中确定出第一终端。
该第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端,也即当前正在进行直播的主播终端直播结束后,由该第一终端进行直播。
可选地,状态机中按照直播的时间顺序依次存储主播终端的直播状态以及更新时刻,如上表一所示,主播a为最先开始直播的主播终端,主播b为主播a下一位进行直播的主播终端,而主播c为最后一位进行直播的主播终端,则状态机中按照主播a、主播b、主播c的顺序存储该三个主播终端的直播状态以及更新时刻。
可选地,状态机中还可以按照主播终端存储入该状态机的顺序依次存储该主播终端,当需要确定当前进行直播的主播终端的下一位进行直播的主播终端时,依次对状态机中处于下播状态的主播终端进行遍历,得到上播时刻与当前时钟时刻最接近的主播终端作为下一个进行直播的主播终端。
步骤503,根据所述状态机确定时钟时刻是否达到至少一个主播终端中的第一终端的上播时刻。
可选地,该第一终端为上述至少一个主播终端中除当前正在进行直播的主播终端外,下一个进行直播的主播终端,也即当前正在进行直播的主播终端直播结束后,由该第一终端进行直播。
步骤504,在第一终端的上播时刻之前预设时长,向第一终端发送就绪通知。
可选地,直播状态为就绪状态、上播状态、下播状态中的任意一种,其中,就绪状态为上播状态之前用于准备上播的状态。
可选地,后台服务器可以在第一终端的上播时刻之前预设时长,将该第一终端的直播状态在状态机中更新为就绪状态,也可以向第一终端发送就绪通知,并当第一终端发送就绪确认消息后,将第一终端的直播状态修改后就绪状态。本实施例中,以接收到第一终端发送的就绪确认消息后修改第一终端的直播状态为例进行说明。
示意性的,第一终端的上播时刻为20:00,预设时长为1分钟,则当后台服务器的时钟时刻达到19:59时,后台服务器向第一终端发送就绪通知。
步骤505,接收第一终端发送的就绪确认消息。
该就绪确认消息是第一终端接收到就绪通知后,对该就绪通知进行确认后向后台服务器发送的消息。可选地,该就绪确认消息是第一终端接收到就绪通知后,在用户界面中提示用户准备直播后,用户确认就绪后向后台服务器发送的消息。
步骤506,根据就绪确认消息通过状态机将第一终端的直播状态更新为就绪状态。
可选地,该就绪状态用于在下播状态和上播状态之间进行过渡。
示意性的,请参考图6,第一终端61在直播间的直播时段为20:00至21:00,改第一终端61在19:59接收到后台服务器63发送的就绪通知后,显示就绪提示卡片62,该就绪提示卡片62中包括确认控件621,用户在该确认控件621中进行点击后,第一终端61向后台服务器63发送就绪确认消息,后台服务器63将第一终端的直播状态在状态机中修改为就绪状态。
步骤507,当时钟时刻达到第一终端的上播时刻时,通过状态机将第一终端的直播状态更新为上播状态。
可选地,当时钟时刻达到第一终端的上播时刻,且该第一终端上一位进行直播的主播终端处于下播状态时,通过状态机将该第一终端的直播状态更新为上播状态,也即同一时刻在状态机中不可存在两个主播终端的直播状态为上播状态。
步骤508,根据上播状态向第一终端发送第一上播请求。
可选地,该第一上播请求用于请求第一终端发送第一直播视频流进行直播。可选地,该第一终端将直播视频流发送至后台服务器后,后台服务器向观看终端发送拉取消息,观看终端根据该拉取消息从后台服务器拉取直播视频流对第一终端的直播进行观看。
步骤509,接收第一终端发送的加播请求。
可选地,该加播请求用于请求延长第一终端的直播时长。
步骤510,根据加播请求修改状态机中第一终端的下播时刻。
可选地,根据加播请求修改状态机中第一终端的下播时刻包括如下方式中的任意一种:
第一,该加播请求中包括第一终端请求延长的直播时长,示意性的,第一终端请求延长15分钟,则该加播请求中包括该请求延长的时长15分钟,示意性的,该加播请求形如“request addtime 900”,其中,900表示该第一终端请求延时900秒,即15分钟。后台服务器根据加播请求将第一终端的下播时刻向后延时15分钟;
第二,后台服务器默认该加播请求对应一个固定的延时时长,如:每次后台服务器接收到加播请求,即发送该加播请求的第一终端请求延时15分钟,则后台服务器根据加播请求将第一终端的下播时刻向后延时15分钟。
可选地,后台服务器还可以设定每个主播终端发送加播请求的次数不得超出预设次数。如:每个主播终端仅能发送一次加播请求。
步骤511,接收第一终端发送的状态查询请求。
可选地,该状态查询请求用于请求查询第一终端的当前直播状态,即该状态查询请求用于请求查询第一终端在后台服务器的状态机中的当前直播状态。
步骤512,将状态机中第一终端的当前直播状态发送至第一终端。
可选地,第一终端用于通过当前直播状态对第一终端中的直播状态进行更新。示意性的,第一终端产生卡顿后,未能向后台服务器发送下播请求,后台服务器中未接收到该第一终端发送的下播请求,而后台服务器的时钟时刻已达到该第一终端的下播时刻且超出了预设时长,则后台服务器的状态机中将该第一终端的直播状态更新为下播状态,而第一终端中依旧处于上播状态,第一终端向后台服务器发送状态查询请求后,后台服务器将状态机中第一终端的当前直播状态(也即下播状态)发送至第一终端,第一终端根据该当前直播状态更新第一终端中的直播状态为下播状态。
值得注意的是,后台服务器向第一终端发送当前直播状态时,会附带发送该当前直播状态的时间戳,第一终端根据该当前直播状态的时间戳与上一个直播状态的时间戳进行比对,若当前直播状态的时间戳在上一个直播状态的时间戳之后时,第一终端根据当前直播状态进行更新。
可选地,上述步骤511至步骤512可以执行在步骤510之后,也可以执行在步骤510之前任意时机,本申请实施例对此不加以限定。
值得注意的是,上述后台服务器还可以实现为后台服务器组,该后台服务器组中包括至少两台服务器,该至少两台服务器中设置有分布式锁。当状态机中的直播状态需要被更新时,在后台服务器组中,通过分布式锁保留一台服务器用于对直播状态进行更新。
可选地,上述至少两台服务器是通过管理服务器进行管理的,即通过管理服务器对后台服务器组中分布式锁的分布进行管理。示意性的,当接收到第一终端的下播请求时,后台服务器组需要对第一终端的直播状态进行更新,该后台服务器组中包括服务器A和服务器B,则通过管理服务器将分布式锁分配给至少两台服务器中的服务器A,被分配有分布式锁的服务器A即为对直播状态进行更新的服务器。可选地,管理服务器在分配分布式锁时,可以依次轮询分配,也可以随机分配。
具体执行过程如下:后台服务器组中的任意一台服务器接收到第一终端发送的下播请求后,向管理服务器发送加锁请求,管理服务器根据该加锁请求判断该分布式锁是否被占用,当该分布式锁未被占用时,将该分布式锁分配给后台服务器组中的某一台服务器,被分配有该分布式锁的服务器根据第一终端的下播请求对第一终端的直播状态进行更新。更新完毕后,该服务器将分布式锁重新上交至管理服务器,后台服务器组中的所有服务器恢复正常工作。
可选地,当后台服务器组中包括后台业务服务器和后台多媒体服务器时,该后台服务器组中包括至少两台后台业务服务器,该至少两台后台业务服务器中设置有分布式锁。当状态机中的直播状态需要被更新时,在后台业务服务器组中,通过分布式锁保留一台后台业务服务器用于对直播状态进行更新。
综上所述,本实施例提供的直播间的直播状态更新方法,通过后台服务器中存储的状态机确定时钟时刻是否达到第一终端的上播时刻,并当达到第一终端的上播时刻时更新第一终端的直播状态,向第一终端发送第一上播请求,第一终端根据该第一上播请求进行直播,也即由命令驱动上播修改为由状态机驱动上播,主播终端的变更无需依赖各个主播终端中的时钟时刻,而是统一由后台服务器中的时钟时刻进行确定,避免了各个主播终端中的时钟时刻不同步而导致的后台服务器中接收到的请求次序出现混乱,后台服务器中无法对接收到的请求进行正确处理,以及及时更新主播终端的直播状态的问题。
本实施例提供的方法,接收第一终端发送的加播请求后,通过修改状态机中第一终端的下播时刻,即可对第一终端的直播时长进行修改,而无需改动原有协议,功能扩展性较优。
本实施例提供的方法,第一终端通过向后台服务器发送状态查询请求,查询第一终端在状态机中的直播状态,避免第一终端由于卡顿等异常状态导致第一终端与后台服务器中的直播状态不一致的问题。
在一个可选的实施例中,图1所示的直播间的状态更新系统中的后台服务器12还可以实现为后台服务器组,如图7所示,该直播间的状态更新系统中包括:主播终端71、后台服务器组72以及观看终端73,其中,主播终端71中包括第一终端711和第二终端712,后台服务器组72包括后台业务服务器721和后台多媒体服务器722,其中,后台业务服务器721中存储有状态机721,后台多媒体服务器722用于对主播终端71发送的直播视频流进行直播,也即观看终端73从该后台多媒体服务器722中获取主播终端的直播视频流进行观看。
示意性的,图8是本申请另一个示例性实施例提供的直播间的状态更新方法流程图,以该方法应用在如图7所示的状态更新系统中为例进行说明,该方法包括:
步骤801,在观看终端中播放垫片。
可选地,该垫片为在无主播进行直播时播放的短片。
步骤802,后台业务服务器在第一终端的上播时刻之前预设时间向第一终端发送就绪通知。
可选地,直播状态为就绪状态、上播状态、下播状态中的任意一种,其中,就绪状态为上播状态之前用于准备上播的状态。
步骤803,第一终端向后台业务服务器发送就绪确认消息。
该就绪确认消息是第一终端接收到就绪通知后,对该就绪通知进行确认后向后台服务器发送的消息。可选地,该就绪确认消息是第一终端接收到就绪通知后,在用户界面中提示用户准备直播后,用户确认就绪后向后台服务器发送的消息。
步骤804,后台业务服务器向观看终端发送准备观看通知。
步骤805,第一终端播放倒计时预览。
可选地,第一终端可以是在第一终端的时钟时刻距离上播时刻预设时长时,开始进行倒计时预览。
步骤806,后台业务服务器在时钟时刻达到第一终端的上播时刻时,向第一终端发送上播请求。
可选地,该直播请求用于请求第一终端发送第一直播视频流进行直播。
步骤807,第一终端向后台多媒体服务器发送第一直播视频流。
步骤808,后台多媒体服务器向后台业务服务器发送视频上行成功通知。
步骤809,后台业务服务器向观看终端发送观看通知。
步骤810,观看终端从后台多媒体服务器拉取第一直播视频流进行观看。
步骤811,后台业务服务器在第二终端的上播时刻之前预设时间向第一终端发送就绪通知。
步骤812,第二终端播放倒计时预览。
步骤813,第一终端播放直播结束倒计时。
步骤814,第一终端向后台业务服务器发送下播请求。
步骤815,后台业务服务器在时钟时刻达到第一终端的下播时刻,且未收到下播请求时,结束第一终端的直播。
步骤816,后台业务服务器向观看终端发送下播通知。
步骤817,观看终端播放过场动画。
步骤818,后台业务服务器在时钟时刻达到第二终端的上播时刻时,向第二终端发送上播请求。
步骤819,第二终端向后台多媒体服务器发送第二直播视频流。
步骤820,后台多媒体服务器向后台业务服务器发送视频上行成功通知。
步骤821,后台业务服务器向观看终端发送观看通知。
步骤822,观看终端从后台多媒体服务器拉取第二直播视频流进行观看。
上述图8是本申请一个示例性实施例提供的直播间的状态更新方法流程图,而图9是相关技术中直播间的状态更新方法流程图,如图9所示,该方法包括:
步骤901,在观看终端中播放垫片。
可选地,该垫片为在无主播进行直播时播放的短片。
步骤902,第一终端向后台业务服务器发送就绪确认消息。
该就绪确认消息是第一终端接收到就绪通知后,对该就绪通知进行确认后向后台服务器发送的消息。可选地,该就绪确认消息是第一终端接收到就绪通知后,在用户界面中提示用户准备直播后,用户确认就绪后向后台服务器发送的消息。
步骤903,后台业务服务器向观看终端发送准备观看通知。
步骤904,第一终端播放倒计时预览。
步骤905,第一终端在时钟时刻达到上播时刻时,向后台业务服务器发送上播请求。
可选地,该直播请求用于请求第一终端发送第一直播视频流进行直播。
步骤906,第一终端向后台多媒体服务器发送第一直播视频流。
步骤907,后台多媒体服务器向后台业务服务器发送视频上行成功通知。
步骤908,后台业务服务器向观看终端发送观看通知。
步骤909,观看终端从后台多媒体服务器拉取第一直播视频流进行观看。
步骤910,第二终端向后台业务服务器发送就绪通知。
步骤911,第二终端播放倒计时预览。
步骤912,第一终端播放直播结束倒计时。
步骤913,第一终端向后台业务服务器发送下播请求。
步骤914,后台业务服务器向观看终端发送下播通知。
步骤915,观看终端播放过场动画。
步骤916,第二终端在时钟时刻达到上播时刻时,向后台业务服务器发送上播请求。
步骤917,第二终端向后台多媒体服务器发送第二直播视频流。
步骤918,后台多媒体服务器向后台业务服务器发送视频上行成功通知。
步骤919,后台业务服务器向观看终端发送观看通知。
步骤920,观看终端从后台多媒体服务器拉取第二直播视频流进行观看。
根据上述图8以及图9的对比可知,图9对应的实施例中,是通过主播终端的命令驱动后台业务服务器中的主播终端的直播状态的更新的,而图8对应的实施例中,是通过后台业务服务器中的状态机驱动直播状态的更新的。
图10是本申请一个示例性实施例提供的直播间的状态更新装置的结构框图,该装置可以实现在如图1所示的后台服务器12中,如图10所示,该装置包括:确定模块1010、更新模块1020以及发送模块1030;
确定模块1010,用于确定与所述直播间对应的状态机,所述状态机中存储有n个主播终端的直播状态以及所述直播状态的更新时刻,所述更新时刻包括上播时刻和下播时刻,所述直播状态为上播状态或下播状态,n≥1;
所述确定模块1010,还用于在所述n个主播终端确定出第一终端,所述第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端;
所述确定模块1010,还用于根据所述状态机确定时钟时刻是否达到所述第一终端的上播时刻;
更新模块1020,用于当所述时钟时刻达到所述第一终端的上播时刻时,通过所述状态机将所述第一终端的直播状态更新为所述上播状态;
发送模块1030,用于根据所述上播状态向所述第一终端发送第一上播请求,所述第一上播请求用于请求所述第一终端发送第一直播视频流进行直播。
在一个可选的实施例中,所述装置还包括:
接收模块1040,用于接收某一终端针对所述直播间发送的直播请求,所述直播请求中包括所述终端请求在所述直播间进行直播的时间段;
存储模块1050,用于当所述时间段未被所述状态机中已存储的所述主播终端占用时,将所述终端以及与所述时间段对应的上播时刻和下播时刻存储至所述状态机中,所述终端在所述状态机中的初始直播状态为所述下播状态。
在一个可选的实施例中,所述主播终端在所述状态机中是按序进行存储的;
所述确定模块1010,还用于根据所述时间段确定所述终端在所述状态机中的上播次序;
所述存储模块1050,还用于根据所述终端在所述状态机中的上播次序将所述终端的直播状态、所述终端的上播时刻以及所述终端的下播时刻存储至所述状态机中。
在一个可选的实施例中,所述更新模块1020,还用于当根据所述状态机确定所述时钟时刻超出所述第一终端的下播时刻预设时长,且未接收到所述第一终端发送的下播请求时,通过所述状态机将所述第一终端的直播状态更新为所述下播状态,所述下播请求是所述第一终端中的时钟时刻达到所述下播时刻时所述第一终端向所述后台服务器发送的;
所述更新模块1020,还用于当通过所述状态机确定所述时钟时刻已超出所述第二终端的上播时刻时,将所述第二终端的直播状态更新为所述上播状态,所述第二终端的直播次序位于所述第一终端的后一位。
在一个可选的实施例中,所述接收模块1040,还用于接收所述第一终端发送的加播请求,所述加播请求用于请求延长所述第一终端的直播时长;
所述装置,还包括:
修改模块1060,用于根据所述加播请求修改所述状态机中所述第一终端的下播时刻。
在一个可选的实施例中,所述接收模块1040,还用于接收所述第一终端发送的状态查询请求,所述状态查询请求用于请求查询所述第一终端的当前直播状态;
所述发送模块1030,还用于将所述状态机中所述第一终端的当前直播状态发送至所述第一终端,所述当前直播状态对应有发送时间戳,所述第一终端用于当所述发送时间戳所表达的时刻在上一个直播状态对应的时刻之后时,通过所述当前直播状态对所述第一终端中的直播状态进行更新。
在一个可选的实施例中,所述直播状态包括就绪状态、上播状态和下播状态中的任意一种,所述发送模块1030,还用于在所述第一终端的上播时刻之前预设时长,向所述第一终端发送就绪通知,所述就绪通知用于提示在所述第一终端准备上播;
所述接收模块1040,还用于接收所述第一终端发送的就绪确认消息;
所述更新模块1020,还用于根据所述就绪确认消息通过所述状态机将所述第一终端的直播状态更新为所述就绪状态。
需要说明的是,上述实施例中的确定单元1010、更新模块1020、发送模块1030、接收模块1040以及修改模块1060可以由处理器实现也可以有处理器和存储器协同实现;上述实施例中的存储模块1050可以由存储器实现,也可以由处理器和存储器协同实现。
本申请还提供了一种服务器,该服务器包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的直播间的状态更新方法。需要说明的是,该服务器可以是如下图12所提供的服务器。
请参考图12,其示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:所述服务器1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述服务器1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读存储介质为服务器1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读存储介质(未示出)。
不失一般性,所述计算机可读存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1201执行,一个或多个程序包含用于实现上述直播间的状态更新方法的指令,中央处理单元1201执行该一个或多个程序实现上述各个方法实施例提供的直播间的状态更新方法。
根据本发明的各种实施例,所述服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的直播间的状态更新方法中由服务器所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器1210加载并执行以实现如图2、图4、图5及图8任一所述的直播间的状态更新方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的直播间的状态更新方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种直播间的状态更新方法,其特征在于,所述方法包括:
确定与所述直播间对应的状态机,所述状态机中存储有n个主播终端的直播状态以及所述直播状态的更新时刻,所述更新时刻包括上播时刻和下播时刻,所述直播状态为上播状态或下播状态,n≥1;
在所述n个主播终端中确定出第一终端,所述第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端;
根据所述状态机确定时钟时刻是否达到所述第一终端的上播时刻;
当所述时钟时刻达到所述第一终端的上播时刻时,通过所述状态机将所述第一终端的直播状态更新为所述上播状态;
根据所述上播状态向所述第一终端发送第一上播请求,所述第一上播请求用于请求所述第一终端发送第一直播视频流进行直播。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收某一终端针对所述直播间发送的直播请求,所述直播请求中包括所述终端请求在所述直播间进行直播的时间段;
当所述直播间的所述时间段未被所述状态机中已存储的所述主播终端占用时,将所述终端以及与所述时间段对应的上播时刻和下播时刻存储至所述状态机中,所述终端在所述状态机中的初始直播状态为所述下播状态。
3.根据权利要求2所述的方法,其特征在于,所述主播终端在所述状态机中是按序进行存储的;
所述将所述终端与所述时间段对应的上播时刻和下播时刻存储至所述状态机中,包括:
根据所述时间段确定所述终端在所述状态机中的上播次序;
根据所述终端在所述状态机中的上播次序将所述终端的直播状态、所述终端的上播时刻以及所述终端的下播时刻存储至所述状态机中。
4.根据权利要求1所述的方法,其特征在于,所述向所述第一终端发送第一上播请求之后,还包括:
当根据所述状态机确定所述时钟时刻超出所述第一终端的下播时刻预设时长,且未接收到所述第一终端发送的下播请求时,通过所述状态机将所述第一终端的直播状态更新为所述下播状态,所述下播请求是所述第一终端中的时钟时刻达到所述下播时刻时所述第一终端向后台服务器发送的;
当通过所述状态机确定所述时钟时刻已超出第二终端的上播时刻时,将所述第二终端的直播状态更新为所述上播状态,所述第二终端的直播次序位于所述第一终端的后一位。
5.根据权利要求2至4任一所述的方法,其特征在于,所述接收所述第一终端发送的下播请求之前,还包括:
接收所述第一终端发送的加播请求,所述加播请求用于请求延长所述第一终端的直播时长;
根据所述加播请求修改所述状态机中所述第一终端的下播时刻。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
接收所述第一终端发送的状态查询请求,所述状态查询请求用于请求查询所述第一终端的当前直播状态;
将所述状态机中所述第一终端的当前直播状态发送至所述第一终端,所述当前直播状态对应有发送时间戳,所述第一终端用于当所述发送时间戳所表达的时刻在上一个直播状态对应的时刻之后时,通过所述当前直播状态对所述第一终端中的直播状态进行更新。
7.根据权利要求1至4任一所述的方法,其特征在于,所述直播状态包括就绪状态、上播状态和下播状态中的任意一种,所述当所述时钟时刻达到所述第一终端的上播时刻时,通过所述状态机将所述第一终端的直播状态更新为所述上播状态之前,还包括:
在所述第一终端的上播时刻之前预设时长,向所述第一终端发送就绪通知,所述就绪通知用于提示在所述第一终端准备上播;
接收所述第一终端发送的就绪确认消息;
根据所述就绪确认消息通过所述状态机将所述第一终端的直播状态更新为所述就绪状态。
8.一种直播间的状态更新装置,其特征在于,所述装置包括:
确定模块,用于确定与所述直播间对应的状态机,所述状态机中存储有n个主播终端的直播状态以及所述直播状态的更新时刻,所述更新时刻包括上播时刻和下播时刻,所述直播状态为上播状态或下播状态,n≥1;
所述确定模块,还用于在所述n个主播终端确定出第一终端,所述第一终端是位于当前直播状态为上播状态的主播终端下一个进行直播的主播终端;
所述确定模块,还用于根据所述状态机确定时钟时刻是否达到所述第一终端的上播时刻;
更新模块,用于当所述时钟时刻达到所述第一终端的上播时刻时,通过所述状态机将所述第一终端的直播状态更新为所述上播状态;
发送模块,用于根据所述上播状态向所述第一终端发送第一上播请求,所述第一上播请求用于请求所述第一终端发送第一直播视频流进行直播。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收某一终端针对所述直播间发送的直播请求,所述直播请求中包括所述终端请求在所述直播间进行直播的时间段;
存储模块,用于当所述直播间的所述时间段未被所述状态机中已存储的所述主播终端占用时,将所述终端与所述时间段对应的上播时刻和下播时刻存储至所述状态机中,所述终端在所述状态机中的初始直播状态为所述下播状态。
10.根据权利要求9所述的装置,其特征在于,所述主播终端在所述状态机中是按序进行存储的;
所述确定模块,还用于根据所述时间段确定所述终端在所述状态机中的上播次序;
所述存储模块,还用于根据所述终端在所述状态机中的上播次序将所述终端的直播状态、所述终端的上播时刻以及所述终端的下播时刻存储至所述状态机中。
11.根据权利要求8所述的装置,其特征在于,所述更新模块,还用于当根据所述状态机确定所述时钟时刻超出所述第一终端的下播时刻预设时长,且未接收到所述第一终端发送的下播请求时,通过所述状态机将所述第一终端的直播状态更新为所述下播状态,所述下播请求是所述第一终端中的时钟时刻达到所述下播时刻时所述第一终端向后台服务器发送的;
所述更新模块,还用于当通过所述状态机确定所述时钟时刻已超出第二终端的上播时刻时,将所述第二终端的直播状态更新为所述上播状态,所述第二终端的直播次序位于所述第一终端的后一位。
12.根据权利要求9至11任一所述的装置,其特征在于,接收模块,用于接收所述第一终端发送的加播请求,所述加播请求用于请求延长所述第一终端的直播时长;
所述装置,还包括:
修改模块,用于根据所述加播请求修改所述状态机中所述第一终端的下播时刻。
13.根据权利要求8至11任一所述的装置,其特征在于,接收模块,用于接收所述第一终端发送的状态查询请求,所述状态查询请求用于请求查询所述第一终端的当前直播状态;
所述发送模块,还用于将所述状态机中所述第一终端的当前直播状态发送至所述第一终端,所述当前直播状态对应有发送时间戳,所述第一终端用于当所述发送时间戳所表达的时刻在上一个直播状态对应的时刻之后时,通过所述当前直播状态对所述第一终端中的直播状态进行更新。
14.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的直播间的状态更新方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的直播间的状态更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811399577.9A CN111212294B (zh) | 2018-11-22 | 2018-11-22 | 直播间的状态更新方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811399577.9A CN111212294B (zh) | 2018-11-22 | 2018-11-22 | 直播间的状态更新方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111212294A CN111212294A (zh) | 2020-05-29 |
CN111212294B true CN111212294B (zh) | 2021-10-29 |
Family
ID=70788040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811399577.9A Active CN111212294B (zh) | 2018-11-22 | 2018-11-22 | 直播间的状态更新方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111212294B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347456B (zh) * | 2021-06-02 | 2023-04-07 | 网易(杭州)网络有限公司 | 直播信息的更新方法、装置及电子设备 |
CN113766259B (zh) * | 2021-08-17 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 一种信息同步系统、方法、装置、设备及存储介质 |
CN113852836B (zh) * | 2021-09-23 | 2024-01-30 | 湖南快乐阳光互动娱乐传媒有限公司 | 垫片信号的输出方法、装置、存储介质和电子设备 |
CN114422817B (zh) * | 2022-01-17 | 2023-09-26 | 北京达佳互联信息技术有限公司 | 直播间数据处理方法、装置、电子设备、存储介质 |
CN114745571B (zh) * | 2022-04-15 | 2024-01-23 | 网易(杭州)网络有限公司 | 直播状态信息同步方法、装置、电子设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376605A (zh) * | 2015-10-26 | 2016-03-02 | 浪潮软件集团有限公司 | 一种确定直播时移节目的方法及终端设备 |
CN106534978A (zh) * | 2016-10-14 | 2017-03-22 | 乐视控股(北京)有限公司 | 直播节目状态更新方法及装置 |
US9736504B1 (en) * | 2013-03-15 | 2017-08-15 | Tribune Broadcasting Company, Llc | Systems and methods for determining a time period remaining until a live production system changes states |
CN108174233A (zh) * | 2018-01-08 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种直播方法、装置、服务器及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008306606A (ja) * | 2007-06-09 | 2008-12-18 | Masahide Tanaka | 動画データ鑑賞装置 |
-
2018
- 2018-11-22 CN CN201811399577.9A patent/CN111212294B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736504B1 (en) * | 2013-03-15 | 2017-08-15 | Tribune Broadcasting Company, Llc | Systems and methods for determining a time period remaining until a live production system changes states |
CN105376605A (zh) * | 2015-10-26 | 2016-03-02 | 浪潮软件集团有限公司 | 一种确定直播时移节目的方法及终端设备 |
CN106534978A (zh) * | 2016-10-14 | 2017-03-22 | 乐视控股(北京)有限公司 | 直播节目状态更新方法及装置 |
CN108174233A (zh) * | 2018-01-08 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种直播方法、装置、服务器及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111212294A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111212294B (zh) | 直播间的状态更新方法、装置及可读存储介质 | |
US5561637A (en) | Pace control for multicasting in a video server environment | |
US6590865B1 (en) | Transmission system, bandwidth management apparatus, and bandwidth management method | |
KR102305064B1 (ko) | 비디오 라이브 방송 방법 및 장치 | |
CN111372090A (zh) | 一种连麦的实现方法、装置、电子设备及存储介质 | |
WO1998009412A1 (en) | Scheduling data transmission | |
CN109379448B (zh) | 一种文件分布式部署方法、装置、电子设备及存储介质 | |
CN110944219B (zh) | 资源分配方法、装置、服务器及存储介质 | |
CN108683730B (zh) | 资源调度方法、业务服务器、客户终端、网络系统和介质 | |
CN103731281A (zh) | 频道处理方法和装置 | |
CN110149524B (zh) | 直播流切片系统、直播流切片方法、装置及可读介质 | |
CN112540773A (zh) | 一种云游戏安装方法、装置、电子设备及存储介质 | |
CN115209231A (zh) | 数据传输方法、装置、设备和计算机可读存储介质 | |
CN113115117B (zh) | 互动视频播放方法、装置、存储介质及电子设备 | |
CN108683728B (zh) | 数据传输方法、服务器、终端、网络系统和存储介质 | |
CN113014672B (zh) | 一种消息推送方法、装置、电子设备及存储介质 | |
KR100941902B1 (ko) | 분산 네트워크를 통한 콘텐츠 전송을 스케줄링하는 방법 및장치 | |
CN111479137B (zh) | 线路地址的提供方法、装置、服务器及存储介质 | |
CN115278339A (zh) | 混播处理方法及系统 | |
CN109348249B (zh) | 确定数字专辑的用户获取数量的方法、装置及存储介质 | |
CN109348242B (zh) | 网络直播调度方法、装置、介质及电子设备 | |
CN114143616A (zh) | 目标视频的处理方法和系统、存储介质及电子装置 | |
CN111726650A (zh) | 视频直播方法及装置、计算机存储介质 | |
CN112860432A (zh) | 一种进程管理方法、装置及服务器 | |
EP1753237B1 (en) | Scheduling for Internet Protocol Television Broadcast |
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 |