CN111901617A - 一种直播观看时长的计算方法及装置 - Google Patents
一种直播观看时长的计算方法及装置 Download PDFInfo
- Publication number
- CN111901617A CN111901617A CN202010694525.5A CN202010694525A CN111901617A CN 111901617 A CN111901617 A CN 111901617A CN 202010694525 A CN202010694525 A CN 202010694525A CN 111901617 A CN111901617 A CN 111901617A
- Authority
- CN
- China
- Prior art keywords
- live broadcast
- watching
- broadcast room
- time length
- client
- 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.)
- Granted
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/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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Graphics (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开涉及多媒体技术领域,特别涉及一种直播观看时长的计算方法及装置,用以保证直播观看时长的计算准确性。该方法为:记录观众客户端进入直播间的第一时间戳,以及在每次接收到所述观众客户端发送的心跳消息时,基于当前时间和第一时间戳,结合所述观众客户端当前进入所述直播间之前,在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,并在确定所述观众客户端退出直播间时,将最后一次接收的心跳消息对应的候选观看总时长作为目标观看总时长。这样,可以令观看时长的计算过程,不依赖于观众客户端发送的各类消息的时序,有效提高了目标观看总时长的计算准确率,进而保证了系统服务的稳定性和可靠性。
Description
技术领域
本公开涉及多媒体技术领域,特别涉及一种直播观看时长的计算方法及装置。
背景技术
随着互联网技术的发展,直播业务越来越受到观众的喜爱。而将观众的观看直播的时长作为直播业务的基础数据进行采集,有助于后续进行大数据分析,从而确定业务发展方向。
通常情况下,直播的基础数据具有数据量大、并发高、实时性要求高等特点。针对上述特点,已有技术下,采用观众客户端进入直播间和退出直播间的异步消息来计算直播观看时长,具体计算方法是采用退出直播间的时间减去进入直播间的时间,从而得到观看时长。
然而,实际应用中,客户观看直播时,网络环境并不都处于理想状态,可能会存在依赖于基础资源和服务的网络抖动,那么,在这种情况下,很难计算出精确的观看时长,往往存在较大误差。
例如:观众客户端可能频繁地进出直播间、观众端出现网络问题而掉线、以及服务端出现网络抖动,这些意外情况均会导致观看时长的计算结果错误。
有鉴于此,需要设计一种新的观看时长的计算方法,以克服上述缺陷。
发明内容
本公开实施例提供一种直播观看时长的计算方法及装置,用以在网络环境欠佳的状态下,保证直播观看时长的计算准确性。
公开实施例提供的具体技术方案如下:
第一方面,一种直播观看时长的计算方法,包括:
在观众客户端指示接入直播间时,记录观众客户端进入所述直播间的第一时间戳,并将所述观众客户端的用户标识和所述第一时间戳,作为加密信息返回至所述观众客户端;
定期接收观众客户端发送的携带有所述加密信息的心跳消息,其中,每接收到一次心跳消息,执行以下操作:基于当前时间和所述第一时间戳,计算最新的基础观看时长,以及基于所述最新的基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态;
确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
可选的,基于所述基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,包括:
若对应所述直播间未记录历史观看信息,则直接将已记录的最新的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长;
若对应所述直播间已记录历史观看信息,则获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
可选的,确定所述观众客户端退出直播间,包括:
接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间;或者,
在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间;或者,
在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
可选的,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,包括:
将最后一次接收到的用于保持心跳连接的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长;或者,
将接收到的用于指示退出直播间的请求消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,其中,所述用于指示退出直播间的请求消息采用心跳消息的方式发送。
可选的,获得所述目标观看总时长之后,包括:
在直播结束之后,确定所述观众客户端未再次进入所述直播间时,将所述用户标识和所述目标观看总时长保存至数据库中,以及返回至所述观众客户端。
第二方面,一种直播观看时长的计算装置,包括:
应用程序接口API服务模块,用于在观众客户端指示接入直播间时,记录观众客户端进入所述直播间的第一时间戳,并将所述观众客户端的用户标识和所述第一时间戳,作为加密信息返回至所述观众客户端;
长连接服务模块,用于定期接收观众客户端发送的携带有所述加密信息的心跳消息;
时长计算服务模块,用于每接收到一次心跳消息,执行以下操作:
基于当前时间和所述第一时间戳,计算最新的基础观看时长;
基于所述最新的基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态;
确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
可选的,基于所述基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长时,所述时长计算服务模块用于:
若对应所述直播间未记录历史观看信息,则直接将已记录的最新的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长;
若对应所述直播间已记录历史观看信息,则获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
可选的,确定所述观众客户端退出直播间时,所述时长计算服务模块用于:
接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间;或者,
在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间;或者,
在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
可选的,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长时,所述时长计算服务模块用于:
将最后一次接收到的用于保持心跳连接的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长;或者,
将接收到的用于指示退出直播间的请求消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,其中,所述用于指示退出直播间的请求消息采用心跳消息的方式发送。
可选的,获得所述目标观看总时长之后,所述时长计算服务模块用于:
在直播结束之后,确定所述观众客户端未再次进入所述直播间时,将所述用户标识和所述目标观看总时长保存至数据库中,以及返回至所述观众客户端。
第三方面,一种直播服务器,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如第一方面中任一项所述的方法。
第四方面,一种存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如第一方面中任一项所述的方法。
本公开实施例中,直播服务器记录观众客户端进入直播间的第一时间戳,以及在每次接收到所述观众客户端发送的心跳消息时,基于当前时间和所述第一时间戳,结合所述观众客户端当前进入所述直播间之前,在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,以及确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。这样,通过采用全量计算方式而非增量计算方式,可以令观看时长的计算过程,不依赖于观众客户端发送的各类消息的时序,即使在具有高并发量和高数据量并且网络抖动的环境中,也可以准确计算出观看时长,有效提高了目标观看总时长的计算准确率,进而保证了系统服务的稳定性和可靠性。
附图说明
图1为本公开实施例中计算直播观看时长的详细流程图;
图2为本公开实施例中直播服务器逻辑架构示意图;
图3为本公开实施例中直播服务器实体架构示意图。
具体实施方式
为了在网络环境欠佳的状态下,保证直播观看时长的计算准确性,本公开实施例中,以观众客户端进入直播间的时间戳作为唯一参考标识,来计算直播的观看总时长。
参阅图1所示,本公开实施例中,直播服务器,可以是单一的服务器,也可以是服务器集群。在逻辑上通常划分为应用程序接口(Application Programming Interface,API)服务模块,长连接服务模块和时长计算模块,实际应用中,这三种功能模块可以是由同一硬件完成,例如,中央处理器(Central Processing Unit,CPU)。
下面结合附图对本公开优选的实施方式作出进一步详细说明。
步骤100:观众客户端向直播服务器发送进入直播间请求消息。
具体的,观众客户端可以在上述进入直播间请求消息中,携带观众客户端的用户标识,以及直播间的标识信息(或链接地址)。
本公开实施例中,观众客户端的用户标识,可以是观众客户端在直播间注册的用户名,也可以是观众客户端的设备标识,还可以是观众客户端的IP地址,等等,在此不再赘述。
步骤101:直播服务器将观众客户端连接至相应的直播间。
具体的,直播服务器中的API服务模块,会基于直播间的标识信息(或链接地址),将观众客户端连接至相应的直播间。
在进入直播间之后,直播服务器会抓取直播数据流,推送至观众客户端,这样,观众通过观众客户端,便可以开始观看直播。
步骤102:直播服务器在数据库中,对应用户标识记录观众客户端进入所述直播间的第一时间戳。
可选的,API服务模块,在将观众客户端连接至直接间后,会将用户标识和第一时间戳,通知时长计算服务模块,由时长计算服务模块对应用户标识将上述第一时间戳保存至数据库中。
步骤103:直播服务器向观众客户端返回加密信息,所述加密信息中包含所述用户标识和所述第一时间戳。
步骤104:观众客户端向直播服务器请求启动长连接服务。
具体的,观众客户端会向直播服务器中的长连接服务模块请求启动长连接服务。
步骤105:直播服务器响应启动长连接服务。
步骤106:观众客户端定期向直播服务器发送一次心跳消息,所述心跳消息中携带所述加密信息。
实际应用中,观众客户端会按照设定周期,向直播服务器发送心跳消息,以保持心跳连接,每次发送的心跳消息中,均携带有所述加密信息。
为了便于描述,后续实施例中仅以一次心跳消息为例进行说明。
进一步地,长连接服务模块每次在接收到心跳消息后,会将心跳消息采用异步方式发送至时长计算服务模块,后续所有时长计算操作均由时长计算服务模块执行,将不再赘述。
步骤107:直播服务器基于当前时间和所述第一时间戳,计算最新的基础观看时长。
例如,假设当前时间为15:00,而第一时间戳表征的时间为14:50,则最新的基础观看时长为:10分钟。
实际应用中,在观众客户端进入直播间之后,每次接收到心跳消息,都会计算一次最新的基础观看时长,并对应所述用户标识保存至数据库中,通常情况下,会覆盖掉上次记录的基础观看时长,即只保留一个最新的记录,这样,即使观众客户端因网络抖动原因突然掉线,直播服务器也可以根据保存的数据计算观众客户端一条心跳消息对应的候选观看总时长。
当然,观众客户端进出一次直播间,只对应一个最新的基础观看时长,当观众客户端退出直播间之后(无论是掉线还是主动退出),若再次进入直播间,则直播服务器会重新启动长连接服务,并重新开始对应接收的各条心跳消息,逐条记录最新的基础观看时长。
由于网络环境依赖于硬件资源,会存在抖动现象,因此,在网络环境不佳时,观众客户端可能会反复进出直播间,从而会产生若干基础观看总时长。
本公开实施例中,直播服务器在每次计算出最新的基础观看时长之后,便会去尝试获取所述观众客户端在所述直播间中的历史观看信息,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态。
若对应所述直播间未记录有历史观看信息,则说明网络环境一直稳定,所述观察客户端在执行步骤100时,是初次进入所述直播间,则直播服务器在执行步骤107之后,可以直接将最新记录的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长。
若对应所述直播间已记录有历史观看信息,则说明网络环境可能存在抖动,所述观察客户端在执行步骤100时,不是初次进入所述直播间,则直播服务器会获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,计算本次接收到的心跳消息对应的候选观看总时长。
本公开实施例中,以非初次接入为例进行说明,将不再赘述。
步骤108:直播服务器获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长。
步骤109:直播服务器基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
例如:假设本次心跳消息对应的最新的基础观看时长为:10分钟。
而在当前进入所述直播间之前,观众客户端曾经两次进入所述直播间,各自对应的历史基础观看时长分别为:5分钟和6分钟,那么,本次接收的心跳消息对应的候选观看总时长为:10+5+6=11分钟。
每接收到一次心跳消息,直播服务器便会更新一次基础观看时长,以及计算一次候选观看总时长,这样,即使观众客户端由于网络原因突然掉线,直播服务器还是能够准确获知观众客户端准确的直播观看时长。
步骤110:直播服务器在数据库中,保存本次接收到的心跳消息对应的候选观看总时长。
具体的,直播服务器会在数据库中,对应所述用户标识以及所述心跳消息的标识信息,保存所述候选观看总时长。
步骤111:观众客户端向直播服务器发送退出直播间请求消息。
本公开实施例中,观众客户端向直播服务器发送的退出直播间请求消息,是采用心跳消息的方式发送的,即可将用于指示退出直播间的请求消息,视为一种特殊的心跳消息。
步骤112:直播服务器采用如步骤107-步骤109的方式,再次计算并保存最新的候选观看总时长。
具体的,即将退出直播间请求消息视为一次心跳消息,再次采用相同的方式计算退出直播间请求消息对应的侯选观看总时长,假设,再次计算的候选观看总时长为:12分钟。
步骤113:直播服务器将最后一次接收的心跳消息对应的候选观看总时长,作为目标观看总时长。
实际应用中,直播服务器会在确定所述观众客户端退出直播间后,开始计算本次进出直播间对应的目标观看总时长,而本公开实施例中,直播服务器确定所述观众客户端退出直播间的情况,包含但不限于以下三种:
情况1:接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间。
具体的,即是上述步骤111中的情况,直播服务器接收到采用心跳消息的方式发送的退出直播间请求消息时,将所述退出直播间请求消息作为最后一次接收到的心跳消息,计算并保存相应的侯选观看总时长,以及将所述退出直播间请求消息对应的选观看总时长,作为所述观众客户端在所述直播间的目标观看总时长,如,目标观看总时长为:12分钟。
情况2:在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
由于存在网络抖动等现象,观众客户端可能会瞬间掉线,那么,当观众客户端再次接入直播间后,会再次向直播服务器发送进入直播间请求消息,因此,当直播服务器在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间时,会确定所述观众客户端之前已退出直播间,则会将观众客户端再次接入直播间之前,最后一次接收到的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
如,假设直播服务器在步骤106中接收到心跳消息并计算了相应的候选观看总时长后,观众客户端掉线,并再次接入直播间,那么,直播服务器会将步骤106中接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的最新的目标观看总时长,即11分钟。
当然,观众客户端再次进入直播间后,直播服务器会重新启动长连接服务,并再次接收观众客户端发送的心跳消息,那么,即会产生新的候选观看总时长,以及新的目标观看总时长,具体计算方式如上述过程相同,在此不再赘述。
情况3:在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间。
由于存在网络抖动等现象,观众客户端可能会瞬间掉线,那么,当观众客户端未再次接入直播间,则直播服务器不会再接收到任何来自于观众客户端的消息,因此,当直播服务器在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息时,即确定所述观众客户端之前已退出直播间,则会将最后一次接收到的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
如,假设直播服务器在步骤106中接收到心跳消息并计算了相应的候选观看总时长后,观众客户端掉线,并未再次接入直播间,那么,直播服务器会将步骤106中接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的最新的目标观看总时长,即11分钟。
步骤114:直播服务器通知观众客户端已退出直播间。
在直播结束之后,如果直播服务器确定所述观众客户端未再次进入所述直播间时,将所述用户标识和所述目标观看总时长保存至数据库中,以及返回至所述观众客户端。
另一方面,如果直播结束之前,直播服务器确定所述观众客户端又再次进入所述直播间,则可以采用相同方式计算最新的目标观看总时长,在此不再赘述。
在上述实施例中,假设仅在步骤106中接收了一次用于保持心跳连接的心跳消息,可见,步骤106中接收的心跳消息,即是最后一次接收到的心跳消息,那么,通过上述实施例可以获知,步骤109中计算获得的候选观看总时长,和步骤112中计算获得的候选观看总时长,具体计算过程相同,区别之处仅在于,两者相差的时长为:在步骤106中接收心跳消息的时间点和在步骤111中接收退出直播间请求消息的时间点之间的时差。这一时差导致的两次计算的候选观看总时长之间的误差,在实际应用中,可以忽略不计。
因此,本公开实施例中,无论网络环境如何,都不会影响直播服务器对于目标观看总时长的计算,即使观众客户端在观看直播的过程中,由于网络环境不佳而反复进出直播间,直播服务器只需要在观众客户端每次进入直播间时,记录进入直播间的第一时间戳,并在每次接收到心跳消息时,基于第一时间戳计算相应的侯选观看时长,即可以在确定用户退出直播间时,将最后一次接收心跳消息对应的候选观看时长作为目标观看时长。
其中,无论直播服务器是否接收到观众客户端发送的用于指示退出直播间的请求消息(即特殊的心跳消息),最终计算获得的目标观看总时长的准确率,均符合后续的大数据分析的需求。
基于上述实施例,参阅图2所示,本公开实施例中,直播服务器包括:
API服务模块20,用于在观众客户端指示接入直播间时,记录观众客户端进入所述直播间的第一时间戳,并将所述观众客户端的用户标识和所述第一时间戳,作为加密信息返回至所述观众客户端;
长连接服务模块21,用于定期接收观众客户端发送的携带有所述加密信息的心跳消息;
时长计算服务模块22,用于每接收到一次心跳消息,执行以下操作:基于当前时间和所述第一时间戳,计算最新的基础观看时长;基于所述最新的基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态;
确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
可选的,基于所述基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长时,所述时长计算服务模块22用于:
若对应所述直播间未记录历史观看信息,则直接将已记录的最新的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长;
若对应所述直播间已记录历史观看信息,则获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
可选的,确定所述观众客户端退出直播间时,所述时长计算服务模块22用于:
接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间;或者,
在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间;或者,
在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
可选的,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长时,所述时长计算服务模块22用于:
将最后一次接收到的用于保持心跳连接的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长;或者,
将接收到的用于指示退出直播间的请求消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,其中,所述用于指示退出直播间的请求消息采用心跳消息的方式发送。
可选的,获得所述目标观看总时长之后,所述时长计算服务模块22用于:
在直播结束之后,确定所述观众客户端未再次进入所述直播间时,将所述用户标识和所述目标观看总时长保存至数据库中,以及返回至所述观众客户端。
基于同一发明构思,参阅图3所示,本公开实施例提供一种直播服务器,存储器30,用于存储可执行指令;
处理器31,用于读取并执行所述存储器中存储的可执行指令,以执行如下步骤:
在观众客户端指示接入直播间时,记录观众客户端进入所述直播间的第一时间戳,并将所述观众客户端的用户标识和所述第一时间戳,作为加密信息返回至所述观众客户端;
定期接收观众客户端发送的携带有所述加密信息的心跳消息,其中,每接收到一次心跳消息,执行以下操作:基于当前时间和所述第一时间戳,计算最新的基础观看时长,以及基于所述最新的基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态;
确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
可选的,基于所述基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长时,所述处理器31包括:
若对应所述直播间未记录历史观看信息,则直接将已记录的最新的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长;
若对应所述直播间已记录历史观看信息,则获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
可选的,确定所述观众客户端退出直播间时,所述处理器31用于包括:
接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间;或者,
在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间;或者,
在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
可选的,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长时,所述处理器31用于:
将最后一次接收到的用于保持心跳连接的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长;或者,
将接收到的用于指示退出直播间的请求消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,其中,所述用于指示退出直播间的请求消息采用心跳消息的方式发送。
可选的,获得所述目标观看总时长之后,所述处理器31用于:
在直播结束之后,确定所述观众客户端未再次进入所述直播间时,将所述用户标识和所述目标观看总时长保存至数据库中,以及返回至所述观众客户端。
基于同一发明构思,本公开实施例提供一种存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如上述实施例中直播服务器执行的任意一种方法。
综上所述,本公开实施例中,直播服务器记录观众客户端进入直播间的第一时间戳,以及在每次接收到所述观众客户端发送的心跳消息时,基于当前时间和所述第一时间戳,结合所述观众客户端当前进入所述直播间之前,在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,以及确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。这样,通过采用全量计算方式而非增量计算方式,可以令观看时长的计算过程,不依赖于观众客户端发送的各类消息的时序,即使在具有高并发量和高数据量并且网络抖动的环境中,也可以准确计算出观看时长,有效提高了目标观看总时长的计算准确率,进而保证了系统服务的稳定性和可靠性。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开实施例进行各种改动和变型而不脱离本公开实施例的精神和范围。这样,倘若本公开实施例的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种直播观看时长的计算方法,其特征在于,包括:
在观众客户端指示接入直播间时,记录观众客户端进入所述直播间的第一时间戳,并将所述观众客户端的用户标识和所述第一时间戳,作为加密信息返回至所述观众客户端;
定期接收观众客户端发送的携带有所述加密信息的心跳消息,其中,每接收到一次心跳消息,执行以下操作:基于当前时间和所述第一时间戳,计算最新的基础观看时长,以及基于所述最新的基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态;
确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
2.如权利要求1所述的方法,其特征在于,基于所述基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,包括:
若对应所述直播间未记录历史观看信息,则直接将已记录的最新的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长;
若对应所述直播间已记录历史观看信息,则获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
3.如权利要求1或2所述的方法,其特征在于,确定所述观众客户端退出直播间,包括:
接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间;或者,
在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间;或者,
在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
4.如权利要求3所述的方法,其特征在于,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,包括:
将最后一次接收到的用于保持心跳连接的心跳消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长;或者,
将接收到的用于指示退出直播间的请求消息对应的候选观看总时长,作为观众客户端本次进入直播间的目标观看总时长,其中,所述用于指示退出直播间的请求消息采用心跳消息的方式发送。
5.如权利要求1或2所述的方法,其特征在于,获得所述目标观看总时长之后,包括:
在直播结束之后,确定所述观众客户端未再次进入所述直播间时,将所述用户标识和所述目标观看总时长保存至数据库中,以及返回至所述观众客户端。
6.一种直播观看时长的计算装置,其特征在于,包括:
应用程序接口API服务模块,用于在观众客户端指示接入直播间时,记录观众客户端进入所述直播间的第一时间戳,并将所述观众客户端的用户标识和所述第一时间戳,作为加密信息返回至所述观众客户端;
长连接服务模块,用于定期接收观众客户端发送的携带有所述加密信息的心跳消息;
时长计算服务模块,用于每接收到一次心跳消息,执行以下操作:基于当前时间和所述第一时间戳,计算最新的基础观看时长;基于所述最新的基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长,所述历史观看信息用于表征所述观众客户端在当前进入所述直播间之前,在所述直播间中的直播观看状态;
确定所述观众客户端退出所述直播间时,将最后一次接收的心跳消息对应的候选观看总时长,作为观众客户端在所述直播间的目标观看总时长。
7.如权利要求6所述的装置,其特征在于,基于所述基础观看时长,结合所述观众客户端在所述直播间中的历史观看信息,计算本次接收到的心跳消息对应的候选观看总时长时,所述时长计算服务模块用于:
若对应所述直播间未记录历史观看信息,则直接将已记录的最新的基础观看时长,作为本次接收到的心跳消息对应的候选观看总时长;
若对应所述直播间已记录历史观看信息,则获取所述观众客户端在当前进入所述直播间之前,历次进出所述直播间时各自对应的历史基础观看时长,并基于获得的各个历史基础观看时长,以及已记录的最新的基础观看时长,进行累积计算,获得本次接收到的心跳消息对应的候选观看总时长。
8.如权利要求6或7所述的装置,其特征在于,确定所述观众客户端退出直播间时,所述时长计算服务模块用于:
接收到所述观众客户端发送的用于指示退出直播间的请求消息时,确定所述观众客户端当前退出直播间;或者,
在接收心跳消息的过程中,超过设定时长未接收到最新的心跳消息,则确定所述观众当前已退出直播间;或者,
在接收心跳消息的过程中,获知所述观众客户端再次指示接入直播间,则确定所述观众客户端之前已退出直播间。
9.一种直播服务器,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如权利要求1至5中任一项所述的方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010694525.5A CN111901617B (zh) | 2020-07-17 | 2020-07-17 | 一种直播观看时长的计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010694525.5A CN111901617B (zh) | 2020-07-17 | 2020-07-17 | 一种直播观看时长的计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901617A true CN111901617A (zh) | 2020-11-06 |
CN111901617B CN111901617B (zh) | 2022-07-08 |
Family
ID=73189476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010694525.5A Active CN111901617B (zh) | 2020-07-17 | 2020-07-17 | 一种直播观看时长的计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901617B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311629A (zh) * | 2020-10-30 | 2021-02-02 | 广州华多网络科技有限公司 | 数据处理方法、装置、服务器及计算机可读存储介质 |
CN113068061A (zh) * | 2021-04-01 | 2021-07-02 | 天九共享网络科技集团有限公司 | 直播时长的确定方法、装置、存储介质和电子设备 |
CN114727121A (zh) * | 2021-01-06 | 2022-07-08 | 厦门蝉羽网络科技有限公司 | 一种直播间观众平均停留时长获取方法、介质、系统和设备 |
CN114866795A (zh) * | 2022-04-28 | 2022-08-05 | 百果园技术(新加坡)有限公司 | 一种直播间数据处理方法、装置及直播平台 |
CN114885219A (zh) * | 2022-05-05 | 2022-08-09 | 北京达佳互联信息技术有限公司 | 任务执行状态监测方法、装置、电子设备及存储介质 |
CN115604532A (zh) * | 2022-11-30 | 2023-01-13 | 深圳市华曦达科技股份有限公司(Cn) | 一种指定时段观看直播用户统计方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747331A (zh) * | 2013-12-23 | 2014-04-23 | 乐视致新电子科技(天津)有限公司 | 一种观看视频时的交互方法及装置 |
CN105933732A (zh) * | 2016-06-14 | 2016-09-07 | 天脉聚源(北京)传媒科技有限公司 | 一种视频播放时长统计方法及系统 |
CN107277624A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 时长计算方法及其装置 |
US20190089612A1 (en) * | 2009-12-29 | 2019-03-21 | Iheartmedia Management Services, Inc. | Media Stream Monitor |
CN110446079A (zh) * | 2019-07-03 | 2019-11-12 | 北京达佳互联信息技术有限公司 | 获取观看时长的方法、装置、电子设备及存储介质 |
CN111107389A (zh) * | 2019-12-31 | 2020-05-05 | 广州酷狗计算机科技有限公司 | 确定观看直播时长的方法、装置和系统 |
CN111131127A (zh) * | 2018-10-30 | 2020-05-08 | 武汉斗鱼网络科技有限公司 | 一种基于直播平台的通信方法及相关装置 |
CN111372130A (zh) * | 2020-03-02 | 2020-07-03 | 北京字节跳动网络技术有限公司 | 一种用户在线时长统计方法、装置、电子设备及存储介质 |
-
2020
- 2020-07-17 CN CN202010694525.5A patent/CN111901617B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190089612A1 (en) * | 2009-12-29 | 2019-03-21 | Iheartmedia Management Services, Inc. | Media Stream Monitor |
CN103747331A (zh) * | 2013-12-23 | 2014-04-23 | 乐视致新电子科技(天津)有限公司 | 一种观看视频时的交互方法及装置 |
CN105933732A (zh) * | 2016-06-14 | 2016-09-07 | 天脉聚源(北京)传媒科技有限公司 | 一种视频播放时长统计方法及系统 |
CN107277624A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 时长计算方法及其装置 |
CN111131127A (zh) * | 2018-10-30 | 2020-05-08 | 武汉斗鱼网络科技有限公司 | 一种基于直播平台的通信方法及相关装置 |
CN110446079A (zh) * | 2019-07-03 | 2019-11-12 | 北京达佳互联信息技术有限公司 | 获取观看时长的方法、装置、电子设备及存储介质 |
CN111107389A (zh) * | 2019-12-31 | 2020-05-05 | 广州酷狗计算机科技有限公司 | 确定观看直播时长的方法、装置和系统 |
CN111372130A (zh) * | 2020-03-02 | 2020-07-03 | 北京字节跳动网络技术有限公司 | 一种用户在线时长统计方法、装置、电子设备及存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311629A (zh) * | 2020-10-30 | 2021-02-02 | 广州华多网络科技有限公司 | 数据处理方法、装置、服务器及计算机可读存储介质 |
CN112311629B (zh) * | 2020-10-30 | 2022-04-26 | 广州华多网络科技有限公司 | 数据处理方法、装置、服务器及计算机可读存储介质 |
CN114727121A (zh) * | 2021-01-06 | 2022-07-08 | 厦门蝉羽网络科技有限公司 | 一种直播间观众平均停留时长获取方法、介质、系统和设备 |
CN114727121B (zh) * | 2021-01-06 | 2024-04-23 | 厦门蝉羽网络科技有限公司 | 一种直播间观众平均停留时长获取方法、介质、系统和设备 |
CN113068061A (zh) * | 2021-04-01 | 2021-07-02 | 天九共享网络科技集团有限公司 | 直播时长的确定方法、装置、存储介质和电子设备 |
CN113068061B (zh) * | 2021-04-01 | 2022-12-30 | 天九共享网络科技集团有限公司 | 直播时长的确定方法、装置、存储介质和电子设备 |
CN114866795A (zh) * | 2022-04-28 | 2022-08-05 | 百果园技术(新加坡)有限公司 | 一种直播间数据处理方法、装置及直播平台 |
CN114866795B (zh) * | 2022-04-28 | 2024-01-26 | 百果园技术(新加坡)有限公司 | 一种直播间数据处理方法、装置及直播平台 |
CN114885219A (zh) * | 2022-05-05 | 2022-08-09 | 北京达佳互联信息技术有限公司 | 任务执行状态监测方法、装置、电子设备及存储介质 |
CN114885219B (zh) * | 2022-05-05 | 2023-08-29 | 北京达佳互联信息技术有限公司 | 任务执行状态监测方法、装置、电子设备及存储介质 |
CN115604532A (zh) * | 2022-11-30 | 2023-01-13 | 深圳市华曦达科技股份有限公司(Cn) | 一种指定时段观看直播用户统计方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111901617B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111901617B (zh) | 一种直播观看时长的计算方法及装置 | |
US11665378B2 (en) | Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision | |
EP3291551B1 (en) | Image delay detection method and system | |
CN108322350B (zh) | 业务监控方法及装置和电子设备 | |
CN109558065B (zh) | 数据删除方法及分布式存储系统 | |
CN111970150B (zh) | 日志信息的处理方法、装置、服务器及存储介质 | |
CN109144782B (zh) | 一种数据恢复方法及装置 | |
EP3754998A1 (en) | Streaming media quality monitoring method and system | |
CN107277624B (zh) | 时长计算方法及其装置 | |
CN113296666A (zh) | 主播曝光数据上报方法、装置、终端设备及存储介质 | |
CN117061049A (zh) | 数据上报方法、装置、设备和存储介质 | |
CN110070379B (zh) | 一种消息传输方法、装置及服务器 | |
CN113660540B (zh) | 图像信息处理方法、系统、显示方法、装置及存储介质 | |
CN114845142B (zh) | 数据记录方法、装置、电子设备及存储介质 | |
CN110913240B (zh) | 视频截取方法、装置、服务器以及计算机可读存储介质 | |
CN116095534A (zh) | 一种采集测试设备数据的方法、装置及存储介质 | |
CN110769285B (zh) | 一种播放资源的播放量估测方法及播放量估测装置 | |
CN112764988A (zh) | 一种数据分段采集方法及装置 | |
CN111163327B (zh) | 统计在线账户数量的方法和装置 | |
CN113992990A (zh) | 资源播放时长的确定方法、装置、电子设备及存储介质 | |
CN115002058A (zh) | 一种信息处理方法和相关装置 | |
CN116684027A (zh) | 一种数据处理方法及装置 | |
JP6662698B2 (ja) | ユーザ状態推定装置 | |
CN117812288A (zh) | 一种图片播放方法及系统、云存储设备、终端设备 | |
CN116126653A (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 |