直播内容的回放方法、系统、设备、及可读存储介质与流程

文档序号:24189518发布日期:2021-03-09 14:41阅读:263来源:国知局
直播内容的回放方法、系统、设备、及可读存储介质与流程

1.本申请涉及互联网技术领域,特别涉及一种直播内容的回放方法、系统、设备、及可读存储介质。


背景技术:

2.在直播场景中,当用户观看直播视频的时候,容易遇到以下问题:观看比赛直播时错过了精彩片段想要回放、观看娱乐直播时错过了想听的歌曲想要回放、看游戏直播时错过了主播通关时刻想要回放、看技术演讲直播时技术点没听懂想要回放;由此可见,用户对直播回放的需求是很大的,但现有的直播技术并不能实现在直播过程中回放直播内容的功能,给用户造成了不便,用户体验度不佳。


技术实现要素:

3.本申请的目的在于提供一种直播内容的回放方法、系统、设备、及可读存储介质,能够达到用户在观看直播过程中随时拉动播放进度条以回放之前的直播内容的效果。
4.根据本申请的一个方面,提供了一种直播内容的回放方法,应用于cdn内容分发网络中的边缘服务器,所述方法包括:
5.接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数;
6.获取当前系统时间参数,并根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址;
7.获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端。
8.可选的,所述播放请求为可以在html5页面打开的http请求。
9.可选的,在所述接收由用户终端发送的播放请求之后,所述方法还包括:
10.判断在所述播放请求中是否包含回放时间参数;
11.若否,则将所述回放时间参数设置为0。
12.可选的,所述根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址,具体包括:
13.将所述当前系统时间参数与所述回放时间参数的差值作为绝对时间参数,并形成包含所述绝对时间参数和所述第一播放地址的第二播放地址。
14.可选的,所述获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端,具体包括:
15.获取与所述第二播放地址对应的分片索引文件,并将所述分片索引文件发送至所述用户终端;其中,所述分片索引文件包括:多个视频分片文件的索引信息;
16.接收所述用户终端发送的分片请求;其中,所述分片请求包括:索引信息;
17.获取与所述索引信息对应的视频分片文件,并将所述视频分片文件发送至所述用
户终端。
18.可选的,所述获取与所述第二播放地址对应的分片索引文件,并将所述分片索引文件发送至所述用户终端,具体包括:
19.判断在本地缓存中是否存在与所述第二播放地址对应的分片索引文件;
20.若是,则将所述本地缓存中的分片索引文件发送至所述用户终端;
21.若否,则从cdn内容分发网络中的源站服务器获取与所述第二播放地址对应的分片索引文件,将获取到的分片索引文件存储到所述本地缓存中并将所述分片索引文件发送至所述用户终端。
22.可选的,所述获取与所述第二播放地址对应的分片索引文件,具体包括:
23.解析出包含在所述第二播放地址中的绝对时间参数;
24.获取文件名称包含所述绝对时间参数的分片索引文件。
25.可选的,所述获取与所述索引信息对应的视频分片文件,并将所述视频分片文件发送至所述用户终端,具体包括:
26.判断在本地缓存中是否存在与所述索引信息对应的视频分片文件;
27.若是,则将所述本地缓存中的视频分片文件发送至所述用户终端;
28.若否,则从cdn内容分发网络中的源站服务器获取与所述索引信息对应的视频分片文件,将获取到的视频分片文件存储到所述本地缓存中并将所述视频分片文件发送至所述用户终端。
29.为了实现上述目的,本申请还提供一种直播内容的回放方法,应用于用户终端,所述方法包括:
30.当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间参数,并形成包含所述回放时间参数和第一播放地址的播放请求;
31.将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;
32.接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容。
33.为了实现上述目的,本申请还提供一种直播内容的回放系统,所述系统包括:用户终端、cdn内容分发网络中的边缘服务器、流媒体服务器和源站服务器;其中,
34.所述用户终端,用于当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间参数,并形成包含所述回放时间参数和第一播放地址的播放请求;将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容;
35.所述边缘服务器,用于接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数;获取当前系统时间参数,并根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址;获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端;
36.所述流媒体服务器,用于接收由主播终端推送的直播流,并通过长链接向所述源站服务器提供直播流;
37.所述源站服务器,用于根据所述直播流生成视频分片文件和分片索引文件,将当
前系统时间参数添加到所述分片索引文件的文件名称中,并存储所述视频分片文件和分片索引文件。
38.为了实现上述目的,本申请还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的直播内容的回放方法的步骤。
39.为了实现上述目的,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的直播内容的回放方法的步骤。
40.本申请提供的直播内容的回放方法、系统、设备、及可读存储介质,用户终端通过在播放请求中添加回放时间参数,以供边缘服务器判断用户是否需要回放直播内容;当用户需要回放直播内容时,边缘服务器会根据回放时间参数与当前系统时间参数计算出绝对时间参数,从而将第一播放地址转化为包含绝对时间参数的第二播放地址,最终根据第二播放地址中获取对应的直播内容,从而实现回放之前的直播内容的效果。
附图说明
41.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
42.图1为实施例一提供的直播内容的回放方法的一种可选的流程示意图;
43.图2为实施例二提供的直播内容的回放方法的另一种可选的流程示意图;
44.图3为实施例三提供的直播内容的回放装置的一种可选的组成结构示意图;
45.图4为实施例四提供的直播内容的回放装置的另一种可选的组成结构示意图;
46.图5为实施例五提供的直播内容的回放系统的一种可选的组成结构示意图;
47.图6为实施例五提供的直播流转换模块根据直播流生成视频分片文件和分片索引文件的示意图;
48.图7为实施例六提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
49.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
50.实施例一
51.本申请实施例提供了一种直播内容的回放方法,应用于cdn(content delivery network,内容分发网络)中的边缘服务器,其中,cdn是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户终端就近获取所需直播内容;如图1所示,该方法具体包括以下步骤:
52.步骤s101:接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数。
53.需要说明的是,本实施例提供的技术方案是利用hls(http live streaming)协议
作为载体,以达到用户可以在观看直播过程中随时拉动播放进度条以观看之前的直播内容的目的。
54.hls是基于超文本传输协议http的流媒体传输协议;hls最大的优点是:html5(hyper text markup language,超级文本标记语言)可直接打开播放;这意味着,可以通过社交软件转发一个直播链接,在不需要安装任何独立的应用程序app的情况下,用户可直接通过浏览器根据直播链接播放直播视频。因此,在本实施例中所述播放请求为可以在html5页面打开的http请求。
55.hls的基本工作原理是:当采集推流端(即,主播终端)将直播流推送到流媒体服务器时,服务器将收到的直播流每缓存一段时间就封包成一个新的视频分片文件,同时服务器会建立一个m3u8分片索引文件来维护最新的几个视频分片文件的索引信息。当播放端(即,用户终端)获取直播视频时,播放端是通过m3u8分片索引文件获取到最新的视频分片文件并进行播放,从而保证用户在任何时间连接进来都会看到较新的直播内容,从而实现直播体验。旧版的hls使用ts存储视频分片文件,新版的hls使用片段式mp4(即,fmp4)存储视频分片文件。
56.在本实施例中,当用户想要通过安装在用户终端侧的浏览器观看目标直播时,会通过用户终端向边缘服务器发送第一播放地址;其中,所述第一播放地址为用于获取目标直播的分片索引文件的地址信息。
57.具体的,所述回放时间参数用于表征需要回放的时间长度,且所述回放时间参数可以位于第一播放地址的querystring参数部分。需要说明的是,在实际应用中,回放时间参数也可以作为播放请求url中path的一部分,而非限定在querystring。
58.在本实施例中,在用户观看目标直播的过程中,当用户想要回看直播内容时,用户可拖动浏览器中播放器下方的播放进度条,以确定出回放时间点,用户终端可以根据当前系统时间点与所述回放时间点的差值确定出回放时间参数(单位为秒),即,回放时间参数为需要回退的秒数。用户终端再将所述回放时间参数添加到用于获取目标直播的分片索引文件的第一播放地址的末尾,以形成播放请求。例如,在目标直播的m3u8分片索引文件的第一播放地址为:http://xx.xx.xxx.x/21509030/index.m3u8的情况下,当用户拖动播放进度条想要观看120秒之前的直播内容时,用户终端通过预设javascript脚本形成回放时间参数tmshift=120,并将回放时间参数tmshift=120添加到第一播放地址息的末尾,以形成播放请求:http://xx.xx.xxx.x/21509030/index.m3u8?tmshift=120。
59.需要说明的,在实际应用中,一方面,可事先在用户终端中添加脚本文件,以通过脚本文件根据用户拖动播放进度条操作计算出回放时间参数,从而形成播放请求;另一方面,用户也可以直接在浏览器中输入添加有回放时间参数的第一播放地址,以实现回放视频的功能。
60.进一步的,在所述接收由用户终端发送的播放请求之后,所述方法还包括,包括:
61.判断在所述播放请求中是否包含回放时间参数;
62.若否,则将所述回放时间参数设置为0。
63.在本实施例中,当用户正常观看直播,不需要回放直播内容时,用户终端不会在播放请求中添加回放时间参数,只有当用户拖动播放进度条时,用户终端才会在播放请求中添加回放时间参数。当判断出在播放请求中不包含回放时间参数时,将回放时间参数的值
设置为0以便于后续步骤的实施。
64.需要说明的是,在实际应用中,当判断在所述播放请求中不包含回放时间参数时,也可使用传统的cdn回源方案来获取分片索引文件。
65.步骤s102:获取当前系统时间参数,并根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址。
66.具体的,步骤s102,包括:
67.将所述当前系统时间参数与所述回放时间参数的差值作为绝对时间参数,并形成包含所述绝对时间参数和所述第一播放地址的第二播放地址。
68.例如,在当前系统时间参数为1457814(单位为秒)的情况,若播放请求中未添加回放时间参数时,则回放时间参数为0、绝对时间参数为1457814;若播放请求中添加有回放时间参数120时,则绝对时间参数为1457814-120=1457694。
69.在本实施例中,在所述第二播放地址中包含所述绝对时间参数;例如,若第一播放地址为:http://xx.xx.xxx.x/21509030/index.m3u8?tmshift=120、当前系统时间参数为1457814,则回放时间参数为120、绝对时间参数为1457694、形成的第二播放地址为:http://xx.xx.xxx.x/21509030/1457694.m3u8。又例如,若第一播放地址为:http://xx.xx.xxx.x/21509030/index.m3u8、当前系统时间参数为1457814,则回放时间参数为0、绝对时间参数为1457814、形成的第二播放地址为:http://xx.xx.xxx.x/21509030/1457814.m3u8。
70.步骤s103:获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端。
71.具体的,步骤s103,包括:
72.步骤a1:获取与所述第二播放地址对应的分片索引文件,并将所述分片索引文件发送至所述用户终端;其中,所述分片索引文件包括:多个视频分片文件的索引信息;
73.步骤a2:接收所述用户终端发送的分片请求;其中,所述分片请求包括:索引信息;
74.优选的,所述索引信息为视频分片文件的文件名称;
75.步骤a3:获取与所述索引信息对应的视频分片文件,并将所述视频分片文件发送至所述用户终端。
76.进一步的,所述步骤a1,具体包括:
77.判断在本地缓存中是否存在与所述第二播放地址对应的分片索引文件;
78.若是,则将所述本地缓存中的分片索引文件发送至所述用户终端;
79.若否,则从cdn内容分发网络中的源站服务器获取与所述第二播放地址对应的分片索引文件,将获取到的分片索引文件存储到所述本地缓存中并将所述分片索引文件发送至所述用户终端。
80.在本实施例中,当多个用户终端请求播放同一目标直播时,边缘服务器可以只从源站服务器获取一次目标直播的分片索引文件,并将获取到的分片索引文件存储到本地缓存(例如,cache)中,然后将本地缓存中的分片索引文件分发给多个用户终端,从而降低了源站服务器的负担。
81.需要说明的是,所述第二播放地址为用于获取目标直播的分片索引文件的真实地址信息。
82.更进一步的,所述获取与所述第二播放地址对应的分片索引文件,具体包括:
83.解析出包含在所述第二播放地址中的绝对时间参数;
84.获取文件名称包含所述绝对时间参数的分片索引文件。
85.在本实施例中,为了便于获取分片索引文件,源站服务器在生成分片索引文件的时候,将当前系统时间参数添加到分片索引文件的文件名称中;后期可根据在文件名称中是否包含第二播放地址中的绝对时间参数以查找到对应的分片索引文件。
86.进一步的,所述步骤a3,具体包括:
87.判断在本地缓存中是否存在与所述索引信息对应的视频分片文件;
88.若是,则将所述本地缓存中的视频分片文件发送至所述用户终端;
89.若否,则从cdn内容分发网络中的源站服务器获取与所述索引信息对应的视频分片文件,将获取到的视频分片文件存储到所述本地缓存中并将所述视频分片文件发送至所述用户终端。
90.同理,在本实施例中,当多个用户终端请求播放同一目标直播时,边缘服务器可以只从源站服务器获取一次目标直播的视频分片文件,并将获取到的视频分片文件存储到本地缓存(例如,cache)中,然后将本地缓存中的视频分片文件分发给多个用户终端,从而降低了源站服务器的负担。
91.需要说明的是,在实际应用中,当用户通过用户终端观看直播内容时,用户终端会按照预设时间间隔定期向边缘服务器发送播放请求;优选的,用户终端每秒向边缘服务器发送包含第一播放地址的播放请求。当用户不需要回放直播内容时,播放请求中不包括回放时间参数,边缘服务器会根据当前系统时间参数生成第二播放地址,从而根据第二播放地址获取直播内容;由于在第二播放地址中包含的是当前时间参数,所以获取到的直播内容也是当前最新的直播内容。以下举例说明:
92.步骤b1:获取当前系统时间参数:145817;
93.步骤b2:当用户进入直播间观看直播内容时,用户终端向边缘服务器发送包含第一播放地址的播放请求;其中,第一播放地址为:http://xx.xx.xxx.x/21509030/index.m3u8,不包含回放时间参数;
94.步骤b3:边缘服务器根据当前系统时间参数145817和回放时间参数0计算出绝对时间参数145817,并生成第二播放地址:http://xx.xx.xxx.x/21509030/145817.m3u8;
95.步骤b4:边缘服务器判断在本地cache中是否存在与第二播放地址对应的分片索引文件,若是,则直接返回用户终端,若否,则从源站服务器获取,存入本地cache后返回用户终端;
96.步骤b5:用户终端再根据分片索引文件中的列表从边缘服务器下载视频分片文件,以进行播放;
97.步骤b6:过了1秒,获取当前系统时间参数:145818;
98.步骤b7:用户终端继续向边缘服务器发送包含第一播放地址的播放请求;其中,第一播放地址为:http://xx.xx.xxx.x/21509030/index.m3u8;
99.步骤b8:边缘服务器根据当前系统时间参数145818和回放时间参数0计算出绝对时间参数145818,并生成第二播放地址:http://xx.xx.xxx.x/21509030/145818.m3u8;
100.步骤b9:重复执行步骤b4至步骤b8。
101.此外,当用户需要回放直播内容时,在播放请求中包括回放时间参数,边缘服务器会根据当前系统时间参数和回放时间参数生成第二播放地址,从而根据第二播放地址获取直播内容;需要说明的是,用户终端会使用固定的第一播放地址,但是由于每次请求时当前系统时间参数会改变,所以每次计算出的第二播放地址是不同的;在上述步骤b1至b9的基础上,当用户需要回放直播内容时,以下举例说明:
102.步骤c1:获取当前系统时间参数:145917;
103.步骤c2:用户终端检测到用户拖动播放进度条操作,并根据所述拖动播放进度条操作确定出回放时间参数为100;即,用户往回拖了100秒的进度;
104.步骤c3:用户终端根据回放时间参数和第一播放地址生成播放请求:http://xx.xx.xxx.x/21509030/index.m3u8?tmshift=100,并向边缘服务器发送包含所述第一播放地址和回放时间参数的播放请求;
105.步骤c4:边缘服务器根据当前系统时间参数145917和回放时间参数100计算出绝对时间参数145817,并生成第二播放地址:http://xx.xx.xxx.x/21509030/145817.m3u8;
106.步骤c5:由于在上述步骤b4中已经在本地cache中缓存了与http://xx.xx.xxx.x/21509030/145817.m3u8对应的分片索引文件,所以直接从cache中获取对应的分片索引文件并返回给用户终端,不需要再向源站服务器进行回源操作;
107.步骤c6:用户终端再根据分片索引文件中的列表从边缘服务器下载视频分片文件,以进行播放;需要说明的是,由于在步骤b5中已经在本地cache中缓存了视频分片文件,所以直接从cache中获取对应的视频分片文件并返回给用户终端,不需要再向源站服务器进行回源操作;
108.步骤c7:过了1秒,获取当前系统时间参数:145918;
109.步骤c8:用户终端向边缘服务器发送包含所述第一播放地址和回放时间参数的播放请求;其中,第一播放地址还是:http://xx.xx.xxx.x/21509030/index.m3u8;
110.步骤c9:边缘服务器根据当前系统时间参数145918和回放时间参数100计算出绝对时间参数145818,并生成第二播放地址:http://xx.xx.xxx.x/21509030/145818.m3u8;
111.步骤c10:重复执行步骤c5至步骤c9。
112.由此可以看出,在本实施例中,源站服务器只需要向边缘服务器分发最新的分片索引文件和视频分片文件,以供边缘服务器进行缓存;当用户需要回放直播内容时,可从边缘服务器直接获取对应的分片索引文件和视频分片文件,不需要再向源站服务器进行回源操作,从而减少了源站服务器的回源压力。
113.在现有技术中,边缘服务器需要不断从源站服务器获取最新的分片索引文件和视频分片文件,且对分片索引文件仅能进行短时间的缓存(例如,1秒);而在本实施例中,边缘服务器会对分片索引文件和视频分片文件进行长时间的缓存,以供回放直播内容时使用;由于边缘服务器会根据当前系统时间参数和回放时间参数计算出绝对时间参数,所以可以把不能长时间做缓存的动态分片索引文件和动态视频分片文件转化为可以长时间做缓存的静态分片索引文件和静态视频分片文件,极大降低了回源的数量。
114.实施例二
115.本申请实施例提供了一种直播内容的回放方法,应用于用户终端,如图2所示,该方法具体包括以下步骤:
116.s201:当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间参数,并形成包含所述回放时间参数和第一播放地址的播放请求;
117.s202:将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;
118.s203:接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容,并播放所述直播内容。
119.具体的,所述播放请求为可以在html5页面打开的http请求。
120.进一步的,步骤s201,具体包括:
121.根据当前系统时间点与回放时间点的差值确定出回放时间参数;
122.将所述回放时间参数添加到第一播放地址的末尾,以形成播放请求。
123.在本实施例中,在用户观看目标直播的过程中,当用户想要回看直播内容时,用户可拖动浏览器中播放器下方的播放进度条,以确定出回放时间点,用户终端可以根据当前系统时间点与所述回放时间点的差值确定出回放时间参数(单位为秒),即,回放时间参数为需要回退的秒数。用户终端再将所述回放时间参数添加到用于获取目标直播的分片索引文件的第一播放地址的末尾,以形成播放请求。
124.进一步的,所述方法还包括:
125.当未检测到拖动播放进度条操作时,将包含所述第一播放地址的播放请求发送至所述边缘服务器。
126.更进一步的,步骤s203,包括:
127.步骤a1:接收由所述边缘服务器发送的与所述第二播放地址对应的分片索引文件;其中,所述分片索引文件包括:多个视频分片文件的索引信息;
128.步骤a2:向所述边缘服务器发送分片请求;其中,所述分片请求包括:索引信息;
129.步骤a3:接收由所述边缘服务器发送的与所述索引信息对应的视频分片文件;
130.步骤a4:播放所述视频分片文件。
131.实施例三
132.本申请实施例提供了一种直播内容的回放装置,应用于cdn内容分发网络中的边缘服务器,如图3所示,该装置具体包括以下组成部分:
133.接收模块301,用于接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数;
134.获取模块302,用于获取当前系统时间参数,并根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址;
135.发送模块303,用于获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端。
136.具体的,所述播放请求为可以在html5页面打开的http请求。
137.进一步的,所述接收模块301,还用于:
138.判断在所述播放请求中是否包含回放时间参数;若否,则将所述回放时间参数设置为0。
139.获取模块302,具体用于:
140.将所述当前系统时间参数与所述回放时间参数的差值作为绝对时间参数,并形成
包含所述绝对时间参数和所述第一播放地址的第二播放地址。
141.发送模块303,具体包括:
142.获取单元,用于获取与所述第二播放地址对应的分片索引文件,并将所述分片索引文件发送至所述用户终端;其中,所述分片索引文件包括:多个视频分片文件的索引信息;
143.接收单元,用于接收所述用户终端发送的分片请求;其中,所述分片请求包括:索引信息;
144.发送单元,用于获取与所述索引信息对应的视频分片文件,并将所述视频分片文件发送至所述用户终端。
145.进一步的,所述获取单元,具体用于:
146.判断在本地缓存中是否存在与所述第二播放地址对应的分片索引文件;
147.若是,则将所述本地缓存中的分片索引文件发送至所述用户终端;
148.若否,则从cdn内容分发网络中的源站服务器获取与所述第二播放地址对应的分片索引文件,将获取到的分片索引文件存储到所述本地缓存中并将所述分片索引文件发送至所述用户终端。
149.进一步的,所述发送单元,具体用于:
150.判断在本地缓存中是否存在与所述索引信息对应的视频分片文件;
151.若是,则将所述本地缓存中的视频分片文件发送至所述用户终端;
152.若否,则从cdn内容分发网络中的源站服务器获取与所述索引信息对应的视频分片文件,将获取到的视频分片文件存储到所述本地缓存中并将所述视频分片文件发送至所述用户终端。
153.更进一步的,发送模块303在实现所述获取与所述第二播放地址对应的分片索引文件的步骤时,具体用于:
154.解析出包含在所述第二播放地址中的绝对时间参数;获取文件名称包含所述绝对时间参数的分片索引文件。
155.实施例四
156.本申请实施例提供了一种直播内容的回放装置,应用于用户终端,如图4所示,该装置具体包括以下组成部分:
157.确定模块401,用于当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间参数,并形成包含所述回放时间参数和第一播放地址的播放请求;
158.发送模块402,用于将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;
159.接收模块403,用于接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容,并播放所述直播内容。
160.具体的,所述播放请求为可以在html5页面打开的http请求。
161.进一步的,确定模块401,具体用于:
162.根据当前系统时间点与回放时间点的差值确定出回放时间参数;将所述回放时间参数添加到第一播放地址的末尾,以形成播放请求。
163.进一步的,确定模块401,还用于:
164.当未检测到拖动播放进度条操作时,将包含所述第一播放地址的播放请求发送至所述边缘服务器。
165.进一步的,接收模块403,具体用于:
166.接收由所述边缘服务器发送的与所述第二播放地址对应的分片索引文件;其中,所述分片索引文件包括:多个视频分片文件的索引信息;向所述边缘服务器发送分片请求;其中,所述分片请求包括:索引信息;接收由所述边缘服务器发送的与所述索引信息对应的视频分片文件;播放所述视频分片文件。
167.实施例五
168.本申请实施例提供了一种直播内容的回放系统,如图5所示,该系统具体包括以下组成部分:用户终端501、主播终端502、流媒体服务器503、cdn内容分发网络中的边缘服务器504和源站服务器505,各组成部分所实现的功能具体介绍如下:
169.(1)用户终端501,用于当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间参数,并形成包含所述回放时间参数和第一播放地址的播放请求;将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容,并播放所述直播内容。
170.在本实施例中,在用户终端上安装有用于观看直播视频的浏览器,且该浏览器兼容标准hls协议,即,浏览器可以直接使用视频标签进行观看。
171.在本实施例中,在用户观看目标直播的过程中,当用户想要回看直播内容时,用户可拖动浏览器中播放器下方的播放进度条,以确定出回放时间点,用户终端可以根据当前系统时间点与所述回放时间点的差值确定出回放时间参数(单位为秒),即,回放时间参数为需要回退的秒数。用户终端再将所述回放时间参数添加到用于获取目标直播的分片索引文件的第一播放地址的末尾,以形成播放请求。例如,在目标直播的m3u8分片索引文件的第一播放地址为:http://xx.xx.xxx.x/21509030/index.m3u8的情况下,当用户拖动播放进度条想要观看120秒之前的直播内容时,用户终端通过预设javascript脚本形成回放时间参数tmshift=120,并将回放时间参数tmshift=120添加到第一播放地址的末尾,以形成播放请求:http://xx.xx.xxx.x/21509030/index.m3u8?tmshift=120。
172.(2)所述流媒体服务器503,用于接收由主播终端推送的直播流,并通过长链接向所述源站服务器提供直播流。
173.在本实施例中,流媒体服务器主要负责接收主播终端通过直播软件以rtmp(real time messaging protocol,实时消息传输协议)推送的直播流,并对外提供以长链接形式提供的flv(flash video)格式的直播流,以供flash播放器使用。
174.在实际应用中,可以是流媒体服务器主动向源站服务器推送直播流,也可以是源站服务器从流媒体服务器拉取直播流,两个方向都可以支持。
175.在本实施例中,流媒体服务器需要具有接收rtmp协议推流、以及提供长链接拉流的能力。
176.(3)所述边缘服务器504,用于接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数;获取当前系统时间参数,并根据所述当前系统时间
参数、所述第一播放地址和回放时间参数形成第二播放地址;获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端。
177.所述边缘服务器的具体功能可参见第一实施例,本实施例在此不再重复赘述。
178.(4)所述源站服务器505,用于根据所述直播流生成视频分片文件和分片索引文件,将当前系统时间参数添加到所述分片索引文件的文件名称中,并存储所述视频分片文件和分片索引文件。
179.具体的,所述源站服务器包括:直播流转换模块、静态文件存储模块和源站网关模块;
180.其中,直播流转换模块,用于将flv格式的直播流转化为hls流;如图4所示,直播流转换模块根据直播流生成了五个m4s视频分片文件和三个m3u8分片索引文件;m4s视频分片文件被m3u8分片索引文件所引用。
181.在本实施例中,直播流转换模块生成的视频分片文件和分片索引文件具有以下特点:
182.1、以当前系统时间参数作为分片索引文件的文件名称;
183.2、无论分片索引文件是否更新,每秒均会生成一个分片索引文件;
184.3、在每个分片索引文件中,第一个视频分片文件的第一个视频帧和第一个音频帧均为关键帧,而之后的视频分片文件的第一个视频帧和第一个音频帧不必为关键帧。
185.静态文件存储模块,用于存储视频分片文件和分片索引文件,并为源站网关模块提供视频分片文件和分片索引文件的下载服务。
186.源站网关模块,用于将视频分片文件和分片索引文件发送至边缘节点服务器。
187.需要说明的是,在实际应用中,可使用源站服务器集群,当采用源站服务器集群时,上述直播流转换模块、静态文件存储模块和源站网关模块可以部署在不同的服务器上,也可以部署在同一台服务器上。
188.实施例六
189.本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备60至少包括但不限于:可通过系统总线相互通信连接的存储器601、处理器602。需要指出的是,图6仅示出了具有组件601-602的计算机设备60,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
190.本实施例中,存储器601(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器601可以是计算机设备60的内部存储单元,例如该计算机设备60的硬盘或内存。在另一些实施例中,存储器601也可以是计算机设备60的外部存储设备,例如该计算机设备60上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器601还可以既包括计算机设备60的内部存储单元也包括其外部存储设备。在本实施例中,存储器601通常用于存储安装于计算机设备60的操作系统和各类应用软件。此外,存储器601还可以用于暂时地存
储已经输出或者将要输出的各类数据。
191.处理器602在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器602通常用于控制计算机设备60的总体操作。
192.具体的,在本实施例中,处理器602用于执行存储器601中存储的直播内容的回放方法的程序,所述直播内容的回放方法的程序被执行时实现如下步骤:
193.接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数;
194.获取当前系统时间参数,并根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址;
195.获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端。
196.上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
197.进一步的,在本实施例中,处理器602还用于执行存储器601中存储的直播内容的回放方法的程序,所述直播内容的回放方法的程序被执行时实现如下步骤:
198.当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间参数,并形成包含所述回放时间参数和第一播放地址的播放请求;
199.将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;
200.接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容。
201.上述方法步骤的具体实施例过程可参见第二实施例,本实施例在此不再重复赘述。
202.实施例七
203.本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
204.接收由用户终端发送的播放请求;其中,所述播放请求包括:第一播放地址和回放时间参数;
205.获取当前系统时间参数,并根据所述当前系统时间参数、所述第一播放地址和回放时间参数形成第二播放地址;
206.获取与所述第二播放地址对应的直播内容,并将所述直播内容发送至所述用户终端。
207.上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
208.进一步的,所述计算机程序被处理器执行时还实现如下方法步骤:
209.当检测到拖动播放进度条操作时,根据所述拖动播放进度条操作确定出回放时间
参数,并形成包含所述回放时间参数和第一播放地址的播放请求;
210.将所述播放请求发送至cdn内容分发网络中的边缘服务器,以供所述边缘服务器根据当前系统时间信息、所述回放时间参数和第一播放地址形成第二播放地址;
211.接收由所述边缘服务器发送的与所述第二播放地址对应的直播内容。
212.上述方法步骤的具体实施例过程可参见第二实施例,本实施例在此不再重复赘述。
213.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
214.上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
215.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
216.以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1