CN109194972A - 直播流获取方法、装置、计算机设备及存储介质 - Google Patents
直播流获取方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109194972A CN109194972A CN201811053048.3A CN201811053048A CN109194972A CN 109194972 A CN109194972 A CN 109194972A CN 201811053048 A CN201811053048 A CN 201811053048A CN 109194972 A CN109194972 A CN 109194972A
- Authority
- CN
- China
- Prior art keywords
- link
- stream
- server
- address
- live
- 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
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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
-
- 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/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种直播流获取方法、装置、计算机设备及存储介质,属于网络技术领域。所述方法包括:创建至少一个链接,基于每个链接与服务器之间保持通信;当检测到直播流获取操作时,获取直播流的流地址;基于所述流地址,从所述至少一个链接中获取目标链接,所述目标链接与所述流地址的域名相同;基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流。本发明通过在检测到直播流获取操作之前预先创建链接,并基于每个链接与服务器之间保持通信,从而在需要获取直播流时,可以直接基于直播流的流地址,通过该预先创建的链接,从服务器中获取流地址对应的直播流,减少了直播流获取所需花费的时间,提高了直播流获取效率。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种直播流获取方法、装置、计算机设备及存储介质。
背景技术
随着网络技术的发展以及终端功能的多样化,人们越来越喜欢通过网络与其他人进行数据共享,例如,人们可以通过网络直播的方式进行数据共享,可以称进行直播的用户为主播,称观看网络直播的用户为观众。主播所在终端可以基于采集到的直播数据,生成直播流,并将直播流发送至服务器,由服务器转发至各个观众所在终端。
目前,对于各个观众所在终端,直播流获取方法通常是在检测到对某个直播房间的点击操作时,可以获取直播流的流地址,再基于该流地址与服务器进行多次指令交互,以建立通信,待通信建立完成后,可以基于该流地址获取到对应的直播流。
上述方法中在检测到操作后才与服务器建立通信,且建立通信过程需要与服务器之间进行多次指令交互,因此,上述方法中获取直播流所需花费的时间较长,获取效率低。
发明内容
本发明实施例提供了一种直播流获取方法、装置、计算机设备及存储介质,可以解决相关技术中耗时长和获取效率低的问题。所述技术方案如下:
一方面,提供了一种直播流获取方法,所述方法包括:
创建至少一个链接,所述链接与服务器之间保持通信;
当检测到直播流获取操作时,获取直播流的流地址;
基于所述流地址,从所述至少一个链接中获取目标链接,所述目标链接与所述流地址的域名相同;
基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流。
在一种可能实现方式中,所述创建至少一个链接,包括:
从本地或云端获取至少一个域名;
在每个域名后添加串流名称,得到至少一个链接;
基于所述至少一个链接访问所述服务器,与所述服务器之间保持通信。
在一种可能实现方式中,所述在每个域名后添加串流名称,包括:
在每个域名后添加随机生成的串流名称;或,在每个域名后添加预设串流名称。
在一种可能实现方式中,所述在每个域名后添加串流名称,得到至少一个链接之后,所述方法还包括:
将所述至少一个链接添加至链接池中,所述链接池用于存储候选的链接。
在一种可能实现方式中,所述方法还包括:
根据每个链接对应的与所述服务器的通信情况,对所述每个链接的状态进行更新。
在一种可能实现方式中,所述根据每个链接对应的与所述服务器的通信情况,对所述每个链接的状态进行更新,包括:
对于任一个链接,当通过所述链接与所述服务器建立通信的过程中未与所述服务器建立完成网络流连接时,将所述链接的状态设置为不可用状态;
当通过所述链接与所述服务器建立完成网络流连接时,将所述链接的状态设置为可用状态。
在一种可能实现方式中,所述方法还包括:
对于任一个链接,当通过所述链接与所述服务器建立完成网络流连接时,暂停基于所述链接进行的指令交互步骤;
周期性地基于所述链接向所述服务器发送网络请求,基于所述网络请求对应的响应的接收情况,对所述链接进行处理。
在一种可能实现方式中,所述方法还包括:
当周期性地基于所述链接向所述服务器发送网络请求时,将所述链接的状态设置为不可用状态;
所述基于所述网络请求对应的响应的接收情况,对所述链接进行处理,包括:
当目标时长内未接收到所述服务器发送的响应时,销毁所述链接,重新创建一个链接;或,
当目标时长内接收到所述服务器发送的响应时,将所述链接的状态设置为可用状态。
在一种可能实现方式中,所述基于所述流地址,从所述至少一个链接中获取目标链接,包括:
获取所述流地址包括的目标域名和目标串流名称;
对所述目标域名和所述至少一个链接进行匹配,获取匹配的链接作为目标链接。
在一种可能实现方式中,所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流,包括:
将所述目标链接中的串流名称替换为所述目标串流名称;
基于替换后的所述目标链接,从所述服务器中获取所述目标串流名称对应的直播流。
在一种可能实现方式中,所述方法还包括:
当所述目标链接的状态为可用状态时,执行所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流的步骤;
当所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流的结果为获取失败或所述目标链接的状态为不可用状态时,销毁所述目标链接,基于所述流地址重新创建一个链接,基于所述重新创建的链接,从所述服务器中获取所述流地址对应的直播流。
在一种可能实现方式中,所述方法还包括:
当所述匹配的链接的数量为多个时,从多个匹配的链接中获取状态为可用状态的链接作为目标链接。
在一种可能实现方式中,所述方法还包括:
当所述目标域名和所述至少一个链接均匹配失败时,销毁所述至少一个链接,基于所述流地址重新创建一个链接,基于所述重新创建的链接,从所述服务器中获取所述流地址对应的直播流。
在一种可能实现方式中,所述方法还包括:
当销毁所述至少一个链接中任一链接或基于所述至少一个链接中任一链接获取直播流时,重新创建一个链接。
一方面,提供了一种直播流获取装置,所述装置包括:
创建模块,用于创建至少一个链接,所述链接与服务器之间保持通信;
地址获取模块,用于当检测到直播流获取操作时,获取直播流的流地址;
链接获取模块,用于基于所述流地址,从所述至少一个链接中获取目标链接,所述目标链接与所述流地址的域名相同;
直播流获取模块,用于基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流。
在一种可能实现方式中,所述创建模块用于:
从本地或云端获取至少一个域名;
在每个域名后添加串流名称,得到至少一个链接;
基于所述至少一个链接访问所述服务器,与所述服务器之间保持通信。
在一种可能实现方式中,所述创建模块用于在每个域名后添加随机生成的串流名称;或,所述创建模块用于在每个域名后添加预设串流名称。
在一种可能实现方式中,所述创建模块还用于将所述至少一个链接添加至链接池中,所述链接池用于存储候选的链接。
在一种可能实现方式中,所述装置还包括:
状态更新模块,用于根据每个链接对应的与所述服务器的通信情况,对所述每个链接的状态进行更新。
在一种可能实现方式中,所述状态更新模块用于:
对于任一个链接,当通过所述链接与所述服务器建立通信的过程中未与所述服务器建立完成网络流连接时,将所述链接的状态设置为不可用状态;
当通过所述链接与所述服务器建立完成网络流连接时,将所述链接的状态设置为可用状态。
在一种可能实现方式中,所述装置还包括:
处理模块,用于对于任一个链接,当通过所述链接与所述服务器建立完成网络流连接时,暂停基于所述链接进行的指令交互步骤;
所述处理模块,还用于周期性地基于所述链接向所述服务器发送网络请求,基于所述网络请求对应的响应的接收情况,对所述链接进行处理。
在一种可能实现方式中,所述处理模块还用于当周期性地基于所述链接向所述服务器发送网络请求时,将所述链接的状态设置为不可用状态;
所述处理模块还用于:
当目标时长内未接收到所述服务器发送的响应时,销毁所述链接,重新创建一个链接;或,
当目标时长内接收到所述服务器发送的响应时,将所述链接的状态设置为可用状态。
在一种可能实现方式中,所述链接获取模块用于:
获取所述流地址包括的目标域名和目标串流名称;
对所述目标域名和所述至少一个链接进行匹配,获取匹配的链接作为目标链接。
在一种可能实现方式中,所述直播流获取模块用于:
将所述目标链接中的串流名称替换为所述目标串流名称;
基于替换后的所述目标链接,从所述服务器中获取所述目标串流名称对应的直播流。
在一种可能实现方式中,所述装置还包括:
执行模块,用于当所述目标链接的状态为可用状态时,执行所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流的步骤;
所述直播流获取模块,还用于当所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流的结果为获取失败或所述目标链接的状态为不可用状态时,销毁所述目标链接,基于所述流地址重新创建一个链接,基于所述重新创建的链接,从所述服务器中获取所述流地址对应的直播流。
在一种可能实现方式中,所述链接获取模块还用于当所述匹配的链接的数量为多个时,从多个匹配的链接中获取状态为可用状态的链接作为目标链接。
在一种可能实现方式中,所述直播流获取模块,还用于当所述目标域名和所述至少一个链接均匹配失败时,销毁所述至少一个链接,基于所述流地址重新创建一个链接,基于所述重新创建的链接,从所述服务器中获取所述流地址对应的直播流。
在一种可能实现方式中,所述创建模块还用于当销毁所述至少一个链接中任一链接或基于所述至少一个链接中任一链接获取直播流时,重新创建一个链接。
一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现所述直播流获取方法所执行的操作。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述直播流获取方法所执行的操作。
本发明实施例通过在检测到直播流获取操作之前预先创建链接,并基于每个链接与服务器之间保持通信,从而在需要获取直播流时,可以直接基于直播流的流地址,通过该预先创建的链接,从服务器中获取流地址对应的直播流,相较于需要获取直播流时才创建链接,并进行多次指令交互与服务器建立通信,通信建立完成后才能从服务器中获取直播流,将与服务器之间建立通信的指令交互过程提前到检测到直播流获取操作之前,减少了直播流获取所需花费的时间,有效地提高了直播流获取效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种网络直播***示意图;
图2是本发明实施例提供的一种直播流获取方法流程图;
图3是本发明实施例提供的一种直播流获取方法流程图;
图4是本发明实施例提供的一种直播流获取装置的结构示意图;
图5是本发明实施例提供的一种终端的结构示意图;
图6是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种网络直播***示意图,网络直播是一种新兴的网络社交方式,它是多个用户可以在同一时间通过网络观看或收听同样的直播内容的一种社交方式。
一般地,主播可以在直播房间中展示歌唱、游戏、电影、电视剧等音视频内容,其中,该直播房间是一种提供弹幕式音视频直播的在线虚拟房间。观众可以通过终端进入该直播房间,在该直播房间中观看或收听主播的展示内容,也可以与该主播进行互动,例如,点赞、为该主播送礼物、关注或者分享该主播、与该主播进行聊天等。
如图1所示,该网络直播***可以包括多个终端和内容分发网络,其中,该多个终端中可以包括一个主播所在终端和n个观众所在终端。该内容分发网络用于为该多个终端提供音视频服务。该主播所在终端可以采集主播直播过程中的音视频数据,并基于该音视频数据获取直播流,从而将该直播流发送至内容分发网络,由该内容分发网络将该直播流转发至该n个观众所在终端,则该观众所在终端可以对该直播流进行解码并播放,使得观众可以观看主播的直播内容。
其中,该内容分发网络是由多个节点服务器所构成的虚拟网络,该多个节点服务器分布于网络各处,该内容分发网络可以根据网络流量和各个节点服务器的连接、负载情况、与用户的距离以及响应时间等因素,将直播流发送至距离用户最近的节点服务器上,从而基于该节点服务器实现直播流转发过程。
需要说明的是,该主播所在终端可以通过终端上的直播应用进行直播,也可以通过门户网站进行直播,同理地,该n个观众所在终端也可以通过直播应用或门户网站获取到直播流,本发明实施例对此不作限定。
当然,该网络直播***还可以包括消息中转分发服务器,该消息中转分发服务器不区分终端是观众所在终端,还是主播所在终端,该消息中转分发服务器可以将任一终端发送的消息,广播给其他终端,从而该直播房间内的所有终端均可以看到该消息,该消息通常是观众和主播的互动内容,本发明实施例对在此不作过多赘述。
图2是本发明实施例提供的一种直播流获取方法流程图,参见图2,该方法包括:
201、计算机设备创建至少一个链接,该链接与服务器之间保持通信。
202、当检测到直播流获取操作时,计算机设备获取直播流的流地址。
203、计算机设备基于该流地址,从该至少一个链接中获取目标链接,该目标链接与该流地址的域名相同。
204、计算机设备基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流。
本发明实施例通过在检测到直播流获取操作之前预先创建链接,并基于每个链接与服务器之间保持通信,从而在需要获取直播流时,可以直接基于直播流的流地址,通过该预先创建的链接,从服务器中获取流地址对应的直播流,相较于需要获取直播流时才创建链接,并进行多次指令交互与服务器建立通信,通信建立完成后才能从服务器中获取直播流,将与服务器之间建立通信的指令交互过程提前到检测到直播流获取操作之前,减少了直播流获取所需花费的时间,有效地提高了直播流获取效率。
在一种可能实现方式中,该创建至少一个链接,包括:
从本地或云端获取至少一个域名;
在每个域名后添加串流名称,得到至少一个链接;
基于该至少一个链接访问该服务器,与该服务器之间保持通信。
在一种可能实现方式中,该在每个域名后添加串流名称,包括:
在每个域名后添加随机生成的串流名称;或,在每个域名后添加预设串流名称。
在一种可能实现方式中,该在每个域名后添加串流名称,得到至少一个链接之后,该方法还包括:
将该至少一个链接添加至链接池中,该链接池用于存储候选的链接。
在一种可能实现方式中,该方法还包括:
根据每个链接对应的与该服务器的通信情况,对该每个链接的状态进行更新。
在一种可能实现方式中,该根据每个链接对应的与该服务器的通信情况,对该每个链接的状态进行更新,包括:
对于任一个链接,当通过该链接与该服务器建立通信的过程中未与该服务器建立完成网络流连接时,将该链接的状态设置为不可用状态;
当通过该链接与该服务器建立完成网络流连接时,将该链接的状态设置为可用状态。
在一种可能实现方式中,该方法还包括:
对于任一个链接,当通过该链接与该服务器建立完成网络流连接时,暂停基于该链接进行的指令交互步骤;
周期性地基于该链接向该服务器发送网络请求,基于该网络请求对应的响应的接收情况,对该链接进行处理。
在一种可能实现方式中,该方法还包括:
当周期性地基于该链接向该服务器发送网络请求时,将该链接的状态设置为不可用状态;
该基于该网络请求对应的响应的接收情况,对该链接进行处理,包括:
当目标时长内未接收到该服务器发送的响应时,销毁该链接,重新创建一个链接;或,
当目标时长内接收到该服务器发送的响应时,将该链接的状态设置为可用状态。
在一种可能实现方式中,该基于该流地址,从该至少一个链接中获取目标链接,包括:
获取该流地址包括的目标域名和目标串流名称;
对该目标域名和该至少一个链接进行匹配,获取匹配的链接作为目标链接。
在一种可能实现方式中,该基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流,包括:
将该目标链接中的串流名称替换为该目标串流名称;
基于替换后的该目标链接,从该服务器中获取该目标串流名称对应的直播流。
在一种可能实现方式中,该方法还包括:
当该目标链接的状态为可用状态时,执行该基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的步骤;
当该基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的结果为获取失败或该目标链接的状态为不可用状态时,销毁该目标链接,基于该流地址重新创建一个链接,基于该重新创建的链接,从该服务器中获取该流地址对应的直播流。
在一种可能实现方式中,该方法还包括:
当该匹配的链接的数量为多个时,从多个匹配的链接中获取状态为可用状态的链接作为目标链接。
在一种可能实现方式中,该方法还包括:
当该目标域名和该至少一个链接均匹配失败时,销毁该至少一个链接,基于该流地址重新创建一个链接,基于该重新创建的链接,从该服务器中获取该流地址对应的直播流。
在一种可能实现方式中,该方法还包括:
当销毁该至少一个链接中任一链接或基于该至少一个链接中任一链接获取直播流时,重新创建一个链接。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图3是本发明实施例提供的一种直播流获取方法流程图,该方法可以应用于计算机设备,该计算机设备可以为上述观众所在终端,也可以为内容分发网络中的任一节点服务器,下述仅以该计算机设备为终端为例进行说明。参见图3,该直播流获取方法可以包括以下步骤:
301、计算机设备从本地或云端获取至少一个域名。
在本发明实施例中,计算机设备可以在用户想要观看网络直播之前,也即是计算机设备需要获取直播流之前,预先创建链接,并基于链接与服务器建立通信。例如,该计算机设备在检测到对直播应用的开启操作时,或该计算机设备检测到目标按钮的点击操作时,或该计算机设备检测到对目标界面中的目标区域的点击操作时,该计算机设备可以执行该步骤301。
例如,该目标按钮可以为直播界面的开启按钮,也可以为直播房间的进入按钮,又例如,该目标界面则可以是该直播应用的主页面,则该目标区域可以为该主页面中的直播区域,上述仅以一种示例性说明,本发明实施例对此不作限定。
其中,该链接的规则通常是域名/串流名称,该域名是指服务器的地址。域名通常与互联网协议(Internet Protocol,IP)地址对应,该IP地址的格式是IP协议提供的一种统一的地址格式。一般地,计算机设备可以通过域名***(Domain Name System,DNS)服务器,获取到域名对应的IP地址,从而基于IP地址访问相应的服务器,本发明实施例在此不多做赘述。
需要说明的是,该计算机设备和服务器之间通信所采用的协议不同,该服务器的域名则可能不同。例如,如果计算机设备与服务器之间通信采用实时消息传输协议(RealTime Messaging Protocol,RTMP)协议,则该服务器的域名可以为rtmp://XXXX.YYYY.com/streamname。其中,rtmp://XXXX.YYYY.com即为域名,streamname即为串流名称。而如果采用实时流传输协议(Real Time Streaming Protocol,RTSP)协议,域名可能为rtsp://XXXX.YYYY.com/streamname。其中,rtsp://XXXX.YYYY.com即为域名,streamname即为串流名称。上述仅以两种协议为例进行说明,该计算机设备和服务器之间通信还可以采用其他协议,本发明实施例对此不作限定。
在一种可能实现方式中,该计算机设备在创建链接时,可以先获取至少一个域名,再基于该至少一个域名创建至少一个链接。其中,该至少一个域名是指获取直播流时可能访问的服务器的地址。具体地,该步骤301可以包括两种实现方式:
第一种方式:计算机设备从本地获取至少一个域名。
在该第一种方式中,计算机设备在下载直播应用时,该直播应用的配置文件中既可以包括获取直播流时可能访问的服务器的地址,也即是上述至少一个域名。则计算机设备可以从本地的配置文件中获取该至少一个域名。
第二种方式:计算机设备从云端获取至少一个域名。
在该第二种方式中,计算机设备在需要创建链接时,可以向服务器发送请求,由该服务器向该计算机设备发送该至少一个域名。例如,该服务器可以为应用服务器或接口服务器,当然,也可以是其他类型的服务器,本发明实施例对此不作限定。
在该服务器中可以存储有用于转发直播流的流服务器的域名。具体地,可以存储于应用服务器或接口服务器的数据库中,当然,该至少一个域名也可以是其它存储方式,本发明实施例对此不作限定。则相应地,该计算机设备可以向应用服务器或接口服务器发送请求,应用服务器或接口服务器可以基于该请求,从存储的数据中,获取得到流服务器的域名,并将该域名发送至该计算机设备。
302、计算机设备在每个域名后添加串流名称,得到至少一个链接。
计算机设备在获取到至少一个域名后,要创建链接,还需要串流名称,而现在还未确定直播流的串流名称,则可以现在获取到的域名后添加一个自定义串流名称,这样得到链接后,可以预先与服务器建立通信。
具体地,计算机设备可以在每个域名后添加随机生成的串流名称,也可以在每个域名后添加预设串流名称。在一种可能实现方式中,计算机设备还可以在步骤301中,从本地或云端获取到串流名称生成规则或预设串流名称,从而在该步骤302中生成串流名称或直接添加该预设串流名称。当然,该计算机设备也可以随机生成流水号,以此作为串流名称,并添加于每个域名之后,本发明实施例对此不作限定。
在一种可能实现方式中,计算机设备获取到链接后,还可以将该至少一个链接添加至链接池中,该链接池用于存储候选的链接。也即是,通过对该链接池的维护,使得计算机设备在需要获取直播流时,可以从该链接池中获取链接来实现直播流获取过程。
在一个具体的可能实施例中,该计算机设备还可以基于每个域名得到多个链接。这样对于任一个域名,如果基于该域名得到的某个链接不可用,还可以获取基于该域名得到的其他链接,从而可以提高该至少一个链接的可用性和灵活性。
303、计算机设备基于该至少一个链接访问该服务器,与该服务器之间保持通信。
计算机设备在获取到链接后,可以基于链接与服务器建立通信,则后续在需要从服务器获取直播流时,可以基于已经建立好的通信链路,获取到相应的直播流。
一般地,计算机设备基于该至少一个链接访问服务器的过程可以包握手、建立网络连接、建立网络流连接和播放四个阶段。在本发明实施例中,该计算机设备提前与服务器建立通信,而并没有检测到直播流获取操作,也即是还无需获取直播流,也没有确定要获取的直播流,则该步骤303中,计算机设备可以执行上述握手、建立网络连接和建立网络流连接三个阶段。
下述以该计算机设备与服务器之间通信采用RTMP协议为例,对该计算机执行上述三个阶段的过程进行说明:
(1)握手
其中,在数据通信中,握手是指在进行信息交换之前对操作模式的状态互相达成协定的过程,也即是指在接收端和发送端之间建立通信参数的过程。则该计算机设备在从服务器获取直播流之前,可以先与服务器之间建立通信参数。
具体地,RTMP协议中握手阶段通常由计算机设备和服务器各发送三个块完成,计算机设备发送的块记为C0块、C1块和C2块,服务器发送的块记为S0块、S1块和S2块。其中,块是指消息片段。则该握手阶段计算机设备和服务器的具体交互过程可以为:
计算机设备可以向服务器发送C0和C1块,该C0块和C1块可以一起发送,也可以先后发送,服务器接收到C0块,或者接收到C0块和C1块后,可以向计算机设备发送S0块和S1块,计算机设备接收到S1块后,可以向服务器发送C2块,服务器在接收到C1块后,还可以向计算机设备发送S2块,则计算机设备接收到S2块后,可以向服务器发送其他数据,服务器接收到C2后,可以向计算机设备发送其他数据。需要说明的是,本发明实施例对上述各个块的格式、类型以及包括的具体内容不作限定,在此也不过多赘述。
(2)建立网络连接
其中,该网络连接代表服务器应用程序和计算机设备之间基本的连通关系。也即是,完成该建立网络连接阶段后,该服务器和计算机设备之间建立起网络连接,但还无法支持直播流传输。
具体地,在上述计算机设备向服务器发送C2块时,还可以向服务器发送连接(connect)命令消息,请求与服务器某个应用程序建立连接,当然,计算机设备也可以在接收到S2块之后,再发送该连接命令消息。服务器接收到该连接命令消息后,可以发送确认窗口大小(Window Acknowledgement Size)协议消息到计算机设备,同时与该连接命令消息指示的应用程序连接。该服务器还可以向计算机设备发送设置带宽协议消息。计算机设备对该设置带宽协议消息进行处理后,可以向服务器发送确认窗口大小(WindowAcknowledgement Size)协议消息。上述服务器在连接到应用程序后,可以返回连接成功的消息,还可以向计算机设备发送用户控制消息中的“流开始”(Stream Begin)消息。则该计算机设备和服务器之间建立了网络连接。需要说明的是,上述仅对服务器和计算机设备发送的消息进行了示例性说明,本发明实施例对具体各个消息的发送时段和消息内容不作限定。
(3)建立网络流连接
其中,网络流连接代表了发送多媒体数据的通道。通过上述过程,计算机设备仅可以服务器的应用程序进行基础的消息交互,而无法传输直播流,因此,计算机设备在在该建立网络流连接阶段,可以向服务器发送命令消息中的创建流(createStream)命令,服务器接收到该创建流命令后,可以发送命令消息中的结果(_result),通知计算机设备流的状态。则该计算机设备和服务器之间已经建立了网络流连接,计算机设备和服务器之间可以传输多媒体流,在本发明实施例中,也即是计算机设备可以从服务器中获取直播流。
上述步骤301至步骤303为创建至少一个链接,基于每个链接与服务器之间保持通信的过程,在该过程中,计算机设备在检测到直播流获取操作之前,预先创建链接,以便于后续在需要获取直播流时,可以直接基于创建好的链接,获取直播流,从而可以提高直播流获取效率。
在一种可能实现方式中,上述过程中还可以为该至少一个链接中的每个链接设置状态,计算机设备可以根据每个链接对应的与该服务器的通信情况,对该每个链接的状态进行更新。其中,链接的状态可以包括可用状态和不可用状态,可用状态用于表示当前能够直接基于该链接获取直播流,不可用状态用于表示当前无法基于该连接获取直播流。
具体地,该计算机设备根据通信情况对链接的状态进行更新的过程可以为:对于任一个链接,当通过该链接与该服务器建立通信的过程中未与该服务器建立完成网络流连接时,计算机设备将该链接的状态设置为不可用状态。当通过该链接与该服务器建立完成网络流连接时,计算机设备将该链接的状态设置为可用状态。从上述过程中可以看出,对于任一个链接,当通过该链接与服务器建立完成网络流链接时,计算机设备才可以基于该链接,从服务器中获取直播流。则如果未建立完成网络流连接,则该链接不可用,如果建立完成网络流链接,则该链接可用。
相关技术中,计算机设备通常是在检测到直播流获取操作时,获取到直播流的流地址,从而基于流地址创建链接,并基于链接执行与上述步骤303同理的步骤,并在建立网络流连接后,可以基于流地址,向服务器发送play指令,基于流地址中的串流名称,获取到相应的直播流。
在本发明实施例中,计算机设备在检测到直播流获取操作之前,即执行上述步骤301至步骤303,预先创建了链接,并与服务器建立通信,完成上了上述建立通信的三个阶段,由于通信建立过程中均依据预先创建的链接,而非直播流的流地址,且该预先创建的链接中的串流名称为自定义的名称,并非直播流的流地址中的串流名称,如果计算机设备继续上述RTMP报文处理过程,通过自定义的流地址并不能获取到直播流,则可能会出现拉流失败的情况,也即是直播流获取失败的情况,该链接则会因拉流失败或直播流获取失败而被销毁,因此,计算机设备可以暂停上述指令交互步骤,进入循环等待,并在循环等待过程中保持与服务器之间的通信,待检测到直播流获取操作,才可以继续执行后续指令交互步骤。
具体地,对于任一个链接,当通过该链接与该服务器建立完成网络流连接时,计算机设备可以暂停基于该链接进行的指令交互步骤,然后计算机设备可以周期性地基于该链接向该服务器发送网络请求,基于该网络请求对应的响应的接收情况,对该链接进行处理。也即是,该计算机设备暂停指令交互步骤,进入循环等待过程,该循环等待过程中,计算机设备可以每隔预设时长,基于该链接向该服务器发送网络请求,并确定是否在一定时间内接收到响应,从而可以确定该链接是否可用,从而可以对该链接进行相应处理。
例如,该预设时长可以为5秒,则每隔5秒,计算机设备可以与服务器进行一次pingpong通信,该pingpong通信可以用于确定两个设备之间的链接是否正常。一般地,该pingpong通信通常可以应用于使用长链接作为通信手段的场景中。具体地,计算机设备可以每隔一段时间执行ping操作,向发送的网络请求中写入ping数据,并将该网络请求发送至服务器,服务器接收到该网络请求后,可以读取该网络请求中的数据,并判断读取的数据是否为ping数据,如果是,则服务器可以基于该ping数据进行相应处理,进行pong操作,从而将pong数据携带在响应中返回至计算机设备,计算机设备则可以基于响应进行相应处理。上述仅为一种pingpong通信的示例性说明,该pingpong通信过程通常可以变形为其他过程,例如,计算机设备和服务器仅发送消息,而不基于数据进行其他处理等,本发明实施例对此不作限定。本发明实施例对上述网络请求以及对应的响应中的具体内容不作限定,当然,该过程也可以不采用pingpong通信的方式,本发明实施例对此也不作限定。
在一种可能实现方式中,当周期性地基于该链接向该服务器发送网络请求时,计算机设备将该链接的状态设置为不可用状态。由于该计算机设备与服务器进行上述通信过程中,无法确定该链接是否可用,则可以默认该链接不可用,这样可以避免基于该链接获取直播流可能出现获取失败的情况。
相应地,计算机设备基于该网络请求对应的响应的接收情况,对该链接进行处理的过程可以包括以下两种情况:
第一种情况、当目标时长内接收到该服务器发送的响应时,计算机设备将该链接的状态设置为可用状态。
其中,该目标时长可以由相关技术人员预先设置,该目标时长可以为一个较短的时间,例如,100毫秒,当然,上述数值均为一种示例性说明,本发明实施例对该目标时长的具体取值不作限定。在该第一种情况中,计算机设备在较短的时间内即接收到服务器发送的响应,说明该计算机上设备与服务器之间通信正常,也即是该链接可用,则可以将链接状态恢复为可用状态。
第二种情况、当目标时长内未接收到该服务器发送的响应时,计算机设备销毁该链接,重新创建一个链接。
在该第二种情况中,计算机设备在较短的时间内未接收到服务器发送的响应,说明该计算机设备与服务器之间的通信可能出现了问题,也可能是服务器发送响应的时间较晚,或者该服务器发送的响应的传输速度太慢,由于重新创建一个链接所需花费的时间无需很长时间,一般为几十至几千毫秒,通常为几十毫秒,且无法确定上述链接是否出现了问题,则可以销毁该链接,并重新创建一个链接,这样可以有效保证链接与服务器之间的通信正常,保证该链接的可靠性。
304、当检测到直播流获取操作时,计算机设备获取直播流的流地址。
该直播流获取操作可以为对直播房间的点击操作,或者对某个直播房间的地址的点击操作,也即是,该直播流获取操作通常为进入某个直播房间的操作,例如,用户在想要观看某个主播的直播内容时,可以对该主播的直播房间进行点击操作,也可以点击该直播房间的地址以进入该直播房间,计算机设备在检测到该直播流获取操作时,可以通过与服务器之间进行交互,获取得到该直播流的流地址。
例如,该计算机设备可以从流媒体服务器中获取得到直播流的流地址,该流媒体服务器的功能包括对媒体流进行采集、缓存、调度和传输播放等。该媒体流中即可以包括直播流。在一种可能实现方式中,该流媒体服务器中可以存储有直播房间和直播流的流地址的对应关系,则计算机设备可以基于直播流获取操作所指示的直播房间,获取到对应的直播流的流地址,上述仅为一种示例性说明,本发明实施例对具体是否从流媒体服务器处获取流地址,以及是否具体获取过程不作限定。
305、计算机设备获取该流地址包括的目标域名和目标串流名称。
在本发明实施例中,计算机设备需要从服务器中获取直播流时,需要继续上述指令交互步骤,将串流名称发送至服务器,从而服务器可以获取该串流名称对应的直播流至该计算机设备。且如果该计算机设备需要基于预先创建的链接获取直播流,也需要采用与该流地址域名相同的链接,因此,计算机设备可以截取该流地址包括的目标域名和目标串流名称,从而可以基于获取到的目标域名,执行下述步骤306,从候选的已创建的链接中选择合适的链接。
在一种可能实现方式中,计算机设备可以获取该流地址中的第一目标字段中的数据作为目标域名,将第二目标字段中的数据作为目标串流名称。例如,可以将该流地址中前80%的数据作为目标域名,将剩下的20%的数据作为目标串流名称。
306、计算机设备对该目标域名和该至少一个链接进行匹配,获取匹配的链接作为目标链接,该目标链接与该流地址的域名相同。
计算机设备获取到目标域名后,可以从至少一个链接中获取域名为该目标域名的链接,从而基于已经预先与服务器建立通信的链接,直接进行后续直播流获取过程,而无需再重新创建新的链接,再进行多次指令交互,可以有效减少直播流获取过程所需花费的时间,从而提高直播流获取效率。具体地,计算机设备可以执行该步骤306,获取与该目标域名匹配的链接作为目标链接,该目标链接即为将要被用于获取直播流的链接。
上述305和步骤306为基于该流地址,从该至少一个链接中获取目标链接的过程,这样可以直接使用预先创建的至少一个链接中的链接,而无需重新创建链接,再进行上述指令交互过程,有效提高了直播流获取效率。在一种可能实现方式中,计算机设备也可以不执行步骤305,不获取目标域名和目标流名字,而直接对该流地址和该至少一个链接进行匹配,从而获取匹配的链接作为目标链接,本发明实施例对具体采用哪种实现方式不作限定。
对应于上述对该至少一个链接的状态的设置,该计算机设备获取到目标链接后,还可以基于该目标链接的状态,进一步确定是否通过该目标链接获取直播流。具体可以包括以下两种可能场景:
第一种场景:当该目标链接的状态为可用状态时,计算机设备执行基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的步骤。
计算机设备可以根据该目标链接的状态,确定该目标链接是否可用,如果该目标链接的状态为可用状态,也即是该目标链接与服务器之间已经建立完成网络流连接,且在上述循环等待过程中,该目标链接与服务器之间通信正常,则计算机设备可以基于该目标链接,执行下述步骤307和步骤308,以实现直播流获取。
第二种场景:当该基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的结果为获取失败或该目标链接的状态为不可用状态时,计算机设备销毁该目标链接,基于该流地址重新创建一个链接,基于该重新创建的链接,从该服务器中获取该流地址对应的直播流。
其中,该目标链接的状态为不可用状态的情况可以是:该目标链接可能还未与服务器之间建立完成网络流连接;或,该目标链接在循环等待过程中与服务器之间的通信出现了故障;或,当前计算机设备当前正基于该目标链接向服务器发送网络请求,无法确定该目标链接是否可用从而默认不可用。则这些情况下,计算机设备确定该目标链接不可用,则可以直接销毁该目标链接,并基于流地址重新创建一个链接,基于重新创建的链接,进行上述指令交互步骤,和服务器建立通信,并在通信建立完成后,从服务器中获取流地址对应的直播流。
当然,如果在上述第一种场景中,计算机设备基于目标链接获取直播流的过程中,由于通信出现故障,或该计算机设备或服务器出现任何故障导致直播流获取失败,计算机设备也可以基于流地址重新创建链接,并执行后续直播流获取步骤。
需要说明的是,除了上述两种场景,该计算机设备在获取目标链接时,除了基于目标域匹配之外,还可以基于该至少一个链接的状态,获取状态为可用状态的链接。也即是,当该匹配的链接的数量为多个时,计算机设备从多个匹配的链接中获取状态为可用状态的链接作为目标链接。这样在获取目标链接时,即根据链接的状态对候选的链接进行了进一步筛选,可以有效降低直播流获取失败的概率,从而从整体上提高了直播流获取效率。
307、计算机设备将该目标链接中的串流名称替换为该目标串流名称。
由于该目标链接中的串流名称为创建该目标链接时随机生成的或预设的,是一个自定义串流名称,而并非直播流的流地址中的真实串流名称,计算机设备在获取目标链接后,还可以对该目标链接中的串流名称进行替换,将其替换为直播流的流地址包括的目标串流名称,这样计算机设备执行下述步骤308,基于替换后的目标链接,则可以获取到该直播流。
308、计算机设备基于替换后的该目标链接,从该服务器中获取该目标串流名称对应的直播流。
在该步骤308中,该计算机设备可以控制该目标链接跳出上述循环等待过程,继续进行指令交互,在一种可能实现方式中,该计算机设备可以向服务器发送播放“play”命令,该play命令中即携带有该目标串流名称。服务器接收到该播放命令后,则可以将基于该play命令进行的操作的结果发送至计算机设备,然后将该串流名称对应的直播流发送至该计算机设备。上述仅为一种指令交互的示例性说明,本发明实施例对具体发送的指令以及指令的内容等不作限定。
上述步骤307和步骤308为基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的过程,需要说明的是,上述仅对计算机设备获取到目标链接的情况进行说明,在一种可能实现方式中,上述步骤306中还可能包括一种场景:该目标域名和该至少一个链接均匹配失败。在这种场景下,计算机设备可以销毁该至少一个链接,基于该流地址重新创建一个链接,基于该重新创建的链接,从该服务器中获取该流地址对应的直播流。这种场景中可能该计算机设备创建至少一个链接前,执行步骤301时获取到的域名均不是本次要获取的直播流所在的服务器的地址,这种情况下,计算机设备可以基于流地址重新创建链接,完成上述直播流获取过程。在一种可能实现方式中,该计算机设备还可以基于该流地址包括的目标域名,执行上述步骤302和步骤303,提高该计算机设备中预先创建的链接的实用性。
在一种可能实现方式中,对于上述至少一个链接,计算机设备还可以设置有维护机制:当销毁该至少一个链接中任一链接或基于该至少一个链接中任一链接获取直播流时,计算机设备重新创建一个链接。也即是,每当使用或销毁一个链接时,均再重新创建一个链接,从而保证上述候选的链接的数量保持不变。这样在用户频繁切换直播房间时,可以基于预先创建的链接,重新获取直播流,减少首帧显示的时延。
本发明实施例通过在检测到直播流获取操作之前预先创建链接,并基于每个链接与服务器之间保持通信,从而在需要获取直播流时,可以直接基于直播流的流地址,通过该预先创建的链接,从服务器中获取流地址对应的直播流,相较于需要获取直播流时才创建链接,并进行多次指令交互与服务器建立通信,通信建立完成后才能从服务器中获取直播流,将与服务器之间建立通信的指令交互过程提前到检测到直播流获取操作之前,减少了直播流获取所需花费的时间,有效地提高了直播流获取效率。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图4是本发明实施例提供的一种直播流获取装置的结构示意图,参见图4,该装置可以包括:
创建模块401,用于创建至少一个链接,基于每个链接与服务器之间保持通信;
地址获取模块402,用于当检测到直播流获取操作时,获取直播流的流地址;
链接获取模块403,用于基于该流地址,从该至少一个链接中获取目标链接,该目标链接与该流地址的域名相同;
直播流获取模块404,用于基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流。
在一种可能实现方式中,该创建模块401用于:
从本地或云端获取至少一个域名;
在每个域名后添加串流名称,得到至少一个链接;
基于该至少一个链接访问该服务器,与该服务器之间保持通信。
在一种可能实现方式中,该创建模块401用于在每个域名后添加随机生成的串流名称;或,该创建模块401用于在每个域名后添加预设串流名称。
在一种可能实现方式中,该创建模块401还用于将该至少一个链接添加至链接池中,该链接池用于存储候选的链接。
在一种可能实现方式中,该装置还包括:
状态更新模块,用于根据每个链接对应的与该服务器的通信情况,对该每个链接的状态进行更新。
在一种可能实现方式中,该状态更新模块用于:
对于任一个链接,当通过该链接与该服务器建立通信的过程中未与该服务器建立完成网络流连接时,将该链接的状态设置为不可用状态;
当通过该链接与该服务器建立完成网络流连接时,将该链接的状态设置为可用状态。
在一种可能实现方式中,该装置还包括:
处理模块,用于对于任一个链接,当通过该链接与该服务器建立完成网络流连接时,暂停基于该链接进行的指令交互步骤;
该处理模块,还用于周期性地基于该链接向该服务器发送网络请求,基于该网络请求对应的响应的接收情况,对该链接进行处理。
在一种可能实现方式中,该处理模块还用于当周期性地基于该链接向该服务器发送网络请求时,将该链接的状态设置为不可用状态;
该处理模块还用于:
当目标时长内未接收到该服务器发送的响应时,销毁该链接,重新创建一个链接;或,
当目标时长内接收到该服务器发送的响应时,将该链接的状态设置为可用状态。
在一种可能实现方式中,该链接获取模块403用于:
获取该流地址包括的目标域名和目标串流名称;
对该目标域名和该至少一个链接进行匹配,获取匹配的链接作为目标链接。
在一种可能实现方式中,该直播流获取模块404用于:
将该目标链接中的串流名称替换为该目标串流名称;
基于替换后的该目标链接,从该服务器中获取该目标串流名称对应的直播流。
在一种可能实现方式中,该装置还包括:
执行模块,用于当该目标链接的状态为可用状态时,执行该基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的步骤;
该直播流获取模块404,还用于当该基于该目标链接和该流地址,从该服务器中获取该流地址对应的直播流的结果为获取失败或该目标链接的状态为不可用状态时,销毁该目标链接,基于该流地址重新创建一个链接,基于该重新创建的链接,从该服务器中获取该流地址对应的直播流。
在一种可能实现方式中,该链接获取模块403还用于当该匹配的链接的数量为多个时,从多个匹配的链接中获取状态为可用状态的链接作为目标链接。
在一种可能实现方式中,该直播流获取模块404,还用于当该目标域名和该至少一个链接均匹配失败时,销毁该至少一个链接,基于该流地址重新创建一个链接,基于该重新创建的链接,从该服务器中获取该流地址对应的直播流。
在一种可能实现方式中,该创建模块401还用于当销毁该至少一个链接中任一链接或基于该至少一个链接中任一链接获取直播流时,重新创建一个链接。
本发明实施例提供的装置,通过在检测到直播流获取操作之前预先创建链接,并基于每个链接与服务器之间保持通信,从而在需要获取直播流时,可以直接基于直播流的流地址,通过该预先创建的链接,从服务器中获取流地址对应的直播流,相较于需要获取直播流时才创建链接,并进行多次指令交互与服务器建立通信,通信建立完成后才能从服务器中获取直播流,将与服务器之间建立通信的指令交互过程提前到检测到直播流获取操作之前,减少了直播流获取所需花费的时间,有效地提高了直播流获取效率。
需要说明的是:上述实施例提供的直播流获取装置在获取直播流时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的直播流获取装置与直播流获取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述计算机设备可以被提供为下述图5所示的终端,也可以被提供为下述图6所示的服务器:
图5是本发明实施例提供的一种终端的结构示意图。该终端500可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端500包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本发明中方法实施例提供的直播流获取方法。
在一些实施例中,终端500还可选包括有:***设备接口503和至少一个***设备。处理器501、存储器502和***设备接口503之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口503相连。具体地,***设备包括:射频电路504、触摸显示屏505、摄像头506、音频电路507、定位组件508和电源509中的至少一种。
***设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和***设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和***设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本发明对此不加以限定。
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。
定位组件508用于定位终端500的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件508可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***、俄罗斯的格雷纳斯***或欧盟的伽利略***的定位组件。
电源509用于为终端500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。
加速度传感器511可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器513可以设置在终端500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置终端500的正面、背面或侧面。当终端500上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。
接近传感器516,也称距离传感器,通常设置在终端500的前面板。接近传感器516用于采集用户与终端500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与终端500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图5中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图6是本发明实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)601和一个或一个以上的存储器602,其中,该存储器602中存储有至少一条指令,该至少一条指令由该处理器601加载并执行以实现上述各个方法实施例提供的直播流获取方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的直播流获取方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种直播流获取方法,其特征在于,所述方法包括:
创建至少一个链接,基于每个链接与服务器之间保持通信;
当检测到直播流获取操作时,获取直播流的流地址;
基于所述流地址,从所述至少一个链接中获取目标链接,所述目标链接与所述流地址的域名相同;
基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流。
2.根据权利要求1所述的方法,其特征在于,所述创建至少一个链接,包括:
从本地或云端获取至少一个域名;
在每个域名后添加串流名称,得到至少一个链接;
基于所述至少一个链接访问所述服务器,与所述服务器之间保持通信。
3.根据权利要求2所述的方法,其特征在于,所述在每个域名后添加串流名称,包括:
在每个域名后添加随机生成的串流名称;或,在每个域名后添加预设串流名称。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据每个链接对应的与所述服务器的通信情况,对所述每个链接的状态进行更新。
5.根据权利要求4所述的方法,其特征在于,所述根据每个链接对应的与所述服务器的通信情况,对所述每个链接的状态进行更新,包括:
对于任一个链接,当通过所述链接与所述服务器建立通信的过程中未与所述服务器建立完成网络流连接时,将所述链接的状态设置为不可用状态;
当通过所述链接与所述服务器建立完成网络流连接时,将所述链接的状态设置为可用状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
对于任一个链接,当通过所述链接与所述服务器建立完成网络流连接时,暂停基于所述链接进行的指令交互步骤;
周期性地基于所述链接向所述服务器发送网络请求,基于所述网络请求对应的响应的接收情况,对所述链接进行处理。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当周期性地基于所述链接向所述服务器发送网络请求时,将所述链接的状态设置为不可用状态;
所述基于所述网络请求对应的响应的接收情况,对所述链接进行处理,包括:
当目标时长内未接收到所述服务器发送的响应时,销毁所述链接,重新创建一个链接;或,
当目标时长内接收到所述服务器发送的响应时,将所述链接的状态设置为可用状态。
8.根据权利要求1所述的方法,其特征在于,所述基于所述流地址,从所述至少一个链接中获取目标链接,包括:
获取所述流地址包括的目标域名和目标串流名称;
对所述目标域名和所述至少一个链接进行匹配,获取匹配的链接作为目标链接。
9.根据权利要求8所述的方法,其特征在于,所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流,包括:
将所述目标链接中的串流名称替换为所述目标串流名称;
基于替换后的所述目标链接,从所述服务器中获取所述目标串流名称对应的直播流。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述目标链接的状态为可用状态时,执行所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流的步骤;
当所述基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流的结果为获取失败或所述目标链接的状态为不可用状态时,销毁所述目标链接,基于所述流地址重新创建一个链接,基于所述重新创建的链接,从所述服务器中获取所述流地址对应的直播流。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述匹配的链接的数量为多个时,从多个匹配的链接中获取状态为可用状态的链接作为目标链接。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当销毁所述至少一个链接中任一链接或基于所述至少一个链接中任一链接获取直播流时,重新创建一个链接。
13.一种直播流获取装置,其特征在于,所述装置包括:
创建模块,用于创建至少一个链接,基于每个链接与服务器之间保持通信;
地址获取模块,用于当检测到直播流获取操作时,获取直播流的流地址;
链接获取模块,用于基于所述流地址,从所述至少一个链接中获取目标链接,所述目标链接与所述流地址的域名相同;
直播流获取模块,用于基于所述目标链接和所述流地址,从所述服务器中获取所述流地址对应的直播流。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求12任一项所述的直播流获取方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求12任一项所述的直播流获取方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811053048.3A CN109194972B (zh) | 2018-09-10 | 2018-09-10 | 直播流获取方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811053048.3A CN109194972B (zh) | 2018-09-10 | 2018-09-10 | 直播流获取方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109194972A true CN109194972A (zh) | 2019-01-11 |
CN109194972B CN109194972B (zh) | 2021-06-22 |
Family
ID=64915787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811053048.3A Active CN109194972B (zh) | 2018-09-10 | 2018-09-10 | 直播流获取方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194972B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109819031A (zh) * | 2019-01-24 | 2019-05-28 | 广州虎牙信息科技有限公司 | 一种连接方法、装置、设备和存储介质 |
CN110213603A (zh) * | 2019-05-22 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种直播流传输方法、装置、服务器、***及存储介质 |
CN111355971A (zh) * | 2020-02-20 | 2020-06-30 | 北京金山云网络技术有限公司 | 直播流传输方法、装置、cdn服务器及计算机可读介质 |
CN112291103A (zh) * | 2020-11-12 | 2021-01-29 | Oppo广东移动通信有限公司 | 网络调度方法、装置、电子设备及存储介质 |
CN112423012A (zh) * | 2020-11-18 | 2021-02-26 | 青岛华升联信智慧科技有限公司 | 一种多级负载的直播方法 |
CN114844870A (zh) * | 2022-03-25 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 一种媒体流获取方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355448A (zh) * | 2011-06-29 | 2012-02-15 | 北京原力创新科技有限公司 | 云流媒体数据传输方法及*** |
CN102655603A (zh) * | 2011-03-01 | 2012-09-05 | 鸿富锦精密工业(深圳)有限公司 | 网络电视***及网络电视***的节目选取方法 |
US9226018B1 (en) * | 2011-08-16 | 2015-12-29 | Spb Tv Ag | Methods and apparatus for rendering a video on a mobile device utilizing a local server |
CN106028062A (zh) * | 2016-06-24 | 2016-10-12 | 乐视控股(北京)有限公司 | 一种视频应用程序控制方法及视频应用程序控制*** |
CN107155139A (zh) * | 2017-05-11 | 2017-09-12 | 北京小米移动软件有限公司 | 媒体内容播放方法、装置及计算机可读存储介质 |
CN107872548A (zh) * | 2017-11-10 | 2018-04-03 | 北京知道创宇信息技术有限公司 | 网页链接方法、装置及可读存储介质 |
CN107888968A (zh) * | 2017-11-21 | 2018-04-06 | 广州酷狗计算机科技有限公司 | 直播视频的播放方法、装置及计算机存储介质 |
-
2018
- 2018-09-10 CN CN201811053048.3A patent/CN109194972B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102655603A (zh) * | 2011-03-01 | 2012-09-05 | 鸿富锦精密工业(深圳)有限公司 | 网络电视***及网络电视***的节目选取方法 |
CN102355448A (zh) * | 2011-06-29 | 2012-02-15 | 北京原力创新科技有限公司 | 云流媒体数据传输方法及*** |
US9226018B1 (en) * | 2011-08-16 | 2015-12-29 | Spb Tv Ag | Methods and apparatus for rendering a video on a mobile device utilizing a local server |
CN106028062A (zh) * | 2016-06-24 | 2016-10-12 | 乐视控股(北京)有限公司 | 一种视频应用程序控制方法及视频应用程序控制*** |
CN107155139A (zh) * | 2017-05-11 | 2017-09-12 | 北京小米移动软件有限公司 | 媒体内容播放方法、装置及计算机可读存储介质 |
CN107872548A (zh) * | 2017-11-10 | 2018-04-03 | 北京知道创宇信息技术有限公司 | 网页链接方法、装置及可读存储介质 |
CN107888968A (zh) * | 2017-11-21 | 2018-04-06 | 广州酷狗计算机科技有限公司 | 直播视频的播放方法、装置及计算机存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109819031A (zh) * | 2019-01-24 | 2019-05-28 | 广州虎牙信息科技有限公司 | 一种连接方法、装置、设备和存储介质 |
CN110213603A (zh) * | 2019-05-22 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种直播流传输方法、装置、服务器、***及存储介质 |
CN110213603B (zh) * | 2019-05-22 | 2021-12-28 | 腾讯科技(深圳)有限公司 | 一种直播流传输方法、装置、服务器、***及存储介质 |
CN111355971A (zh) * | 2020-02-20 | 2020-06-30 | 北京金山云网络技术有限公司 | 直播流传输方法、装置、cdn服务器及计算机可读介质 |
CN111355971B (zh) * | 2020-02-20 | 2021-12-24 | 北京金山云网络技术有限公司 | 直播流传输方法、装置、cdn服务器及计算机可读介质 |
CN112291103A (zh) * | 2020-11-12 | 2021-01-29 | Oppo广东移动通信有限公司 | 网络调度方法、装置、电子设备及存储介质 |
CN112291103B (zh) * | 2020-11-12 | 2023-06-13 | Oppo广东移动通信有限公司 | 网络调度方法、装置、电子设备及存储介质 |
CN112423012A (zh) * | 2020-11-18 | 2021-02-26 | 青岛华升联信智慧科技有限公司 | 一种多级负载的直播方法 |
CN112423012B (zh) * | 2020-11-18 | 2023-05-09 | 青岛华升联信智慧科技有限公司 | 一种多级负载的直播方法 |
CN114844870A (zh) * | 2022-03-25 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 一种媒体流获取方法、装置、电子设备及存储介质 |
CN114844870B (zh) * | 2022-03-25 | 2024-03-26 | 阿里巴巴(中国)有限公司 | 一种媒体流获取方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109194972B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194972A (zh) | 直播流获取方法、装置、计算机设备及存储介质 | |
JP6324625B2 (ja) | ライブインタラクティブシステム、情報の送信方法、情報の受信方法及び装置 | |
US10701451B2 (en) | Program interaction system, method, client, and backend server | |
CN110213636B (zh) | 在线视频的视频帧生成方法、装置、存储介质及设备 | |
CN109246123A (zh) | 媒体流获取方法及装置 | |
US20220241686A1 (en) | Information processing method, system, apparatus, device, and storage medium | |
CN109413453A (zh) | 视频播放方法、装置、终端及存储介质 | |
CN108966008A (zh) | 直播视频回放方法及装置 | |
CN110213608A (zh) | 显示虚拟礼物的方法、装置、设备及可读存储介质 | |
CN109168073A (zh) | 直播间封面显示的方法和装置 | |
CN111596885B (zh) | 音频数据处理方法、服务器及存储介质 | |
CN107888968A (zh) | 直播视频的播放方法、装置及计算机存储介质 | |
CN110213612A (zh) | 直播互动方法、装置及存储介质 | |
CN109657165A (zh) | 页面跳转方法及装置 | |
CN110213153A (zh) | 未读消息的显示方法、获取方法、装置、终端及存储介质 | |
CN110061900A (zh) | 消息显示方法、装置、终端及计算机可读存储介质 | |
CN108717432A (zh) | 资源查询方法及装置 | |
CN112583806B (zh) | 资源共享方法、装置、终端、服务器及存储介质 | |
CN111866140B (zh) | 融合管理设备、管理***、服务调用方法及介质 | |
CN110121084A (zh) | 切换端口的方法、装置和*** | |
CN111045568A (zh) | 基于区块链的虚拟物品处理方法、装置、设备及存储介质 | |
CN109922356A (zh) | 视频推荐方法、装置和计算机可读存储介质 | |
CN107896337A (zh) | 信息推广方法、装置及存储介质 | |
WO2020244516A1 (zh) | 在线互动的方法和装置 | |
CN108579075A (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 |