CN111726650B - 视频直播方法及装置、计算机存储介质 - Google Patents
视频直播方法及装置、计算机存储介质 Download PDFInfo
- Publication number
- CN111726650B CN111726650B CN202010612037.5A CN202010612037A CN111726650B CN 111726650 B CN111726650 B CN 111726650B CN 202010612037 A CN202010612037 A CN 202010612037A CN 111726650 B CN111726650 B CN 111726650B
- Authority
- CN
- China
- Prior art keywords
- data stream
- live
- data
- sub
- terminal
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23109—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (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是本申请实施例提供的一种直播服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种视频直播系统的结构示意图,如图1所示,该视频直播系统10可以包括:直播服务器100、观众终端101和直播间的主播终端102,直播服务器100可以管理多个直播间,每个直播间可以有至少一个主播终端,图1仅示出了一个直播间的一个主播终端102。每个直播间均可以有多个观众终端101,图1仅示出该主播终端102所在的直播间的两个观众终端101。在本申请实施例中,直播间的主播终端指通过直播账号登录直播客户端以进行直播的终端;直播间的观众终端指访问直播间以获取并显示直播内容的终端。
可选地,直播服务器100可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心等,本申请实施例对此不做限定。观众终端101可以为智能手机、电脑、电视、多媒体播放器和电子阅读器等。主播终端102可以是包含摄像头和音频录入装置(例如话筒)的终端设备,比如智能手机、平板电脑、台式电脑和笔记本电脑等。直播服务器100和观众终端101以及主播终端102之间均可以通过有线网络或无线网络建立连接。如图1所示,在本申请实施例中,以直播间的主播终端102为台式电脑,观众终端101为智能手机为例进行说明。
需要说明的是,主播终端102上安装有直播客户端,主播终端102通过直播客户端与直播服务器100连接,该直播服务器100为直播客户端对应的服务器。观众终端101上可以安装有直播客户端,并通过直播客户端访问直播间;或者,也可以并未安装有直播客户端,而通过网页访问直播间。
图2是本申请实施例提供的一种视频直播方法的流程图。该视频直播方法可以用于图1所示的视频直播系统10中的直播服务器100,如图2所示,该视频直播方法可以包括:
步骤201、接收主播终端发送的直播数据流。
步骤202、在接收观众终端发送的直播数据流的获取请求后,向观众终端发送直播数据流中的第一子数据流。
步骤203、更新观众终端对应的目标定位标识;其中,目标定位标识用于指示服务器最新发送至观众终端的子数据流在直播数据流中的位置。
步骤204、根据目标定位标识,向观众终端发送直播数据流中第一子数据流之后的第二子数据流。
需要说明的是,图2针对一个观众终端对本申请实施例提供的视频直播方法进行介绍。在存在与服务器通信连接的多个观众终端时,图2中所述的观众终端可以指该多个观众终端中的每个观众终端,故针对每个观众终端服务器均可以执行上述步骤202至步骤204。
综上所述,本申请实施例提供的视频直播方法中,服务器可以根据观众终端的获取请求,在向观众终端发送直播数据流中的第一子数据流后,更新该观众终端对应的目标定位标识,进而根据该目标定位标识,向该观众终端发送该直播数据流中第一子数据流之后的第二子数据流。如此一来,即使存在多个观众终端,服务器也可以根据每个观众终端对应的目标定位标识确定直播数据流中各个观众终端还需获取的数据,服务器无需为每个观众终端均设置单独的存储空间,就可以确定向各个观众终端发送直播数据流中的哪些数据。因此,降低了服务器的存储资源的浪费。
图3是本申请实施例提供的另一种视频直播方法的流程图。该视频直播方法可以用于图1所示的视频直播系统10中的直播服务器100,如图3所示,该视频直播方法可以包括:
步骤301、接收主播终端发送的直播数据流。
步骤302、获取多个观众终端中每个观众终端对应的目标定位标识;其中,该每个观众终端对应的目标定位标识用于指示:服务器最新发送至该每个观众终端的子数据流在直播数据流中的位置。
步骤303、根据各个观众终端对应的目标定位标识,分别向各个观众终端发送其对应的后续子数据流。
综上所述,本申请实施例提供的视频直播方法中,服务器可以获取多个观众终端中每个观众终端对应的目标定位标识,进而根据各个观众终端对应的目标定位标识,分别向各个观众终端发送其对应的后续子数据流。如此一来,服务器无需为每个观众终端均设置单独的存储空间,就可以确定需向各个观众终端发送直播数据流的后续子数据流。因此,降低了服务器的存储资源的浪费。
图4是本申请实施例提供的再一种视频直播方法的流程图。该视频直播方法可以用于图1所示的视频直播系统10中的直播服务器100,如图4所示,该视频直播方法可以包括:
步骤401、接收主播终端发送的直播数据流。
主播终端的用户在需要进行直播时,可以触发主播终端登录直播客户端,与直播服务器建立通信连接并开始直播。主播终端在直播过程中可以通过摄像头采集图像,且通过麦克风采集音频,以得到直播数据流。该直播数据流可以包括连续的多帧数据,每帧数据可以包括一帧图像以及对应的音频。主播终端可以通过其与直播服务器的通信连接,将获取的直播数据流发送至直播服务器,相应地直播服务器通过该通信连接接收主播终端发送的直播数据流。需要说明的是,本申请中所述的主播终端可以为直播服务器管理的任一直播间的主播终端。
示例地,主播终端可以在每获取到多帧数据之后,生成包括该多帧数据的一个子数据流,并向直播服务器发送该子数据流。主播终端持续进行该获取生成和发送子数据流的过程,以实现向直播服务器发送直播数据流。如该子数据流可以包括至少一个画面组(Group of Pictures,GOP),每个GOP可以由主播终端对连续的多帧画面编码得到。
步骤402、在每接收到主播终端发送的直播数据流中的一帧数据后,将最新接收的一帧数据存储至目标存储空间。
任一主播终端在与直播服务器建立通信连接时,直播服务器均可以为该主播终端分配一个目标存储空间。该目标存储空间用于存储对应的主播终端发送的直播数据流。可选地,直播服务器可以在为任一主播终端分配目标存储空间后,存储该主播终端的直播间的标识与为该主播终端分配的目标存储空间的对应关系,进而在某主播终端发送直播数据流后,服务器可以根据该对应关系将该直播数据流存储至对应的目标存储空间。如直播服务器在每次接收到主播终端发送的直播数据流中的数据(如上述的一个子数据流)后,均可以将最新接收的该数据存储至目标存储空间。
可选地,直播服务器在每次接收到主播终端发送的多帧数据后,也可以按照该多帧数据的生成时刻从早到晚的顺序,在目标存储空间中依次存储该多帧数据。例如,该多帧数据中每帧数据可以携带其生成顺序标识,每帧数据的生成顺序标识用于指示在该多帧数据中该帧数据的生成先后顺序,进而直播服务器在每次接收到多帧数据后,可以根据该多帧数据的生成先后顺序依次存储该多帧数据。
步骤403、采用最新接收的一帧数据携带的定位标识更新直播数据流的数据上传标识。
其中,该数据上传标识用于指示直播服务器最新接收到的数据(也即是主播终端最新发送至直播服务器的数据)在直播数据流中的位置。
本申请实施例中,直播数据流中的每一帧数据可以携带有一个定位标识,定位标识用于指示对应的一帧数据在直播数据流中的位置。示例地,每帧数据的定位标识可以为时间戳或全局唯一标识。根据直播数据流中每帧数据的定位标识即可在直播数据流定位该帧数据,也即确定直播数据流中该定位标识对应的该帧数据。
本申请实施例中,直播数据流中每帧数据携带的定位标识可以由直播服务器生成,也可以由主播终端生成。该定位标识为全局位移标识时,该全局唯一标识可以为主播终端或直播服务器生成的一串特定的字符。该定位标识为时间戳时,根据生成该定位标识的设备的不同,可以采用不同的时间戳生成该定位标识。
示例地,该定位标识由主播终端生成时,主播终端在每生成一帧数据时,均可以根据该帧数据的生成时间生成该帧数据的定位标识。例如,主播终端可以将生成该帧数据的时间作为时间戳,进而将该时间戳确定为该帧数据的定位标识。又例如,主播终端可以根据各帧数据的生成时间对该各帧数据进行排序,进而将每帧数据的序号作为时间戳,进而将该时间戳确定为该帧数据的定位标识。如直播数据流中的第一帧数据的定位标识可以为0,第二帧数据的定位标识可以为1,以此类推。又示例地,该定位标识由直播服务器生成时,直播服务器在每接收到主播终端发送的一帧数据时,均可以根据该帧数据的接收时间生成该帧数据的定位标识。需要说明的是,直播服务器生成定位标识的方式可以参考上述主播终端生成定位标识的方式中的示例,本申请实施例不再赘述。
可选地,在每帧数据携带的定位标识由主播终端根据该帧数据的生成时间生成时,可以直接用每帧数据的定位标识作为该帧数据的生成顺序标识。
本申请实施例中,直播数据流中也可以每个子数据流携带一个定位标识,该定位标识用于指示对应的子数据流在直播数据流中的位置。对于每个子数据流携带一个定位标识的情况可以参考每帧数据均携带一个定位标识的相关介绍,本申请实施例不再赘述。
本申请实施例中,直播服务器在每次接收到主播终端发送的直播数据流中的数据时,均可以更新直播数据流的数据上传标识,以更新直播服务器最新接收到的数据在直播数据流中的位置。例如,直播服务器在每接收到主播终端发送的直播数据流中的一帧数据后,均可以确定该帧数据为直播服务器最新接收的一帧数据,进而可以采用该帧数据携带的定位标识更新直播数据流的数据上传标识(图4以此种方式为例)。又例如,直播服务器也可以在每次接收到主播终端发送的一个子数据流后,将该子数据流中生成时间最晚的一帧数据确定为最新接收的一帧数据,进而采用该帧数据携带的定位标识更新直播数据流的数据上传标识。又例如,每个子数据流携带一个定位标识,直播服务器可以在每次接收到主播终端发送的一个子数据流后,采用该子数据流携带的定位标识更新直播数据流的数据上传标识。
步骤404、删除目标存储空间中存储的数据流中位于最新接收的一帧数据之前目标时长前的数据。
本申请实施例中,该目标存储空间用于存储直播数据流中最新的某固定时长的数据流,该直播数据流中最新的该固定时长的数据流可以包括:直播数据流中直播服务器最新接收的数据以及该数据之前目标时长内的数据流。该目标时长可以为该固定时长与直播服务器最新接收的数据在直播数据流中的时长的差值。在目标存储空间中存储的某数据不属于该直播数据流中最新的该固定时长的数据流时,直播服务器便可以删除该数据,也即是直播服务器可以删除直播数据流中位于直播服务器最新接收的数据之前目标时长前的数据。示例地,当目标存储空间中存储有直播数据流中最开始的该固定时长内的数据流之后,后续直播服务器可以在每次接收到主播终端发送的数据后,将该数据存入目标存储空间,且删除目标存储空间中存储时间最早的与该数据时长相同的数据。示例地,该固定时长可以为30秒。若主播终端每次向直播服务器发送0.5秒的数据,则直播数据流中最新的该固定时长的数据流可以包括:直播数据流中直播服务器最新接收的0.5秒的数据以及该数据之前29.5秒内的数据流,也即是上述目标时长为29.5秒。若主播终端每次向直播服务器发送15帧数据,则直播数据流中最新的该固定时长的数据流可以包括:直播数据流中直播服务器最新接收的15帧数据以及该15帧数据之前目标时长内的数据流,该目标时长可以为30秒与15帧数据的时长的时间差。需要说明的是,本申请实施例中直播数据流中某数据的时长可以指:按照固定的视频播放帧率播放直播数据流对应的视频时,该数据中的图像的展示时长。该视频播放帧率可以与主播终端获取图像的速率相同。如直播数据流中的一帧数据包括一帧图像及对应的音频,主播终端按照25帧/秒的速率获取数据,且观众终端按照25帧/秒的帧率播放直播数据流对应的视频,则每帧数据中的图像可以展示1/25秒,直播数据流中每帧数据的时长可以为1/25秒。
在直播服务器接收主播终端发送的直播数据流中前30秒内的数据时,直播服务器可以将接收的数据均存储至目标存储空间。之后,若直播服务器接收主播终端发送的该直播数据流中30秒之后的五帧数据,则直播服务器可以将该五帧数据存入目标存储空间,且删除目标存储空间中存储的直播数据流中的前五帧数据。若直播服务器接收该直播数据流中第31秒到第35秒的数据流,则该直播服务器可以将该第31秒到第35秒的数据流存入目标存储空间,且删除目标存储空间中存储的第1秒到第5秒的数据流。
本申请实施例以该固定时长为30秒为例进行解释说明。可选地,该目标时长可以任意更改,如也可以为15秒或者50秒或者其他值,本申请实施例不做限定。
本申请实施例中以目标存储空间中仅存储直播数据流中固定时长的数据流,如此可以节约直播服务器的存储资源。可选地,目标存储空间也可以用于存储主播终端发送的全部的直播数据流,本申请实施例不做限定。
可选地,当目标存储空间中存储的数据达到老化时长后,直播服务器可以删除该数据。例如,在每次向目标存储空间中存入数据时,均可以开始计时,以确定该数据在目标存储空间的已存储的时长,当该时长达到老化时长时,直播服务器便可以删除该数据,以进一步节约直播服务器的存储资源。
步骤405、接收观众终端发送的直播数据流的获取请求。
观众终端可以启动直播客户端,以与直播服务器建立连接,进而显示有主播终端进行直播的各个直播间的访问入口。观众终端的用户在需要观看某个直播间的直播视频时,可以点击该直播间的访问入口,以触发该观众终端生成该直播间的直播数据流的获取请求,进而向直播服务器发送该获取请求。相应地,直播服务器可以接收该获取请求,进而根据该获取请求向观众终端发送直播数据流,以使该观众终端访问该直播间。需要说明的是,本申请中所述的观众终端可以为直播服务器管理的任一直播间的任一观众终端,该观众终端可以与上述的主播终端位于同一直播间。
可选地,观众终端发送的获取请求可以包括直播间的标识。直播服务器在接收到某获取请求后,可以根据该获取请求中的直播间的标识,确定该获取请求用于请求获取该直播间的主播终端发送的直播数据流。可选地,观众终端发送的获取请求可以包括该获取请求的生成时刻,也即是观众终端生成该获取请求的时刻。
步骤406、向观众终端发送目标存储空间中存储的数据流中的第一子数据流。
直播服务器在接收到观众终端发送的获取请求后,可以确定直播数据流中当前需要向该观众终端发送的数据,并将该数据发送至观众终端。为了便于描述,本申请实施例中将直播服务器在接收到观众终端发送的获取请求后,当前需要向观众终端发送的数据称为第一子数据流。
在第一子数据流的第一种确定方式中,直播服务器接收观众终端发送的获取请求之后,可以根据直播数据流中的数据上传标识确定第一子数据流。
在第一种可选方式中,主播终端向直播服务器发送的每个子数据流携带一个定位标识,且采用子数据流携带的定位标识更新数据上传标识,此时数据上传标识指示最新接收的一个子数据流在直播数据流中的位置。对于此种情况,直播服务器可以仅将直播数据流中数据上传标识所指示位置处的数据确定为第一子数据流。也即是,直播服务器可以仅将直播数据流中最新接收的一个子数据流确定为当前需要向观众终端发送的数据。
在第二种可选方式中,直播服务器可以将接收的直播数据流中数据上传标识所指示位置处的数据及之后的数据确定为第一子数据流。示例地,直播服务器可以将直播数据流中数据上传标识所指示位置处的数据及之后辅助时长内的数据确定为第一子数据流。又示例地,直播服务器可以将直播数据流中数据上传标识所指示位置处的数据及之后至少一帧数据确定为第一子数据流。需要说明的是,本申请实施例中所述的直播数据流中某数据(如数据a)之后某一时长内的数据指的是:主播终端在获取该数据a之后该时长内获取的数据。
在第三种可选方式中,直播服务器可以将数据上传标识所指示位置处的数据及之前的参考数据确定为第一子数据流。示例地,该参考数据可以包括直播数据流中数据上传标识所指示位置之前参考时间内的数据。需要说明的是,本申请实施例中所述的直播数据流中某数据(如数据a)之前某一时长内的数据指的是:主播终端在获取该数据a之前该时长内获取的数据。又示例地,该参考数据可以包括直播数据流中数据上传标识所指示位置之前至少一帧数据,该至少一帧数据的帧数可以随意设定。需要说明的是,对于该第二种可选方式和第三种可选方式,该数据上传标识可以为直播数据流中一帧数据携带的定位标识,或者也可以为一个子数据流携带的定位标识。
在第一子数据流的第二种确定方式中,观众终端向直播服务器发送的获取请求携带该获取请求的生成时刻。直播服务器可以将接收的直播数据流中该获取请求的生成时刻之后的子数据流,确定为第一子数据流。需要说明的是,直播数据流中该获取请求的生成时刻之后的子数据流包括:直播数据流中主播终端在该生成时刻之后生成的数据。在第一子数据流的第二种确定方式中,直播服务器还需获取主播终端发送的直播数据流中的各帧数据的生成时刻,以确定该直播数据流中该获取请求的生成时刻之后的数据。例如该每帧数据均可以携带主播终端生成该帧数据的时刻。
在第一子数据流的第三种确定方式中,直播服务器接收观众终端发送的获取请求之后,可以将直播数据流中在接收到该获取请求之后接收的数据流确定为第一子数据流。
需要说明的是,上述仅针对在整个直播数据流中确定第一子数据流的方式进行介绍,图4以在直播数据流中存储在目标存储空间中的数据流中确定第一子数据流为例进行解释说明,也即该第一子数据流属于直播数据流中存储在目标存储空间中的数据流。对于此种情况,仅确定第一子数据流所针对的数据范围由直播数据流变为了存储于目标存储空间的数据流,确定第一子数据流的方式与上述确定第一子数据流的方式相同,本申请实施例不再赘述。
直播服务器在确定第一子数据流之后,可以向观众终端发送该第一子数据流。直播服务器向观众终端发送第一子数据流的方式与主播终端向直播服务器发送子数据流的方式相同,本申请实施例不再赘述。
对于第一子数据流的上述第一种确定方式中的前两种可选方式,以及上述第二种确定方式和第三种确定方式,直播服务器确定的第一子数据流包括被直播服务器接收的时刻距当前时刻最近的数据。如此,直播服务器向观众终端发送该第一子数据流,可以保证观众终端在接收到该第一子数据流之后展示对应的直播内容的时刻,与在主播终端上生成该第一子数据流的时刻相差较短时间,进而可以保证直播过程中观众终端展示直播内容的实时性较高,提高了视频直播的效果。需要说明的是,观众终端上展示某直播内容与主播终端获取该直播内容的时间差,可以体现观众终端展示直播内容的实时性,该时间差越小,则观众终端展示直播内容的实时性越高。
对于本申请实施例中第一子数据流的上述第三种确定方式,直播服务器可以在接收到观众终端发送的获取请求后,向观众终端发送直播数据流中最新接收的数据之前的一部分数据。如此观众终端在接收到第一子数据流后可以展示该一部分数据,以便于观众终端的用户多了解一些直播内容,提高观众终端的用户对该直播内容的兴趣。
步骤407、更新该观众终端对应的目标定位标识。
其中,该目标定位标识用于指示直播服务器最新发送至该观众终端的子数据流在直播数据流中的位置。
直播服务器可以为向其发送获取请求的观众终端设定目标定位标识,并在每次向该观众终端发送直播数据流中的数据后,均更新该观众终端对应的目标定位标识,以使更新后的目标定位标识用于指示最新发送至观众终端的子数据流在直播数据流中的位置。根据该目标定位标识,直播服务器可以确定后续需要向该观众终端发送直播数据流中哪个位置之后的数据。
对于直播数据流中的每帧数据均携带一个定位标识的情况:
在目标定位标识的第一种可选更新方式中,直播服务器在指定存储空间存储有定位标识,在向观众终端每发送直播数据流中的一帧数据后,均可以采用最新发送的该一帧数据的定位标识,更新该观众终端对应的目标定位标识。如直播服务器向观众终端每发送第一子数据流中的一帧数据后,均可以更新该目标定位标识。示例地,直播服务器以直播数据流中每帧数据的序号作为该帧数据的定位标识,直播数据流中的第200帧数据的定位标识可以为199。直播服务器在向观众终端发送直播数据流中该第200帧数据后,可以采用该第200帧数据的定位标识199来更新该观众终端对应的目标定位标识。
在目标定位标识的第二种可选更新方式中,直播服务器在指定存储空间存储有定位标识,在向观众终端每次发送一个子数据流(如第一子数据流)后,均可以采用该子数据流中的最后一帧数据携带的定位标识,更新该观众终端对应的目标定位标识。可选地,直播服务器还可以采用该子数据流中任一帧数据的定位标识,更新该观众终端对应的目标定位标识;此时该目标定位标识还可以包括直播数据流中该任一帧数据与最后一帧数据之间的时长,或该任一帧数据与最后一帧数据之间存在的数据的帧数。
对于直播数据流中主播终端向直播服务器发送的每个子数据流携带一个定位标识的情况:若向观众终端发送的某子数据流(如第一子数据流)包括:主播终端某次向直播服务器发送的一个子数据流,则直播服务器可以直接采用该子数据流携带的定位标识更新目标定位标识。若向观众终端发送的某子数据流包括主播终端向直播服务器发送的多个子数据流,则直播服务器可以直接采用该多个子数据流中最后一个子数据流携带的定位标识更新目标定位标识。
步骤408、根据该观众终端对应的目标定位标识,向该观众终端发送目标存储空间中存储的数据流中第一子数据流之后的第二子数据流。
本申请实施例中在观众终端与直播服务器建立通信连接后,直播服务器可以持续地向观众终端发送直播数据流中的数据,如发送目标存储空间中存储的数据流中的数据。直播服务器在向观众终端发送第一子数据流之后,每次向观众终端再发送直播数据流中的数据时,均可以先获取该观众终端对应的目标定位标识。直播服务器可以根据该目标定位标识确定直播数据流中当前待发送的第二子数据流,如可以将直播数据流中该目标定位标识所指示位置之后的数据确定为第二子数据流,进而向观众终端发送该第二子数据流。该第二子数据流也即是待发送至观众终端的后续子数据流。需要说明的是,直播服务器向观众终端发送第二子数据流的方式可以参考步骤406中第一子数据流的发送方式,本申请实施例不再赘述。
示例地,直播服务器可以将直播数据流中该目标定位标识所指示位置之后的一个子数据流确定为第二子数据流,该一个子数据流为主播终端向直播服务器发送的一个子数据流。如主播终端向直播服务器依次发送子数据流a、b和c,且某一时刻目标定位标识指示直播数据流中子数据流a或子数据流a中某一帧数据的位置,则此时直播服务器可以将子数据流b确定为第二子数据流,进而向观众终端发送子数据流b。对于该种方式,直播服务器可以直接根据主播终端发送的子数据流,确定每次向观众终端发送的子数据流,而无需对接收的直播数据流进行额外的处理,节约了直播服务器的处理资源。
示例地,直播服务器可以将直播数据流中该目标定位标识所指示位置之后参考时长内的数据,确定为第二子数据流。又示例地,直播服务器可以将直播数据流中该目标定位标识所指示位置之后至少一帧数据确定为第二子数据流。需要说明的是,本申请实施例中所述的直播数据流中某一位置之后某一时长内的数据指的是:主播终端在获取该位置处的数据之后该时长内获取的数据。
需要说明的是,上述仅针对在整个直播数据流中确定第二子数据流的方式进行介绍,图4以在直播数据流中存储于目标存储空间中的数据流中确定第二子数据流为例进行解释说明,也即该第二子数据流属于直播数据流中存储在目标存储空间中的数据流。对于此种情况,仅确定第二子数据流所针对的数据范围由直播数据流变为了存储于目标存储空间的数据流,确定第二子数据流的方式与上述确定第二子数据流的方式相同,本申请实施例不再赘述。还需要说明的是,若最新发送至观众终端的子数据流位于直播数据流中目标存储空间中存储的数据流之前,则直播服务器可以不考虑直播数据流中最新发送至观众终端的子数据流与目标存储空间存储的数据流之间的数据,可以仅在目标存储空间中存储的数据流中确定第二子数据流,进而向观众终端发送该第二子数据流。
示例地,假设直播服务器将直播数据流中目标定位标识所指示的位置的后一帧数据确定为第二子数据流,某一时刻目标存储空间中存储有直播数据流中第301秒至第330秒之间的数据流,且最新发送至观众终端的子数据流为直播数据流中第298秒的子数据流。则直播服务器可以将直播数据流中第301秒内的第一帧数据确定为第二子数据流,进而向观众终端发送该帧数据,而不再向观众终端发送直播数据流中第298秒至第300秒内的数据。
本申请实施例中直播服务器可以根据目标定位标识,在目标存储空间中确定第二子数据流。由于该目标存储空间用于存储直播数据流中最新的某固定时长内的数据,故在直播数据流中目标定位标识指示的位置距直播服务器最新接收的数据所在位置较远(如最新发送至观众终端的数据不属于该最新的固定时长内的数据流)时,直播服务器可以直接将距直播服务器最新接收的数据较近的数据(如目标存储空间中存储的数据)确定为第二子数据流。进而,直播数据流中该第二子数据流的位置与主播终端最新获取的数据的位置距离较近,该第二子数据流的实时性较高,观众终端根据该第二子数据流展示直播内容的实时性较高。需要说明的是,直播数据流中观众终端当前展示的直播内容对应的数据所在的位置,与主播终端当前获取的数据所在的位置的距离,可以体现观众终端展示直播内容的实时性,该距离越小,则观众终端展示直播内容的实时性越高。
步骤409、更新该观众终端对应的目标定位标识。
需要说明的是,步骤409可以参考步骤407,本申请实施例不再赘述。
步骤410、根据该观众终端对应的目标定位标识,向该观众终端发送目标存储空间中存储的数据流中第二子数据流之后的第三子数据流。
需要说明的是,步骤410可以参考步骤408,步骤410中的第三子数据流可以参考步骤408中第二子数据流的介绍,本申请实施例不再赘述。步骤408和步骤410实际为重复执行的同一步骤,该步骤在步骤410之后还可以继续重复执行。
本申请实施例中所述的第二子数据流与第三子数据流仅指直播数据流中具有先后关系的两个子数据流,并不表示直播数据流中固定的两个子数据流。在直播服务器向观众终端发送第二子数据流之后,该第二子数据流之后的第三子数据流可以作为新的第二子数据流,进而直播服务器继续执行步骤408和步骤409。
直播服务器可以接收多个观众终端发送的对该直播数据流的获取请求。相关技术中,在主播终端开始直播时,直播服务器会将该主播终端发送的直播数据流中最新的固定时长的数据流存储在目标存储空间中。在每接收到一个观众终端发送的获取请求后,直播服务器均会为该观众终端再分配一个存储空间,且将目标存储空间中需要向该观众终端发送的数据拷贝至该观众终端对应的存储空间中,进而向该观众终端发送该存储空间中的数据。直播服务器可以在每向观众终端发送一帧数据后,删除该观众终端对应的存储空间中的该数据。当观众终端与直播服务器的通信质量较差时,直播服务器向观众终端发送的数据会较多地滞后于主播终端向直播服务器最新发送的数据,进而直播服务器接收的直播数据流中还需向观众终端发送的数据较多,观众终端对应的存储空间中需要存储的数据较多,直播服务器的存储资源浪费较多。若同时出现较多观众终端与直播服务器的通信质量较差,则会导致直播服务器缓存的数量暴涨,进而可能导致服务器故障。且由于直播服务器需要从目标存储空间中持续地将数据拷贝至其他存储空间,需要占用直播服务器的角度运行资源,会影响直播服务器对其他业务的处理能力,使得直播服务器的服务性能较低。
本申请实施例中,在接收到每个观众终端发送的获取请求后,直播服务器均可以执行上述步骤406至步骤410,以通过各个观众终端对应的目标定位标识,向各个观众终端发送数据。如此,服务器仅需在目标存储空间中存储直播数据流中的至少部分数据流即可,而无需为该多个观众终端均分配对应的存储空间,降低了直播服务器的存储资源的浪费。且直播服务器无需从目标存储空间中持续地将数据拷贝至其他存储空间,进而可以节约直播服务器的运行资源,可以提高直播服务器对其他业务的处理能力,使得直播服务器的服务性能较低。
本申请实施例中,当主播终端与直播服务器的通信质量较高时,主播终端可以按照设定的传输速率向直播服务器发送直播数据流;当观众终端与直播服务器的通信连接正常时,直播服务器也可以按照该设定的传输速率向观众终端发送直播数据流。如该设定的传输速率可以等于视频的帧率,如该帧率为25帧/秒或30帧/秒或其他帧率。此时,直播数据流中观众终端对应的目标定位标识指示的位置可以与数据上传标识指示的位置相同。可选地,直播服务器向观众终端发送直播数据流的速率也可以稍大于该设定的传输速率。
当观众终端与直播服务器的通信质量较差时,直播服务器会出现无法按照该设定的传输速率向观众终端发送直播数据流的情况。此时,直播数据流中观众终端对应的目标定位标识指示的位置与数据上传标识指示的位置不同,且该目标定位标识指示的位置滞后于数据上传标识指示的位置。如观众终端对应的目标定位标识指示直播数据流中第500秒的位置,数据上传标识指示直播数据流中第506秒的位置。当观众终端与直播服务器的通信质量恢复时,直播服务器可以以较大的传输速率,向观众终端发送直播数据流中目标定位标识指示的位置与数据上传标识指示的位置之间的数据,该较大的传输速率大于该设定的传输速率。直至目标定位标识指示的位置与数据上传标识指示的位置相同时,直播服务器可以再恢复通过该设定的传输速率向观众终端发送数据。
综上所述,本申请实施例提供的视频直播方法中,服务器可以根据观众终端的获取请求,在向观众终端发送直播数据流中的第一子数据流后,更新该观众终端对应的目标定位标识,进而根据该目标定位标识,向该观众终端发送该直播数据流中第一子数据流之后的第二子数据流。如此一来,即使存在多个观众终端,服务器也可以根据每个观众终端对应的目标定位标识确定直播数据流中各个观众终端还需获取的数据,服务器无需为每个观众终端均设置单独的存储空间,就可以确定向各个观众终端发送直播数据流中的哪些数据。因此,降低了服务器的存储资源的浪费。
图5是本申请实施例提供的一种视频直播装置的结构示意图。该视频直播装置可以用于图1所示的视频直播系统10中的直播服务器100,如图5所示,该视频直播装置50可以包括:
接收模块501,用于接收主播终端发送的直播数据流。
获取模块502,用于获取多个观众终端中每个观众终端对应的目标定位标识;其中,每个观众终端对应的目标定位标识用于指示:服务器最新发送至该每个观众终端的子数据流在直播数据流中的位置。
发送模块503,用于根据各个观众终端对应的目标定位标识,分别向各个观众终端发送其对应的后续子数据流。
综上所述,本申请实施例提供的视频直播装置,可以获取多个观众终端中每个观众终端对应的目标定位标识,进而根据各个观众终端对应的目标定位标识,分别向各个观众终端发送其对应的后续子数据流。如此一来,服务器无需为每个观众终端均设置单独的存储空间,就可以确定需向各个观众终端发送直播数据流的后续子数据流。因此,降低了服务器的存储资源的浪费。
图6是本申请实施例提供的另一种视频直播装置的结构示意图。该视频直播装置可以用于图1所示的视频直播系统10中的直播服务器100,如图6所示,该视频直播装置60可以包括:
接收模块601,用于接收主播终端发送的直播数据流。
第一发送模块602,用于在接收观众终端发送的直播数据流的获取请求后,向观众终端发送直播数据流中的第一子数据流。
第一更新模块603,用于更新观众终端对应的目标定位标识;其中,目标定位标识用于指示服务器最新发送至观众终端的子数据流在直播数据流中的位置。
第二发送模块604,用于根据目标定位标识,向观众终端发送直播数据流中第一子数据流之后的第二子数据流。
综上所述,本申请实施例提供的视频直播装置,可以根据观众终端的获取请求,在向观众终端发送直播数据流中的第一子数据流后,更新该观众终端对应的目标定位标识,进而根据该目标定位标识,向该观众终端发送该直播数据流中第一子数据流之后的第二子数据流。如此一来,即使存在多个观众终端,服务器也可以根据每个观众终端对应的目标定位标识确定直播数据流中各个观众终端还需获取的数据,服务器无需为每个观众终端均设置单独的存储空间,就可以确定向各个观众终端发送直播数据流中的哪些数据。因此,降低了服务器的存储资源的浪费。
可选地,直播数据流中的每一帧数据携带有一个定位标识,定位标识用于指示对应的一帧数据在直播数据流中的位置;第一更新模块603还用于:在每发送直播数据流中的一帧数据后,采用最新发送的一帧数据的定位标识,更新目标定位标识。
可选地,第一更新模块603还用于:采用第一子数据流中的最后一帧数据携带的定位标识,更新目标定位标识。
可选地,直播数据流中的每一帧数据携带有一个定位标识,该定位标识用于指示对应的一帧数据在直播数据流中的位置;该视频直播装置60还可以包括:
第二更新模块,用于在每接收到主播终端发送的直播数据流中的一帧数据后,采用最新接收的一帧数据携带的定位标识更新直播数据流的数据上传标识,数据上传标识用于指示服务器最新接收的数据在直播数据流中的位置;
第一确定模块,用于在向观众终端发送直播数据流中的第一子数据流之前,将直播数据流中数据上传标识所指示位置处的数据及之后的数据确定为第一子数据流。
可选地,该获取请求包括该获取请求的生成时刻,该视频直播装置40还可以包括:
第二确定模块,用于在向观众终端发送直播数据流中的第一子数据流之前,将直播数据流中生成时刻之后的子数据流确定为第一子数据流。
可选地,定位标识为时间戳或全局唯一标识。
可选地,该视频直播装置60还可以包括:
存储模块,用于在接收主播终端发送的直播数据流之后,将直播数据流中服务器最新接收的数据及之前目标时长内的数据流存储至目标存储空间;
第一发送模块602还可以用于:向观众终端发送目标存储空间存储的数据流中的第一子数据流。
第二发送模块604还可以用于:向观众终端发送目标存储空间存储的数据流中第一子数据流之后的第二子数据流。
可选地,该更新模块603还可以用于:在向观众终端发送直播数据流中第一子数据流之后的第二子数据流之后,更新目标定位标识;
该第二发送模块还可以用于:根据目标定位标识,向观众终端发送直播数据流中第二子数据流之后的第三子数据流。
综上所述,本申请实施例提供的视频直播装置,可以根据观众终端的获取请求,在向观众终端发送直播数据流中的第一子数据流后,更新该观众终端对应的目标定位标识,进而根据该目标定位标识,向该观众终端发送该直播数据流中第一子数据流之后的第二子数据流。如此一来,即使存在多个观众终端,服务器也可以根据每个观众终端对应的目标定位标识确定直播数据流中各个观众终端还需获取的数据,服务器无需为每个观众终端均设置单独的存储空间,就可以确定向各个观众终端发送直播数据流中的哪些数据。因此,降低了服务器的存储资源的浪费。
本申请实施例还提供了一种视频直播装置,可以用于图1所示的视频直播系统中的直播服务器100,该视频直播装置包括:存储器和处理器;该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如图2、图3或图4所示的视频直播方法。
图7是本申请实施例提供的一种直播服务器的结构示意图。所述直播服务器70包括中央处理单元(Central Processing Unit,CPU)701、包括随机存取存储器(randomaccess memory,RAM)702和只读存储器(read only memory,ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。所述服务器70还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机可读介质为服务器70提供非易失性存储。也就是说,所述大容量存储设备707可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
根据本申请的各种实施例,所述服务器70还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器70可以通过连接在所述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理单元701通过执行该一个或一个以上程序来实现图2、图3或图4所示的视频直播方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一条指令、至少一段程序、代码集或指令集,当所述至少一条指令、至少一段程序、代码集或指令集由终端的处理器执行时,实现如图2、图3或图4所示的视频直播方法。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行本申请实施例提供的方法。
需要说明的是:上述实施例提供的视频直播装置在进行视频直播时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将视频直播装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
需要说明的是,本申请实施例提供的方法实施例能够与相应的装置实施例相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种视频直播方法,其特征在于,用于服务器,所述方法包括:
接收主播终端发送的直播数据流,所述直播数据流中的每一帧数据携带有一个定位标识,所述定位标识用于指示对应的一帧数据在所述直播数据流中的位置;
在接收观众终端发送的所述直播数据流的获取请求后,向所述观众终端发送所述直播数据流中的第一子数据流;
在每发送所述直播数据流中的一帧数据后,采用最新发送的一帧数据的定位标识,更新所述观众终端对应的目标定位标识;或者,采用所述第一子数据流中的最后一帧数据携带的定位标识,更新所述目标定位标识;其中,所述目标定位标识用于指示所述服务器最新发送至所述观众终端的子数据流在所述直播数据流中的位置;
根据所述目标定位标识,向所述观众终端发送所述直播数据流中所述第一子数据流之后的第二子数据流。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在每接收到所述主播终端发送的所述直播数据流中的一帧数据后,采用最新接收的一帧数据携带的定位标识更新所述直播数据流的数据上传标识,所述数据上传标识用于指示所述服务器最新接收的数据在所述直播数据流中的位置;
在所述向所述观众终端发送所述直播数据流中的第一子数据流之前,所述方法还包括:
将所述直播数据流中所述数据上传标识所指示位置处的数据及之后的数据确定为所述第一子数据流。
3.根据权利要求1所述的方法,其特征在于,所述获取请求包括所述获取请求的生成时刻,在所述向所述观众终端发送所述直播数据流中的第一子数据流之前,所述方法还包括:
将所述直播数据流中所述生成时刻之后的子数据流确定为所述第一子数据流。
4.根据权利要求2所述的方法,其特征在于,所述定位标识为时间戳或全局唯一标识。
5.根据权利要求1至3任一所述的方法,其特征在于,在所述接收主播终端发送的直播数据流之后,所述方法还包括:
将所述直播数据流中所述服务器最新接收的数据及之前目标时长内的数据流存储至目标存储空间;
所述向所述观众终端发送所述直播数据流中的第一子数据流,包括:
向所述观众终端发送所述目标存储空间存储的数据流中的第一子数据流;
所述向所述观众终端发送所述直播数据流中所述第一子数据流之后的第二子数据流,包括:
向所述观众终端发送所述目标存储空间存储的数据流中所述第一子数据流之后的第二子数据流。
6.根据权利要求1至3任一所述的方法,在向所述观众终端发送所述直播数据流中所述第一子数据流之后的第二子数据流之后,所述方法还包括:
更新所述目标定位标识;
根据所述目标定位标识,向所述观众终端发送所述直播数据流中所述第二子数据流之后的第三子数据流。
7.一种视频直播方法,其特征在于,用于服务器,所述方法包括:
接收主播终端发送的直播数据流,所述直播数据流中的每一帧数据携带有一个定位标识,所述定位标识用于指示对应的一帧数据在所述直播数据流中的位置;
获取多个观众终端中每个观众终端对应的目标定位标识;其中,所述目标定位标识在每发送所述直播数据流中的一帧数据后,采用最新发送的一帧数据的定位标识进行更新;或者,所述目标定位标识采用第一子数据流中的最后一帧数据携带的定位标识进行更新;所述每个观众终端对应的目标定位标识用于指示:所述服务器最新发送至所述每个观众终端的子数据流在所述直播数据流中的位置;
根据各个所述观众终端对应的目标定位标识,分别向各个所述观众终端发送其对应的后续子数据流。
8.一种视频直播装置,其特征在于,所述视频直播装置包括:
接收模块,用于接收主播终端发送的直播数据流,所述直播数据流中的每一帧数据携带有一个定位标识,所述定位标识用于指示对应的一帧数据在所述直播数据流中的位置;
第一发送模块,用于在接收观众终端发送的所述直播数据流的获取请求后,向所述观众终端发送所述直播数据流中的第一子数据流;
第一更新模块,用于在每发送所述直播数据流中的一帧数据后,采用最新发送的一帧数据的定位标识,更新所述观众终端对应的目标定位标识;或者,采用所述第一子数据流中的最后一帧数据携带的定位标识,更新所述目标定位标识;其中,所述目标定位标识用于指示服务器最新发送至所述观众终端的子数据流在所述直播数据流中的位置;
第二发送模块,用于根据所述目标定位标识,向所述观众终端发送所述直播数据流中所述第一子数据流之后的第二子数据流。
9.一种视频直播装置,其特征在于,所述视频直播装置包括:
接收模块,用于接收主播终端发送的直播数据流,所述直播数据流中的每一帧数据携带有一个定位标识,所述定位标识用于指示对应的一帧数据在所述直播数据流中的位置;
获取模块,用于获取多个观众终端中每个观众终端对应的目标定位标识;其中,所述目标定位标识在每发送所述直播数据流中的一帧数据后,采用最新发送的一帧数据的定位标识进行更新;或者,所述目标定位标识采用第一子数据流中的最后一帧数据携带的定位标识进行更新;所述每个观众终端对应的目标定位标识用于指示:服务器最新发送至所述每个观众终端的子数据流在所述直播数据流中的位置;
发送模块,用于根据各个所述观众终端对应的目标定位标识,分别向各个所述观众终端发送其对应的后续子数据流。
10.一种视频直播装置,其特征在于,所述视频直播装置包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的视频直播方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的视频直播方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612037.5A CN111726650B (zh) | 2020-06-30 | 2020-06-30 | 视频直播方法及装置、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612037.5A CN111726650B (zh) | 2020-06-30 | 2020-06-30 | 视频直播方法及装置、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111726650A CN111726650A (zh) | 2020-09-29 |
CN111726650B true CN111726650B (zh) | 2022-10-18 |
Family
ID=72570364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010612037.5A Active CN111726650B (zh) | 2020-06-30 | 2020-06-30 | 视频直播方法及装置、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111726650B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111918092B (zh) * | 2020-08-12 | 2022-07-01 | 广州繁星互娱信息科技有限公司 | 视频流处理方法、装置、服务器及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9538142B2 (en) * | 2009-02-04 | 2017-01-03 | Google Inc. | Server-side support for seamless rewind and playback of video streaming |
CN101795297B (zh) * | 2010-03-19 | 2012-10-31 | 北京天天宽广网络科技有限公司 | 基于p2p技术的直播时移系统及其方法 |
CN102325172A (zh) * | 2011-08-30 | 2012-01-18 | 中兴通讯股份有限公司 | 一种移动终端间共享数据的方法、系统及控制服务器 |
GB2500615B (en) * | 2012-03-26 | 2019-10-23 | Saturn Licensing Llc | Selecting data packets from a packetized data stream comprising audio/video programme data packets and identification data |
US9049264B2 (en) * | 2012-12-21 | 2015-06-02 | Verizon Patent And Licensing Inc. | Media start position based on inserting a start position indentifier |
CN106604064A (zh) * | 2016-12-30 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种快速开播方法及装置 |
CN106993200B (zh) * | 2017-04-18 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 一种数据的直播方法、相关设备及系统 |
KR101922970B1 (ko) * | 2017-07-12 | 2018-11-28 | 주식회사 볼트홀 | Vr 콘텐츠에 대한 라이브 스트리밍 방법 및 시스템 |
CN108174233A (zh) * | 2018-01-08 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种直播方法、装置、服务器及介质 |
CN108260016B (zh) * | 2018-03-13 | 2020-07-28 | 北京小米移动软件有限公司 | 直播处理方法、装置、设备、系统及存储介质 |
CN108718346B (zh) * | 2018-04-08 | 2020-12-29 | 北京达佳互联信息技术有限公司 | 一种资源处理方法及装置 |
CN108833934B (zh) * | 2018-06-21 | 2021-07-20 | 广州酷狗计算机科技有限公司 | 获取视频数据的方法、服务器和系统 |
CN111182336A (zh) * | 2019-10-28 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种视频数据的播放处理方法、装置、服务器及终端 |
-
2020
- 2020-06-30 CN CN202010612037.5A patent/CN111726650B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111726650A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11284131B2 (en) | Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision | |
US9154840B2 (en) | Reception apparatus, reception method, transmission apparatus, and transmission method | |
CN106301865B (zh) | 应用于服务提供设备的数据处理方法和设备 | |
CN110012300B (zh) | 视频直播方法及装置 | |
US8776150B2 (en) | Implementation method and system for a media-on-demand frame-spanning playing mode in a peer-to-peer network | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
CN1355904A (zh) | 为广播系统提供视频点播业务的系统和方法 | |
CN111107386A (zh) | 直播视频的回看方法、装置、电子设备、系统及存储介质 | |
US11259063B2 (en) | Method and system for setting video cover | |
EP3824638B1 (en) | Advanced preparation for content revision based on expected latency in obtaining new content | |
CN102291256B (zh) | 一种监控数据的查询方法和设备 | |
CN101388909A (zh) | 一种p2p点播系统和业务方法 | |
EP2493191A1 (en) | Method, device and system for realizing hierarchically requesting content in http streaming system | |
WO2017201980A1 (zh) | 一种视频录制的方法、装置和系统 | |
US12101524B2 (en) | System and method for storing multimedia files using an archive file format | |
CN111770355A (zh) | 媒体服务器确定方法、装置、服务器以及存储介质 | |
WO2018233539A1 (zh) | 视频处理方法、计算机存储介质及设备 | |
EP4111700A1 (en) | Identification of elements in a group for dynamic element replacement | |
CN111726650B (zh) | 视频直播方法及装置、计算机存储介质 | |
CN114928641A (zh) | 基于云应用的数据分享方法、装置、电子设备及存储介质 | |
CN108777802B (zh) | 一种缓存vr视频的方法和装置 | |
US20220279225A1 (en) | Video transcoding method and apparatus | |
CN114245169B (zh) | 视频处理方法、装置、电子设备、介质和程序产品 | |
US9229944B2 (en) | Scalable networked digital video recordings via shard-based architecture | |
CN106302617B (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 |