CN112351296A - 视频流的拉流转推方法、装置、服务器及存储介质 - Google Patents
视频流的拉流转推方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN112351296A CN112351296A CN202011181404.7A CN202011181404A CN112351296A CN 112351296 A CN112351296 A CN 112351296A CN 202011181404 A CN202011181404 A CN 202011181404A CN 112351296 A CN112351296 A CN 112351296A
- Authority
- CN
- China
- Prior art keywords
- pull
- state
- stream
- push
- address
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
- H04N21/2743—Video hosting of uploaded data from client
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开关于一种视频流的拉流转推方法、装置、服务器及存储介质。能够得到第三方服务器的第一拉流地址的服务器可以执行以下步骤:获取推流地址,所述推流地址包括内容分发网络服务器的域名以及视频流的标识;基于第一拉流地址以及推流地址创建拉流转推进程;通过拉流转推进程基于第一拉流地址从第三方服务器中下载所述标识对应的视频流;通过拉流转推进程将视频流基于推流地址推送至内容分发网络服务器,从而使得未得到第三方服务器的第一拉流地址的客户端,可以从内容分发网络服务器获得所述视频流。
Description
技术领域
本公开涉及拉流转推技术领域,尤其涉及视频流的拉流转推方法、装置、服务器及存储介质。
背景技术
随着网络技术的发展,网络直播越来越普遍。网络直播涉及推流设备和拉流设备,推流设备是指需要向服务器上传视频流的设备;拉流设备是指需要从服务器获得视频流的设备。
相关技术中,若推流设备需要将视频流上传至服务器,可以基于服务器对应的推流地址将视频流上传至服务器,若拉流设备需要获得该视频流,例如,拉流设备的持有者需要观看该视频流,则可以基于服务器对应的拉流地址,从服务器中获得该视频流。
对于一些服务器,例如,第三方服务器而言,第三方服务器的拉流地址仅提供给少量的拉流设备,未得到第三方服务器的拉流地址的拉流设备无法获得第三方服务器存储的视频流。
发明内容
本公开提供一种视频流的拉流转推方法、装置、服务器及存储介质,以至少解决相关技术中若存在大量的拉流设备从服务器获得视频流,会出现卡顿的现象,或者,由于服务器带宽资源有限,为了避免出现卡顿现象允许从服务器获得视频流的拉流设备的数量有限的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种视频流的拉流转推方法,包括:获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识;获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识;基于所述第一拉流地址以及所述推流地址创建拉流转推进程;通过所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流;通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
结合第一方面,在第一种可能的实现方式中,在所述通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器步骤之后,还包括:设置任务状态,所述任务状态包括所述拉流转推进程在设置所述任务状态的时刻所处的进程状态以及所述拉流转推进程的在设置所述任务状态的时刻的处理进度;在间隔预设时长后,获取任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态;基于所述真实进程状态、所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度;切换所述拉流转推进程至所述预期进程状态;返回所述设置任务状态步骤。
结合第一方面,在第二种可能的实现方式中,所述基于所述真实进程状态、所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度步骤包括:若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,确定所述预期进程状态为中断状态,以及,确定所述处理进度为未完成。
结合第一方面,在第三种可能的实现方式中,所述若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度步骤包括:若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,比较所述停播时间与当前时间;若所述停播时间早于或等于所述当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成;若所述停播时间晚于所述当前时间,基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度。
结合第一方面,在第四种可能的实现方式中,所述基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度步骤包括:若所述拉流转推进程处于中断状态的次数小于预设数目,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;若所述拉流转推进程处于中断状态的次数大于或等于所述预设数目,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
结合第一方面,在第五种可能的实现方式中,所述若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度步骤包括:若所述真实进程状态为运行状态,比较所述停播时间与当前时间;若所述停播时间晚于当前时间,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;若所述停播时间早于或等于当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
结合第一方面,在第六种可能的实现方式中,所述获取第一拉流地址步骤包括:接收电子设备发送的所述第一拉流地址,所述第一拉流地址是通过所述电子设备展示的用户界面中的输入框得到的;所述获取推流地址步骤包括:接收所述电子设备发送的所述推流地址,所述推流地址是所述电子设备在检测到启动拉流转推服务的操作的情况下生成的,所述推流地址包括所述视频流的标识以及所述内容分发网络服务器的域名。
结合第一方面,在第七种可能的实现方式中,在所述通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器步骤之后,还包括:若检测到表征预览所述视频流的指令,基于所述内容分发网络服务器的域名以及所述视频流的标识生成第二拉流地址;基于所述第二拉流地址从所述内容分发网络服务器获取所述视频流;发送从所述内容分发网络服务器中获得的所述视频流至电子设备。
结合第一方面,在第八种可能的实现方式中,在所述通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器步骤之后,还包括:若接收到客户端发送的包括所述视频流的标识的第一拉流请求,获取第一信息,所述第一信息表征是否已启动用于播放所述视频流的直播间;若所述第一信息表征已启动所述直播间,基于所述视频流的标识以及所述内容分发网络服务器的域名生成第三拉流地址;将所述第三拉流地址发送至所述客户端。
结合第一方面,在第九种可能的实现方式中,还包括:若检测到将所述停播时间变更为第一设定时间的指令,将所述停播时间设置为所述第一设定时间;和/或,若检测到停止所述拉流转推进程的指令,将所述停播时间设置为第二设定时间,所述第二设定时间早于或等于当前时间。
根据本公开实施例的第二方面,提供一种视频流的拉流转推装置,包括:第一获取模块,被配置为获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识;第二获取模块,被配置为获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识;第一创建模块,被配置为基于所述第一获取模块获得的所述第一拉流地址以及所述第二获取模块获得的所述推流地址创建拉流转推进程;第三获取模块,被配置为通过所述第一创建模块创建的所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流;第一发送模块,被配置为通过所述第一创建模块创建的所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
结合第二方面,在第一种可能的实现方式中,还包括:设置模块,被配置为设置任务状态,所述任务状态包括所述拉流转推进程在设置所述任务状态的时刻所处的进程状态以及所述拉流转推进程在设置所述任务状态的时刻的处理进度;第四获取模块,被配置为在间隔预设时长后,获取所述设置模块设置的所述任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态;第一确定模块,被配置为基于所述第四获取模块获得的真实进程状态、所述设置模块设置的所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度。切换模块,被配置为切换所述拉流转推进程至所述第一确定模块确定的所述预期进程状态,触发设置模块。
结合第二方面,在第二种可能的实现方式中,所述第一确定模块具体被配置为:第一确定单元,被配置为若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;第二确定单元,被配置为若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;第三确定单元,被配置为若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,确定所述预期进程状态为中断状态,以及,确定所述处理进度为未完成。
结合第二方面,在第三种可能的实现方式中,所述第二确定单元具体被配置为:第一比较子单元,被配置为若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,比较所述停播时间与当前时间;第一确定子单元,被配置为若所述停播时间早于或等于所述当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成;第二确定子单元,被配置为若所述停播时间晚于所述当前时间,基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度。
结合第二方面,在第四种可能的实现方式中,所述第二确定子单元具体被配置为:第一确定子模块,被配置为若所述拉流转推进程处于中断状态的次数小于预设数目,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;第二确定子模块,被配置为若所述拉流转推进程处于中断状态的次数大于或等于所述预设数目,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
结合第二方面,在第五种可能的实现方式中,所述第一确定单元具体被配置为:第二比较子单元,被配置为若所述真实进程状态为运行状态,比较所述停播时间与当前时间;第三确定子单元,被配置为若所述停播时间晚于当前时间,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;第四确定子单元,被配置为若所述停播时间早于或等于当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
结合第二方面,在第六种可能的实现方式中,所述第一获取模块具体被配置为:第一接收单元,被配置为接收电子设备发送的所述第一拉流地址,所述第一拉流地址是通过所述电子设备展示的用户界面中的输入框得到的;所述第二获取模块具体被配置为:第二接收单元,被配置为接收所述电子设备发送的所述推流地址,所述推流地址是所述电子设备在检测到启动拉流转推服务的操作的情况下生成的,所述推流地址包括所述视频流的标识以及所述内容分发网络服务器的域名。
结合第二方面,在第七种可能的实现方式中,还包括:第一生成模块,被配置为若检测到表征预览所述视频流的指令,基于所述内容分发网络服务器的域名以及所述视频流的标识生成第二拉流地址;第五获取模块,被配置为基于所述第二拉流地址从所述内容分发网络服务器获取所述视频流;第二发送模块,被配置为发送从所述内容分发网络服务器中获得的所述视频流至电子设备。
结合第二方面,在第八种可能的实现方式中,还包括:第六获取模块,被配置为若接收到客户端发送的包括所述视频流的标识的第一拉流请求,获取第一信息,所述第一信息表征是否已启动用于播放所述视频流的直播间;第二生成模块,被配置为若所述第一信息表征已启动所述直播间,基于所述视频流的标识以及所述内容分发网络服务器的域名生成第三拉流地址;第三发送模块,被配置为将所述第三拉流地址发送至所述客户端。
结合第二方面,在第九种可能的实现方式中,还包括:第一设置时间模块,被配置为若检测到将所述停播时间变更为第一设定时间的指令,将所述停播时间设置为所述第一设定时间;和/或,第二设置时间模块,被配置为若检测到停止所述拉流转推进程的指令,将所述停播时间设置为第二设定时间,所述第二设定时间早于或等于当前时间。
根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的视频流的拉流转推方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述的视频流的拉流转推方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,可直接加在到计算机的内部存储器中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现第一方面所示的视频流的拉流转推方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
能够得到第三方服务器的第一拉流地址的服务器可以执行以下步骤:获取推流地址,所述推流地址包括内容分发网络服务器的域名以及视频流的标识;基于第一拉流地址以及推流地址创建拉流转推进程;通过拉流转推进程基于第一拉流地址从第三方服务器中下载所述标识对应的视频流;通过拉流转推进程将视频流基于推流地址推送至内容分发网络服务器,从而使得未得到第三方服务器的第一拉流地址的客户端,可以从内容分发网络服务器获得所述视频流。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种实施环境的结构图;
图2是根据一示例性实施例示出的一种视频流的拉流转推方法的流程图;
图3是根据一示例性实施例示出的另一种视频流的拉流转推方法的流程图;
图4是根据一示例性实施例示出的一种用户界面的示意图;
图5是根据一示例性实施例示出的用户界面的示意图;
图6是根据一示例性实施例示出的一种视频流的拉流转推装置框图;
图7是根据一示例性实施例示出的一种用于服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在对本公开实施例提供的视频流的拉流转推方法进行详细介绍之前,这里先对本公开实施例涉及的应用场景和实施环境进行简单介绍。
首先对本公开实施例涉及的应用场景进行简单介绍。
视频采集设备采集视频流,并将视频流推送至第三方服务器;第三方服务器对应的第一拉流地址的数目有限,即得到第一拉流地址的拉流设备,能够基于第一拉流地址从第三方服务器获得视频流,未得到第一拉流地址的拉流设备无法从第三方服务器获得视频流,即允许从第三方服务器获得视频流的拉流设备数目有限。
示例性的,第三方服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者,是一个云计算服务中心。第三方服务器可以包括处理器、存储器以及网络接口等。
示例性的,第三方服务器可以为流媒体服务器,例如,电视台对应的流媒体服务器;可以理解的是,电视台可能需要直播节目,例如,直播春节联欢晚会。
示例性的,视频采集设备可以为包含摄像头的任意电子产品。
为了能够让更多的拉流设备获得上述视频流,本公开实施例提供了视频流的拉流转推方法。示例性的,本公开实施例提供的视频流的拉流转推方法可以应用于直播平台的服务器。
本公开实施例提供的方法中基于第一拉流地址从第三方服务器中获得上述视频流,将上述视频流通过推流地址推送至CDN(ContentDelivery Network,内容分发网络)服务器。使得各拉流设备可以从内容分发网络服务器中获得上述视频流。
示例性的,内容分发网络服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者,是一个云计算服务中心。
其次,对本公开实施例涉及的实施环境进行简单介绍。
图1是根据一示例性实施例示出的一种实施环境的结构图。如图1所示,本公开实施例提供的视频流传输过程应用于下述实施环境中,该实施环境涉及第三方服务器11、至少一个内容分发网络服务器12、至少一个服务器13、至少一个视频采集设备14以及至少一个拉流设备15。
其中,视频采集设备14可以通过无线网络与第三方服务器11建立连接并通信。服务器13可以通过无线网络与第三方服务器11建立连接并通信。服务器13可以通过无线网络与内容分发网络服务器12建立连接并通信。拉流设备15可以通过无线网络与内容分发网络服务器12建立连接并通信。
图1仅仅是一种示例,实际应用中视频采集设备14、内容分发网络服务器12、服务器13、拉流设备15的数量可以按照实际需求设定。图1中示出了两个视频采集设备14、一个内容分发网络服务器12、一个服务器13以及两个拉流设备15。
示例性的,第三方服务器11和内容分发网络服务器12中任一服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者,是一个云计算服务中心。第三方服务器和内容分发网络服务器中任一服务器可以包括处理器、存储器以及网络接口等。
示例性的,服务器13可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者,是一个云计算服务中心。服务器13以包括处理器、存储器以及网络接口等。
示例性的,视频采集设备14可以采集视频流,并基于第三方服务器11生成的推流地址,推送至第三方服务器11。
示例性的,本公开实施例提及的任一推流地址可以符合RTMP(Real Time MessageProtocol,实时信息传输协议)协议。
示例性的,视频采集设备14可以安装有直播客户端。直播客户端可以为直播应用程序客户端,或者,直播网页客户端。示例性的,直播客户端可以调用视频采集设备14的摄像头采集视频流。
示例性的,第三方服务器可以对应有一个或多个第一拉流地址。
示例性的,第三方服务器对应的一个或多个第一拉流地址为私密的拉流地址,仅上述至少一个服务器13可以得到,一个服务器13可以得到一个第一拉流地址。
示例性的,第一拉流地址可以为第三方服务器生成,并主动发送至服务器的,或者,服务器13向第三方服务器请求拉流地址,第三方服务器检测到服务器13在白名单内,则生成第一拉流地址,并反馈至服务器13;或者,第三方服务器生成第一拉流地址,人为告知服务器13所在直播平台的运营人员第一拉流地址,或者,其他设备生成第三方服务器对应的第一拉流地址。
示例性的,不同服务器13得到的第一拉流地址不同。每一个服务器13执行的操作相同,下面对任一服务器13进行说明。
示例性的,服务器13可以基于第一拉流地址从第三方服务器中下载视频流,并基于内容分发网络服务器12对应的推流地址,将下载的视频流推送至内容分发网络服务器12。
示例性的,服务器13接收到拉流设备发送的针对上述视频流的拉流请求后,生成内容分发网络服务器12对应的拉流地址,并反馈给拉流设备15。
示例性的,拉流设备15可以基于内容分发网络服务器12对应的拉流地址从内容分发网络服务器12获取上述视频流。
示例性的,拉流设备15可以为任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,手机、平板电脑、掌上电脑、个人计算机、可穿戴设备、智能电视、摄像头等。
示例性的,拉流设备15可以安装有直播客户端。直播客户端可以为直播应用程序客户端,或者,直播网页客户端。
本领域技术人员应能理解上述电子设备和服务器仅为举例,其他现有的或今后可能出现的电子设备或服务器如可适用于本公开,也应包含在本公开保护范围以内,并在此以引用方式包含于此。
下面结合附图对本公开提供的技术方案进行介绍。
图2是根据一示例性实施例示出的一种视频流的拉流转推方法的流程图,如图2所示,视视频流的拉流转推方法可以应用于图1所示的服务器13中,该方法包括以下步骤S21至步骤S25。
在步骤S21中,获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识。
在步骤S22中,获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识。
在步骤S23中,基于所述第一拉流地址以及所述推流地址创建拉流转推进程。
在步骤S24中,通过所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流。
在步骤S25中,通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
示例性的,第三方服务器的域名又称网域,是由一串用点分隔的名字组成第三方服务器的名称,用于在数据传输时对第三方服务器的定位标识。
示例性的,不同视频流对应的标识不同。
示例性的,第一拉流地址为从第三方服务器中下载所述视频流的地址;所述推流地址为将所述视频流推送至内容分发网络服务器的地址。
示例性的,视频流包括音频数据和视频数据中的至少一种。
示例性的,CDN服务器的域名又称网域,是由一串用点分隔的名字组成CDN服务器的名称,用于在数据传输时对CDN服务器的定位标识。
示例性的,拉流转推进程可以为ffmpeg进程。
示例性的,拉流转推进程还可以对应有属性信息,属性信息包括但不限于分辨率、停播时间、直播间的账号、直播间标题、直播间ID和屏幕类型中的至少一种。分辨率是指拉流设备从CDN服务器可以观看到所述视频流的分辨率,停播时间是指所述视频流停止直播的时间。屏幕类型为横屏播放或竖屏播放。
在启动拉流转推进程后,拉流转推进程基于第一拉流地址从第三方服务器获取视频流,可以理解的是,由于是直播,所以在停播之前,拉流转推进程会一直基于第一拉流地址从第三方服务器获得视频流,并不断将视频流推送至内容分发网络服务器,可选的,不同时刻拉流转推进程从第三方服务器得到的视频流的内容不同。
示例性的,步骤S25提及的客户端运行于图1所示的拉流设备15中。
本公开实施例提供的视频流的拉流转推方法中,能够得到第三方服务器的第一拉流地址的服务器可以执行以下步骤:获取推流地址,所述推流地址包括内容分发网络服务器的域名以及视频流的标识;基于第一拉流地址以及推流地址创建拉流转推进程;通过拉流转推进程基于第一拉流地址从第三方服务器中下载所述标识对应的视频流;通过拉流转推进程将视频流基于推流地址推送至内容分发网络服务器,从而使得未得到第三方服务器的第一拉流地址的客户端,可以从内容分发网络服务器获得所述视频流。
在一可选实现方式中,在拉流转推进程被启动后,在当前时间早于停播时间的情况下,拉流转推进程可能会进入中断状态。
示例性的,本公开实施例中拉流转推进程处于中断状态是指拉流转推进程已经退出。
下面先对拉流转推进程处于中断状态的原因进行说明。示例性的,拉流转推进程可能由于以下四个原因中至少一个原因进入中断状态。
第一个原因:网络状态较差可能导致拉流转推进程处于中断状态。
可以理解的是,拉流转推进程需要基于第一拉流地址从第三方服务器下载视频流,并将下载的视频流推送至内容分发网络服务器。这个过程需要网络状态良好,若网络状态较差,拉流转推进程可能无法基于第一拉流地址从第三方服务器下载得到视频流,和/或,无法将视频流基于推流地址推送至内容分发网络服务器,导致拉流转推进程运行失败,拉流转推进程就会自动退出,从而进入中断状态。
第二个原因:第一拉流地址有误可能导致拉流转推进程处于中断状态。
可以理解的是,拉流转推进程需要基于第一拉流地址从第三方服务器下载视频流,若第一拉流地址有误,则无法基于第一拉流地址从第三方服务器下载视频流,拉流转推进程运行失败,拉流转推进程就会自动退出,从而处于中断状态。
第三个原因:推流地址有误可能导致拉流转推进程处于中断状态。
可以理解的是,拉流转推进程需要基于推流地址将下载的视频流推送至内容分发网络服务器,若推流地址有误,则无法基于推流地址将下载的视频流推送至内容分发网络服务器,拉流转推进程运行失败,拉流转推进程就会自动退出,从而处于中断状态。
第四个原因:运行拉流转推进程的服务器13内存不足。
服务器13内存不足,可能会导致拉流转推进程崩溃,使得拉流转推进程处于中断状态。
可以理解的是,若是由于第一个原因或第四个原因导致拉流转推进程处于中断状态,可能在短时间内不能解决第一个原因或第四个原因所描述的问题,若在拉流转推进程处于中断状态短时间内,控制拉流转推进程切换至运行状态,由于第一个原因或第四个原因所描述的问题可能还未解决,会导致拉流转推进程再次进入中断状态,即再次自动退出。
若拉流转推进程由于上述第二个原因或第三个原因导致处于中断状态,那么即使再次控制拉流转推进程切换至运行状态,拉流转推进程仍然会自动退出。由于第二个原因或第三个原因处于中断状态的拉流转推进程,维持拉流转推进程处于运行状态没有意义,且会提高服务器13的数据处理量。
可以理解的是,在直播未结束之前,若拉流转推进程进入中断状态,那么,服务器13无法基于第一拉流地址从第三方服务器11中下载视频流,也无法将视频流推送至CDN服务器12,使得拉流设备15无法从CDN服务器12中获得视频流。导致出现直播故障。
若直播已经结束,视频采集设备14已经不再采集视频流,不会向第三方服务器11推送视频流,服务器13基于第一拉流地址也无法从第三方服务器11中下载到视频流,若此时拉流转推进程仍然处于运行状态,则会浪费服务器13中的处理器和CPU的资源。
为了避免出现直播故障和浪费处理器和CPU资源的问题,本公开实施例还提供了以下方法,该方法包括步骤A11至步骤A14。在该方法中,在直播未结束之前,可以自动将处于中断状态的拉流转推进程切换至运行状态,以免出现直播故障;直播结束后,可以自动将处于运行状态的拉流转推进程切换至中断状态。
在步骤A11中,设置任务状态,所述任务状态包括所述拉流转推进程在设置所述任务状态的时刻所处的进程状态以及所述拉流转推进程在设置所述任务状态的时刻的处理进度。
示例性的,拉流转推进程的进程状态为中断状态或运行状态。
示例性的,拉流转推进程的处理进度为未完成或已完成。
示例性的,在当前时间晚于停播时间的情况下,拉流转推进程的处理进度为未完成;在当前时间早于或等于停播时间的情况下,拉流转推进程的处理进度为已完成。
示例性的,在当前时间早于或等于停播时间的情况下,拉流转推进程的处理进度为已完成中的成功完成;在当前时间晚于停播时间的情况下,若拉流转推进程处于中断状态的次数大于或等于预设数目,拉流转推进程的处理进度为已完成中的失败完成;在当前时间晚于停播时间的情况下,若拉流转推进程处于中断状态的次数小于预设数目,拉流转推进程的处理进度为未完成。
由于在当前时间晚于停播时间的情况下,若拉流转推进程处于中断状态的次数大于或等于预设数目,说明可能是由于上述第二个原因或第三个原因导致的进入中断状态,即使再次启动该拉流转推进程,该拉流转推进程也很大程度上会再次进入中断状态,因此,在拉流转推进程处于中断状态的次数大于或等于预设数目的情况下,将处理进度设置为失败完成。
示例性的,预设数目可以基于实际情况确定,这里不进行限定。
在步骤A12中,在间隔预设时长后,获取任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态。
示例性的,预设时长可以基于实际情况设定,这里不进行限定。
示例性的,随着时间的流逝,当前时间在不断发生变化。假设预设时长为5分钟,当前时间为2020年6月16日14点30分,在间隔预设时长之后,当前时间为2020年6月16日14点35分。
本公开实施例中,若一个拉流转推进程的任务状态包含的处理进度为已完成,说明无需再次运行该拉流转推进程,且在本公开实施例中,处理进度为已完成的拉流转推进程的当前时间所处真实进程状态为中断状态,具体原因可参见后续的说明,因此无需对处理进度为已完成的拉流转推进程进行任何处理,维持拉流转推进程处于中断状态即可。
示例性的,可以删除处理进度为已完成的拉流转推进程。
在步骤A13中,基于所述真实进程状态、所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度。
在步骤A14中,切换所述拉流转推进程至所述预期进程状态,返回步骤A11。
示例性的,若拉流转推进程的真实进程状态与预期进程状态不同,将拉流转推进程由真实进程状态切换至预期进程状态;若拉流转推进程的真实进程状态与预期进程状态相同,保持拉流转推进程处于预期进程状态。
示例性的,若真实进程状态为中断状态,预期进程状态为运行状态,将拉流转推进程由中断状态切换至运行状态是指,再次创建该拉流转推进程,并启动该拉流转推进程;或者,启动步骤S23创建的拉流转推进程。
在本公开实施例提供的技术方案中,可以每隔预设时长获得任务状态包含的处理进度为未完成的拉流转推进程当前时间所处的真实进程状态,并确定其对应的预期进度状态,然后切换至预期进度状态。示例性的,在当前时间晚于停播时间的情况下,即直播未结束的情况下,预期进程状态为运行状态,拉流转推进程会切换至运行状态,从而避免出现上述直播故障问题;示例性的,在当前时间早于或等于停播时间的情况下,即直播结束的情况下,预期进程状态为中断状态,拉流转推进程会切换至中断状态,从而避免出现上述处理器和CPU资源浪费的问题。
下面对步骤A13进行说明。在一可选实现方式中,步骤A13涉及以下三种情况。
第一种情况:若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度。
在一可选实现方式中,第一种情况具体实现方式包括步骤B11至步骤B13。
在步骤B11中,若所述真实进程状态为运行状态,比较所述停播时间与当前时间。
在步骤B12中,若所述停播时间晚于当前时间,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成。
若停播时间晚于当前时间,说明直播还未结束,拉流转推进程的真实进程状态为运行状态,说明拉流转推进程正常运行。
在步骤B13中,若所述停播时间早于或等于当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
示例性的,步骤B13中的处理进度为已完成中的成功完成。
可以理解的是,随着时间的推移,当前时间在不断发生变化。例如,停播时间为2020年6月16日17点50分;若当前时间为2020年6月16日14点30分,当前时间早于停播时间。随着时间的推移,若当前时间为2020年6月16日17点50分,当前时间等于停播时间,随着时间的推移,若当前时间为2020年6月16日17点51分,当前时间晚于停播时间。
在当前时间已经晚于或等于停播时间的情况下,说明直播已经结束,视频采集设备14已经不再采集视频流,视频采集设备也不会再将视频流上传至第三方服务器11,服务器13基于第一拉流地址也无法从第三方服务器11中下载到视频流,若此时拉流转推进程仍然处于运行状态,则会浪费服务器13的处理器和CPU的资源。因此,在当前时间已经晚于停播时间的情况下,本公开实施例会自动控制真实进程状态为运行状态的拉流转推进程处于中断状态,以避免浪费服务器13的处理器和CPU的资源。
第二种情况:若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度。
在一可选实现方式中,第二种情况的具体实现方式包括但不限于以下两种实现方式。
第一种实现方式涉及三种情况:步骤C11至步骤C13,不同步骤对应不同情况。
在步骤C11中,若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,比较所述停播时间与当前时间。
在步骤C12中,若所述停播时间早于或等于所述当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
若停播时间早于或等于当前时间,说明视频流的直播已经结束,拉流转推进程的预期进程状态为中断状态。从而实现了在直播已经结束的情况下,维持拉流转推进程处于中断状态的目的。
示例性的,步骤C12中的处理进度为已完成中的成功完成。
在步骤C13中,若所述停播时间晚于所述当前时间,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成。
若停播时间晚于当前时间,说明直播还未结束,因此,确定预期进程状态为运行状态,从而使得拉流转推任务切换至运行状态,实现了在直播未结束之前,自动将处于中断状态的拉流转推进程切换至运行状态,以防止出现直播故障的目的。
在第一种实现方式中,若所述停播时间晚于所述当前时间,说明视频流的直播未结束,所以预期进程状态为运行状态。
第二种实现方式涉及三种情况:上述步骤C11、上述步骤C12以及步骤C14,不同步骤对应不同情况。
在步骤C14中,若所述停播时间晚于所述当前时间,基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度。
步骤C13和步骤C14为在所述停播时间晚于所述当前时间的情况下的两种不同的实现方式。
在一可选实现方式中,步骤C14的具体实现方式包括步骤D11和步骤D12。
在步骤D11中,若所述拉流转推进程处于中断状态的次数小于预设数目,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成。
示例性的,若拉流转推进程处于中断状态的次数小于预设数目,说明可能是由于第一个原因或第四个原因导致的拉流转推进程处于中断状态。第一个原因或第四个原因可以解决,因此,预期进程状态可以设置为运行状态。
示例性的,由于真实进程状态与所述任务状态包含的进程状态均为中断状态,所以拉流转推进程处于中断状态已经有一定时间,例如,至少间隔预设时长,在这段时间内第一个原因或第四个原因很大概率上已经被解决,因此,预期进程状态可以设置为运行状态。
在步骤D12中,若所述拉流转推进程处于中断状态的次数大于或等于预设数目,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
示例性的,步骤D12中的处理进度为已完成中的失败完成。
示例性的,在本公开实施例中,若拉流转推进程处于中断状态的次数大于或等于预设数目,说明该拉流转推进程可能存在不能解决的问题,例如,由于第二个原因或第三个原因导致的拉流转推进程处于中断状态。即使再次将拉流转推进程切换至运行状态,很大程度上拉流转推进程会再次切换至中断状态,因此,步骤D12中将预期进程状态设置为中断状态,处理进度设置为已完成。
可以理解的是,若由于第二个原因或第三个原因导致的拉流转推进程处于中断状态。将拉流转推进程切换至运行状态没有意义,因为拉流转推进程会再次进入中断状态,频繁将拉流转推进程切换至运行状态,会浪费处理器和CPU的资源。
示例性的,本公开实施例中预设数目可以基于实际情况而定,可以利用拉流转推进程处于中断状态的次数与预设数目的比较结果,确定拉流转推进程可能是因为哪种原因导致的处于中断状态。基于可能导致拉流转推进城处于中断状态的原因,确定预期进程状态。从而避免了在由于第二个原因或第三个原因导致的拉流转推进程处于中断状态的情况下,多次将拉流转推进程切换至运行状态,导致服务器13中的处理器和CPU的资源浪费的情况。
第三种情况涉及两种实现方式。第一种实现方式为:若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;第二种实现方式:若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,确定所述预期进程状态为中断状态,以及,确定所述处理进度为未完成。
第三种情况涉及的两种实现方式涉及表1中的三种情景,第一种实现方式涉及情景1和情景2,或,涉及情景1和情景3,第二种实现方式涉及情景4。
表1
对于情景1而言,由于当前时间晚于或等于停播时间,说明直播已经结束,因此预期进程状态为中断状态。
对于情景2而言,忽视了拉流转推进程处于中断状态的原因,只要当前时间早于停播时间,无论拉流转推进程处于中断状态的原因是什么,均控制拉流转推进程由中断状态切换至运行状态。
可以理解的是,在任务状态包含的进程状态为运行状态,当前时间的真实进程状态为中断状态的情况下,说明拉流转推进程可能是在当前时间进入中断状态的,或者,距离当前时间不久之前进入中断状态的,拉流转推进程进入中断状态的时长可能小于预设时长。若是由于第一个原因或第四个原因导致拉流转推进程处于中断状态,可能在短时间内(小于预设时长的时间内)不能解决第一个原因或第四个原因所描述的问题,若在拉流转推进程处于中断状态后,在短时间内控制拉流转推进程切换至运行状态,由于第一个原因或第四个原因所描述的问题可能还未解决,会导致拉流转推进程再次进入中断状态,即再次自动退出。
示例性的,若是由于第一个原因或第四个原因所描述的问题可能还未解决,导致拉流转推进程自动退出,会使得拉流转推进程处于中断状态的次数增加,若是这种原因导致的拉流转推进程处于中断状态的次数增加,若增加至预设数目,就不会再次运行拉流转推进程。
为了避免上述由于第一个原因或第四个原因所描述的问题可能还未解决,导致拉流转推进程再次进入中断状态的问题,以及,由于第一个原因或第四个原因所描述的问题可能还未解决,导致拉流转推进程再次进入中断状态,使得拉流转推进程处于中断状态的次数增加的问题,本公开实施例提供了情景3和情景4所示的方式。即预期进程状态为中断状态,即延长拉流转推进程处于中断状态的时间,若是由于第一个原因或第四个原因导致拉流转推进程处于中断状态,在延长的这段时间内可以解决第一个原因或第四个原因;从而不会出现情况2涉及的问题。
综上,本公开实施例中,可以基于停播时间自动控制拉流转推进程处于运行状态或状态状态,或者,停播时间和处于中断状态的次数自动控制拉流转推进程处于运行状态或状态状态,无需人为干预。
为了本领域技术人员更加理解本公开实施例提供的视频流的拉流转推方法,下面详细介绍本公开实施例。图3是根据一示例性实施例示出的另一种视频流的拉流转推方法的流程图。该方法包括步骤S31至步骤S41。
在步骤S31中,获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识。
在步骤S32中,获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识。
针对步骤S31至步骤S32的说明参见针对步骤S21至步骤S22的说明,这里不再赘述。
示例性的,在第一拉流地址和推流地址可以作为一个直播集合存储在数据库中,该数据库可以独立于服务器13,或者,属于服务器13。
示例性的,数据库可以存储有一个或多个直播集合,不同直播集合针对的视频流的标识不同。
示例性的,在初次将第一拉流地址和推流地址可以作为一个直播集合存储在数据库中后,可以在数据库中设置该直播集合的状态为初始状态,初始状态表明该直播集合对应的拉流转推进程未被创建。
示例性的,从数据库中得到处于初始状态的直播集合,以得到该直播集合包含的第一拉流地址和推流地址。
示例性的,直播集合的初始状态可以是指直播集合对应的拉流转推进程的任务状态中的处理进度为未处理,以及,任务状态中的进程状态为未处理。
示例性的,未处理属于未完成。
在步骤S33中,基于所述第一拉流地址以及所述推流地址创建拉流转推进程。
在步骤S34中,通过所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流。
示例性的,拉流转推进程对应的属性信息还包括视频流的直播开始时间。在执行步骤S34之前,还包括:若当前时间到达直播开始时间,启动所述拉流转推进程。
在步骤S35中,通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
针对步骤S33至步骤S35的说明参见针对步骤S23至步骤S25的说明,这里不再赘述。
在步骤S36中,设置任务状态,所述任务状态包括所述拉流转推进程在设置所述任务状态的时刻所处的进程状态以及所述拉流转推进程在设置所述任务状态的时刻的处理进度。
在第一次执行步骤S36时,任务状态包含的进程状态为步骤S35对应的运行状态,处理进度为未完成。
在第M次执行步骤S36时,任务状态包含的进程状态为步骤S39中的预期进程状态,处理进度为步骤S38确定的处理进度。M为大于或等于2的正整数。
在步骤S37中,在间隔预设时长后,获取任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态。
在步骤S38中,若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度。
在步骤S39中,若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度。
在步骤S40中,若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,确定所述预期进程状态为中断状态,以及,确定所述处理进度为未完成。
在步骤S41中,切换所述拉流转推进程至所述预期进程状态,返回步骤S36。
随着时间流逝,当前时间在不断发生变化,例如,若预设时长为5分钟,假设执行完毕步骤S41的时间为2020年6月17日12点40,那么在当前时间到达2020年6月17日12点45时,需要再次执行步骤“获取任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态”。
为了本领域技术人员更加理解本公开实施例提供的图3涉及的视频流的拉流转推方法,下面以一具体例子进行详细说明。该具体示例包括步骤E1至步骤E6。
在步骤E1中,在间隔预设时长后,从存储的多个拉流转推进程分别对应的任务状态中,确定任务状态包含的处理进度为未完成的目标拉流转推进程。
假设,当前时间服务器13存储有6个拉流转推进程,且分别为:拉流转推进程1、拉流转推进程2、拉流转推进程3、拉流转推进程4、拉流转推进程5以及拉流转推进程6。拉流转推进程1、拉流转推进程2、拉流转推进程3、拉流转推进程4、拉流转推进程5以及拉流转推进程6分别对应的任务状态包含的处理进度为:未处理、未完成、未完成、未完成、已完成以及已完成。
那么步骤E1确定的目标拉流转推进程包括:拉流转推进程1、拉流转推进程2、拉流转推进程3以及拉流转推进程4。
假设,拉流转推进程1的任务状态包含的进程状态为未处理,拉流转推进程2的任务状态包含的进程状态为中断状态,拉流转推进程3的任务状态包含的进程状态为运行状态,拉流转推进程4的任务状态包含的进程状态为运行状态。
示例性的,在本公开实施例中拉流转推进程可以为“新的”进程,即拉流转推进程还未被创建,例如,拉流转推进程1;拉流转推进程可以为“旧的”,即已被启动的拉流转推进程,例如,拉流转推进程2、拉流转推进程3、拉流转推进程4。
在一可选实施方式中,服务器13存储的各拉流转推进程分别对应的任务状态可以以表格的方式存储。可选的,各拉流转推进程分别对应的任务状态还可以数组的方式存储,本公开实施例对此不进行限制。
在一可选实施方式中,若拉流转推进程的任务状态包含的处理进度为已完成,可以将该拉流转推进程删除,或者,可以将该拉流转推进程对应的直播集合删除。
在步骤E2中,确定至少一个目标拉流转推进程当前时间所处的真实进程状态。
假设,拉流转推进程1的真实进程状态为未处理,拉流转推进程2的真实进程状态为中断状态,拉流转推进程3的真实进程状态为运行状态,拉流转推进程4的真实进程状态为中断状态。
在步骤E3中,针对拉流转推进程1,创建拉流转推进程1,基于拉流转推进程1中的第一拉流地址从第三方服务器下载视频流,基于拉流转推进程中的推流地址将视频流推送至CDN服务器,设置拉流转推进程1对应的任务状态中的进程状态为运行状态,任务状态中的处理进度为未完成。
在步骤E4中,针对拉流转推进程2,检测当前时间是否晚于拉流转推进程2对应的停播时间,若是,执行步骤E41;若否,执行步骤E42;
在步骤E41中,将拉流转推进程2的任务状态中的处理进度设置为已完成中的成功完成,保持拉流转推进程2处于中断状态。
在步骤E42中,检测拉流转推进程2处于中断状态的次数是否大于预设数目,若是,执行步骤E423,若否,执行步骤E424。
在步骤E423中,将拉流转推进程2的任务状态中的处理进度设置为已完成中的失败完成,保持拉流转推进程2处于中断状态。
在步骤E424中,将拉流转推进程2处于中断状态的次数+1,确定所述拉流转推进程2对应的预期进程状态为运行状态,切换拉流转推进程2至运行状态。
在步骤E5中,针对拉流转推进程3,检测当前时间是否晚于拉流转推进程3对应的停播时间,若是,执行步骤E51,若否,执行步骤E52。
在步骤E51中,确定拉流转推进程3对应的预期进程状态为中断状态,切换拉流转推进程3至中断状态,确定处理进度为已完成中的成功完成。
在步骤E52中,确定拉流转推进程3对应的预期进程状态为运行状态,确定处理进度为未完成。
在步骤E6中,针对拉流转推进程4,确定拉流转推进程4的预期进程状态为中断状态,设置处理进度为未完成。
在一可选实施方式中,若拉流转推进程的任务状态中的处理进度为已完成中的失败完成,可以生成表征未成功实现视频流的拉流转推的信息;将该信息发送至电子设备,电子设备可以展示该信息。
示例的,电子设备与服务器13通过有线网络或无线网络相连。示例性的,电子设备可以为任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,手机、平板电脑、掌上电脑、个人计算机、可穿戴设备、智能电视等。
示例性的,该信息可以包括第一拉流地址和推流地址,示例性的,该信息可以包括视频流的标识。可以理解的是,若是由于第二个原因或第三个原因导致的失败完成。运维人员看到该信息后可以查看第一拉流地址或推流地址是否有误,以便有针对性的进行修改。
在一可选实施例中,可以将拉流转推进程对应的任务状态发送至电子设备,电子设备可以展示拉流转推进程的任务状态,以使得运维人员可以看到拉流转推进程的任务状态。
在一可选实现方式中,步骤S21的实现方式有多种,本公开实施例提供但不限于以下两种。
第一种实现方式:接收第三方服务器发送的第一拉流地址。
第二种实现方式:接收电子设备发送的第一拉流地址。
在一可选实现方式中,步骤S22的实现方式有多种,本公开实施例提供但不限于以下两种。
第一种实现方式:接收CDN服务器发送的推流地址。
第二种实现方式:接收电子设备发送的推流地址。
下面对电子设备获得第一拉流地址和推流地址的过程进行说明,该过程包括步骤F1至步骤F。
在步骤F1中,展示用户界面,所述用户界面包括用于输入所述第一拉流地址的输入框A。
示例性的,用户界面还包括用于输入属性信息的输入框B。
在步骤F2中,通过步骤F1中涉及的输入框A获得所述第一拉流地址。
示例性的,通过输入框B获得属性信息。
在步骤F3中,若检测到启动拉流转推服务的操作,基于所述视频流的标识以及内容分发网络服务器的域名生成推流地址。
示例性的,启动拉流转推服务的操作可以为第一预设手势,或,包含启动拉流转推服务的语音,或,预设轨迹,或,触按预设按键中的至少一个。
图4是根据一示例性实施例示出的一种用户界面的示意图。图4所示的用户界面仅为一种示例。本公开实施例提供的用户界面的布局方式、字体、用户界面包含的内容并不限于图4所示的用户界面。
用户界面可以包括一个或多个输入框B,如图4所示包括9个输入框B,9个输入框B分别为:直播间ID 501、直播用户名称502、直播间标题503、屏幕类型504、直播类型505、直播分辨率506、供应商507、推流客户端的类型508、停播时间509。
示例性的,直播用户名称503是指将要进行直播的用户的名称。
示例性的,屏幕类型504是指横屏播放或竖屏播放。
直播类型505是视频流所属类型,例如,游戏、电视剧、电影、景色等等,图4中以直播类型为游戏中的魔兽争霸为例。
供应商507可以为第三方服务器对应的供应商。
推流客户端类型508是指服务器13的类型。
示例性的,直播ID 501中的ID号,例如图4中“6220311440”可以是人为手动或语音输入的;也可以是通过点击生成ID 510后,自动生成并填入至直播间ID 501对应的输入框中的。
可以在图4所示的多个输入框B中分别输入相应的属性信息。
用户界面可以包括一个或多个输入框A,如图4所示包括两个输入框A。其中,本公开实施例中提及的第一拉流地址可以包括图4所示的拉流地址511和备用拉流地址512中的至少一种。
可以理解的是,拉流转推进程可能会由于拉流地址错误导致自动退出,提供备用拉流地址可以减少拉流转推进程由于拉流地址错误导致自动退出的情况。
在一可选实施方式中,本公开实施例中,在得到推流地址后,自动基于述第一拉流地址、所述属性信息以及所述推流地址,得到直播集合。
本公开实施例中,电子设备可以展示有用户界面,运维人员通过用户界面可以输入第一拉流地址和属性信息,通过用户界面启动拉流转推服务,操作简便快捷。
在一可选实施例中,在启动直播间之前,可以通过电子设备预览从第三方服务器中下载并上传至CDN服务器的视频流,以查看上传至CDN服务器的视频流是否满足要求,例如,视频流的直播分辨率是否满足设定要求,视频流在播放过程中是否出现卡顿现象等等。即通过提前预览视频流的方式,来确认视频流是否满足要求。若直播视频满足要求,可以启动直播间,以使得拉流设备能够进入该直播间,并从内容分发网络服务器中获得该视频流,从而观赏直播。预览视频流的方法包括步骤G1至步骤G5。
在步骤G1中,电子设备若检测到预览视频流的操作,生成表征预览所述视频流的指令,将表征预览所述视频流的指令,发送至服务器13。
示例性的,检测到预览视频流的操作可以为:检测到相应按键被触按,或,检测到包含预览视频流的语音信息,或,检测到第二预设手势。
在步骤G2中,服务器13若接收到表征预览所述视频流的指令,基于所述内容分发网络服务器的域名以及所述视频流的标识生成第二拉流地址。
示例性的,表征预览所述视频流的指令携带第一标识,示例性的,第一标识表征电子设备具有预览权限。
示例性的,拉流设备可以向服务器13发送拉流请求,服务器13接收到的拉流设备发送的拉流请求不携带第一标识。
示例性的,表征预览所述视频流的指令携带所述视频流的标识。
示例性的,第一标识可以为电子设备的域名,或者,电子设备的标识,或者,电子设备的权限的一种或多种。
在一可选实现方式中,若需要预览视频流,可以点击电子设备展示的用户界面中相应按键。图5是根据一示例性实施例示出的用户界面的示意图。图5与图4相对应。
示例性的,若需要预览视频流,可以点击图5所示用户界面中“预览”按键701。
示例性的,若检测到“预览”按键被触按,表征预览所述视频流的指令。
示例性的,若需要查看推流地址,可以点击第二用户界面中“查看推流地址”按键702。
示例性的,图5所示的用户ID为主播的ID。
示例性的,可以选择图片作为视频流的封面,例如,可以点击图5所示的“选择文件”按键703,以上传图片。
在步骤G3中,基于所述第二拉流地址从所述内容分发网络服务器获取所述视频流。
在步骤G4中,发送从所述内容分发网络服务器中获得的所述视频流至电子设备。
在步骤G5中,电子设备展示所述视频流。
示例性的,运维人员可以通过电子设备展示的视频流,查看上传至CDN服务器的视频流是否满足要求。
本公开实施例中,步骤G1至步骤G5可以应用于在直播间启动之前,即在直播间启动之前,运维人员可以查看服务器13拉流转推至CDN服务器的视频流是否满足要求,若不满足要求,可以将属性信息中相应参数进行更改,例如,更改分辨率,以使得视频流满足要求,在满足要求后,再启动直播间,用户通过拉流设备观看到的视频流满足用户要求,提高了用户体验。
本公开实施例中,步骤G1至步骤G5可以应用于在直播间启动之后,此时电子设备也属于拉流设备。
在一可选实施例中,本公开实施例还提供了一种拉流设备15从内容分发网络服务器12获得视频流的方法,该方法包括步骤H1至步骤H5。
在步骤H1中,服务器13若接收到拉流设备15发送的包括所述视频流的标识的第一拉流请求,获取第一信息,所述第一信息表征是否已启动用于播放所述视频流的直播间。
在一可选实施例中,若需要开启直播间,可以点击图5所示的“启动直播间”按键704。若检测到“启动直播间”按键被触按,所述第一信息表征已启动播放所述视频流的直播间;若所述“启动直播间”按键未被触按,所述第一信息表征未启动播放所述视频流的直播间。
在步骤H2中,服务器13若所述第一信息表征已启动所述直播间,执行步骤H3,若第一信息表征未启动直播间,执行步骤H5。
在步骤H3中,基于所述视频流的标识以及所述内容分发网络服务器的域名生成第三拉流地址。
在步骤H4中,服务器13将所述第三拉流地址发送至所述拉流设备15。
拉流设备15基于第三拉流地址从CDN服务器获得视频流。
本公开实施例中,在直播间启动后,拉流设备可以从服务器13得到第三拉流地址,在直播间启动之前,拉流设备无法从服务器13得到第三拉流地址。
在一可选实现方式中,还包括步骤H5:
在步骤H5中,服务器13将所述第一信息发送至拉流设备15。
示例性的,拉流设备在接收到第一信息后,可以展示第一信息,从而使得拉流设备的用户知道直播未开始,以使得用户得知为何无法观看直播间,提高用户体验。
在一可选实现方式中,在拉流转推进程的任务状态包含的处理进度为未完成的情况下,还可以对停播时间进行变更。可选的,本公开实施例还包括:若检测到将所述停播时间变更为第一设定时间的指令,将所述停播时间设置为所述第一设定时间;和/或,若检测到停止所述拉流转推进程的指令,将所述停播时间设置为第二设定时间,所述第二设定时间早于或等于当前时间。
示例性的,将所述停播时间变更为第一设定时间的指令,或,停止所述拉流转推进程的指令,可以是电子设备发送至服务器13的。
示例性的,电子设备可以通过远程过程调度单元与服务器13通信;示例性的,示例性的,远程过程调度单元采用RPC(Remote Procedure Call Protocol,远程过程调用协议)协议。
示例性的,以图5为例,可以通过设置图5中“直播延时”705变更停播时间。例如,若停播时间为2020-03-31 14:00;假设直播延时705设置为30分钟,那么,第一设定时间为2020-03-31 14:30。
示例性的,以图5为例,若需要停止拉流转推进程,则可以通过点击图5中“取消直播”按键706,检测到“取消直播”按键706被触按时,获得停止所述拉流转推进程的指令。
可选的,第二设定时间可以比当前时间早1分钟,或者2分钟等等。本公开实施例并不对第二设定时间的具体值进行限定。第二设定时间可为早于或等于当前时间的任一时间。
上述本申请公开的实施例中详细描述了方法,对于本申请的方法可采用多种形式的装置实现,因此本申请还公开了一种装置,下面给出具体的实施例进行详细说明。
图6是根据一示例性实施例示出的一种视频流的拉流转推装置框图。参照图6,该装置包括:第一获取模块61、第二获取模块62、第一创建模块63、第三获取模块64以及发送模块65,其中:
第一获取模块61,被配置为获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识;
第二获取模块62,被配置为获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识;
第一创建模块63,被配置为基于所述第一获取模块获得的所述第一拉流地址以及所述第二获取模块获得的所述推流地址创建拉流转推进程;
第三获取模块64,被配置为通过所述第一创建模块创建的所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流;
第一发送模块65,被配置为通过所述第一创建模块创建的所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
本公开实施例提供的视频流的拉流转推装置中,能够通过第一获取模块61得到第三方服务器的第一拉流地址的服务器可以执行以下操作:第二获取模块62可以获取推流地址,所述推流地址包括内容分发网络服务器的域名以及视频流的标识;第一创建模块63可以基于第一拉流地址以及推流地址创建拉流转推进程;第三获取模块64可以通过拉流转推进程基于第一拉流地址从第三方服务器中下载所述标识对应的视频流;第一发送模块65可以通过拉流转推进程将视频流基于推流地址推送至内容分发网络服务器,从而使得未得到第三方服务器的第一拉流地址的客户端,可以从内容分发网络服务器获得所述视频流。
在一可选实施方式中,视频流的拉流转推装置还包括:设置模块、第四获取模块、第一确定模块以及切换模块,其中:
设置模块,被配置为设置任务状态,所述任务状态包括所述拉流转推进程在设置所述任务状态的时刻所处的进程状态以及所述拉流转推进程在设置所述任务状态的时刻的处理进度;
第四获取模块,被配置为在间隔预设时长后,获取所述设置模块设置的所述任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态;
第一确定模块,被配置为基于所述第四获取模块获得的真实进程状态、所述设置模块设置的所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度。
切换模块,被配置为切换所述拉流转推进程至所述第一确定模块确定的所述预期进程状态,触发设置模块。
在一可选实现方式中,所述第一确定模块具体被配置为:第一确定单元、第二确定单元以及第三确定单元,其中:
第一确定单元,被配置为若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;
第二确定单元,被配置为若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;
第三确定单元,被配置为若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,确定所述预期进程状态为中断状态,以及,确定所述处理进度为未完成。
在一可选实现方式中,所述第二确定单元具体被配置为:
第一比较子单元,被配置为若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,比较所述停播时间与当前时间;
第一确定子单元,被配置为若所述停播时间早于或等于所述当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成;
第二确定子单元,被配置为若所述停播时间晚于所述当前时间,基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度。
在一可选实现方式中,所述第二确定子单元具体被配置为:
第一确定子模块,被配置为若所述拉流转推进程处于中断状态的次数小于预设数目,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;
第二确定子模块,被配置为若所述拉流转推进程处于中断状态的次数大于或等于所述预设数目,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
在一可选实现方式中,所述第一确定单元具体被配置为:
第二比较子单元,被配置为若所述真实进程状态为运行状态,比较所述停播时间与当前时间;
第三确定子单元,被配置为若所述停播时间晚于当前时间,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;
第四确定子单元,被配置为若所述停播时间早于或等于当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
在一可选实现方式中,所述第一获取模块具体被配置为:
第一接收单元,被配置为接收电子设备发送的所述第一拉流地址,所述第一拉流地址是通过所述电子设备展示的用户界面中的输入框得到的;
所述第二获取模块具体被配置为:
第二接收单元,被配置为接收所述电子设备发送的所述推流地址,所述推流地址是所述电子设备在检测到启动拉流转推服务的操作的情况下生成的,所述推流地址包括所述视频流的标识以及所述内容分发网络服务器的域名。
在一可选实现方式中,视频流的拉流转推装置还包括:
第一生成模块,被配置为若检测到表征预览所述视频流的指令,基于所述内容分发网络服务器的域名以及所述视频流的标识生成第二拉流地址;
第五获取模块,被配置为基于所述第二拉流地址从所述内容分发网络服务器获取所述视频流;
第二发送模块,被配置为发送从所述内容分发网络服务器中获得的所述视频流至电子设备。
在一可选实现方式中,视频流的拉流转推装置还包括:
第六获取模块,被配置为若接收到客户端发送的包括所述视频流的标识的第一拉流请求,获取第一信息,所述第一信息表征是否已启动用于播放所述视频流的直播间;
第二生成模块,被配置为若所述第一信息表征已启动所述直播间,基于所述视频流的标识以及所述内容分发网络服务器的域名生成第三拉流地址;
第三发送模块,被配置为将所述第三拉流地址发送至所述客户端。
在一可选实现方式中,视频流的拉流转推装置还包括:
第一设置时间模块,被配置为若检测到将所述停播时间变更为第一设定时间的指令,将所述停播时间设置为所述第一设定时间;和/或,
第二设置时间模块,被配置为若检测到停止所述拉流转推进程的指令,将所述停播时间设置为第二设定时间,所述第二设定时间早于或等于当前时间。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种用于服务器的框图。参照图7,服务器13可以包括以下一个或多个组件:处理器71,存储器72,显示单元73,音频组件74,输入单元75以及通信组件76。
本领域技术人员可以理解,图7中示出的结构只做实现方式的举例,并不构成对服务器13的限定,服务器13可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图7对服务器13的各个构成部件进行具体的介绍:
可选的,处理器71是服务器13的控制中心,利用各种接口和线路连接整个服务器13的各个部分,通过运行或执行存储在存储器72内的软件程序和/或模块,以及调用存储在存储器72内的数据,执行服务器13的各种功能和处理数据,从而对服务器13进行整体监控。可选的,处理器71可包括一个或多个处理单元;优选的,处理器71可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器71中。
示例性的,存储器72被配置为存储各种类型的数据以支持在服务器13的操作。这些数据的示例包括用于在服务器13上操作的任何应用程序或方法的指令,任务及任务对应的任务状态等。存储器72可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可选的,显示单元73可用于显示由用户输入的信息或提供给用户的信息(例如显示主播的视频、显示第一用户界面、显示第二用户界面)。显示单元73可包括显示面板731,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板731。
示例性的,音频组件74被配置为输出和/或输入音频信号。例如,音频组件74包括一个麦克风(MIC),当服务器13处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器72或经由通信组件76发送。在一些实施例中,音频组件74还包括一个扬声器,用于输出音频信号,例如预览视频流时输出音频信号。
示例性的,输入单元75可用于接收用户输入的信息(例如属性信息,第一拉流地址)或字符信息,以及产生与服务器13的用户设置以及功能控制有关的键信号输入。可选的,输入单元75可以包括触控面板752以及其他输入设备751。触控面板752,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板752上或在触控面板752附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板752可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器71,并能接收处理器71发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板752。除了触控面板752,输入单元75还可以包括其他输入设备751。具体地,其他输入设备751可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
通信组件76被配置为便于服务器13和其他设备之间有线或无线方式的通信。服务器13可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件76经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件76还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,服务器13可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在本公开实施例中,该服务器13所包括处理器71可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
该处理器71具有以下功能:获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识;获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识;基于所述第一拉流地址以及所述推流地址创建拉流转推进程;通过所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流;通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器72,上述指令可由服务器13的处理器71执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,本公开实施例还提供了一种包括一条或多条指令的计算机程序产品,该一条或多条指令可以由服务器13的处理器71执行已完成上述方法。
需要说明的是,上述存储介质中的指令或计算机程序产品中的一条或多条指令被处理器901执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种视频流的拉流转推方法,其特征在于,包括:
获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识;
获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识;
基于所述第一拉流地址以及所述推流地址创建拉流转推进程;
通过所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流;
通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
2.根据权利要求1所述视频流的拉流转推方法,其特征在于,在所述通过所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器步骤之后,还包括:
设置任务状态,所述任务状态包括所述拉流转推进程在设置所述任务状态的时刻所处的进程状态以及所述拉流转推进程在设置所述任务状态的时刻的处理进度;
在间隔预设时长后,获取所述任务状态包含的处理进度为未完成的所述拉流转推进程当前时间所处的真实进程状态;
基于所述真实进程状态、所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度;
切换所述拉流转推进程至所述预期进程状态;
返回所述设置任务状态步骤。
3.根据权利要求2所述视频流的拉流转推方法,其特征在于,所述基于所述真实进程状态、所述任务状态包含的进程状态以及所述视频流的停播时间中的至少一个,确定所述拉流转推进程的预期进程状态以及所述处理进度步骤包括:
若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;
若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度;
若所述真实进程状态为中断状态且所述任务状态包含的进程状态为运行状态,确定所述预期进程状态为中断状态,以及,确定所述处理进度为未完成。
4.根据权利要求3所述视频流的拉流转推方法,其特征在于,所述若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度步骤包括:
若所述真实进程状态与所述任务状态包含的进程状态均为中断状态,比较所述停播时间与当前时间;
若所述停播时间早于或等于所述当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成;
若所述停播时间晚于所述当前时间,基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度。
5.根据权利要求4所述视频流的拉流转推方法,其特征在于,所述基于所述拉流转推进程处于中断状态的次数,确定所述预期进程状态以及所述处理进度步骤包括:
若所述拉流转推进程处于中断状态的次数小于预设数目,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;
若所述拉流转推进程处于中断状态的次数大于或等于所述预设数目,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
6.根据权利要求3至5任一所述视频流的拉流转推方法,其特征在于,所述若所述真实进程状态为运行状态,基于所述视频流的停播时间,确定所述拉流转推进程的预期进程状态以及所述处理进度步骤包括:
若所述真实进程状态为运行状态,比较所述停播时间与当前时间;
若所述停播时间晚于当前时间,确定所述预期进程状态为运行状态,以及,所述处理进度为未完成;
若所述停播时间早于或等于当前时间,确定所述预期进程状态为中断状态,以及,所述处理进度为已完成。
7.根据权利要求1至5任一所述视频流的拉流转推方法,其特征在于,所述获取第一拉流地址步骤包括:
接收电子设备发送的所述第一拉流地址,所述第一拉流地址是通过所述电子设备展示的用户界面中的输入框得到的;
所述获取推流地址步骤包括:
接收所述电子设备发送的所述推流地址,所述推流地址是所述电子设备在检测到启动拉流转推服务的操作的情况下生成的,所述推流地址包括所述视频流的标识以及所述内容分发网络服务器的域名。
8.一种视频流的拉流转推装置,其特征在于,包括:
第一获取模块,被配置为获取第一拉流地址,所述第一拉流地址包括第三方服务器的域名以及视频流的标识;
第二获取模块,被配置为获取推流地址,所述推流地址包括内容分发网络服务器的域名以及所述视频流的标识;
第一创建模块,被配置为基于所述第一获取模块获得的所述第一拉流地址以及所述第二获取模块获得的所述推流地址创建拉流转推进程;
第三获取模块,被配置为通过所述第一创建模块创建的所述拉流转推进程基于所述第一拉流地址从所述第三方服务器中下载所述标识对应的所述视频流;
第一发送模块,被配置为通过所述第一创建模块创建的所述拉流转推进程将所述视频流基于所述推流地址推送至所述内容分发网络服务器,所述内容分发网络服务器用于将所述视频流推送至客户端。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的视频流的拉流转推方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1至7中任一项所述的视频流的拉流转推方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011181404.7A CN112351296B (zh) | 2020-10-29 | 2020-10-29 | 视频流的拉流转推方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011181404.7A CN112351296B (zh) | 2020-10-29 | 2020-10-29 | 视频流的拉流转推方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112351296A true CN112351296A (zh) | 2021-02-09 |
CN112351296B CN112351296B (zh) | 2022-11-04 |
Family
ID=74355719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011181404.7A Active CN112351296B (zh) | 2020-10-29 | 2020-10-29 | 视频流的拉流转推方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112351296B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040218A (zh) * | 2021-11-08 | 2022-02-11 | 北京量子之歌科技有限公司 | 一种视频直播切换方法、装置、设备及存储介质 |
CN114827633A (zh) * | 2022-06-17 | 2022-07-29 | 浙江华创视讯科技有限公司 | 一种媒体流容灾方法、装置和相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3001633A1 (en) * | 2014-09-26 | 2016-03-30 | Alcatel Lucent | Server, client, method and computer program product for adaptive streaming of media content to a client |
CN105871800A (zh) * | 2015-12-07 | 2016-08-17 | 乐视云计算有限公司 | 一种拉流控制的方法、装置及系统 |
CN109639635A (zh) * | 2018-11-05 | 2019-04-16 | 北京达佳互联信息技术有限公司 | Cdn代理拉流方法、服务器、cdn及客户端 |
CN109819285A (zh) * | 2017-11-21 | 2019-05-28 | 乐蜜有限公司 | 一种直播方法、装置、电子设备及存储介质 |
CN110602544A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 视频展示方法及装置、电子设备、存储介质 |
CN111464759A (zh) * | 2020-03-26 | 2020-07-28 | 广州虎牙科技有限公司 | 一种直播导播方法、装置、存储介质及设备 |
CN111629251A (zh) * | 2020-06-10 | 2020-09-04 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、存储介质和电子设备 |
-
2020
- 2020-10-29 CN CN202011181404.7A patent/CN112351296B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3001633A1 (en) * | 2014-09-26 | 2016-03-30 | Alcatel Lucent | Server, client, method and computer program product for adaptive streaming of media content to a client |
CN105871800A (zh) * | 2015-12-07 | 2016-08-17 | 乐视云计算有限公司 | 一种拉流控制的方法、装置及系统 |
CN109819285A (zh) * | 2017-11-21 | 2019-05-28 | 乐蜜有限公司 | 一种直播方法、装置、电子设备及存储介质 |
CN109639635A (zh) * | 2018-11-05 | 2019-04-16 | 北京达佳互联信息技术有限公司 | Cdn代理拉流方法、服务器、cdn及客户端 |
CN110602544A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 视频展示方法及装置、电子设备、存储介质 |
CN111464759A (zh) * | 2020-03-26 | 2020-07-28 | 广州虎牙科技有限公司 | 一种直播导播方法、装置、存储介质及设备 |
CN111629251A (zh) * | 2020-06-10 | 2020-09-04 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、存储介质和电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040218A (zh) * | 2021-11-08 | 2022-02-11 | 北京量子之歌科技有限公司 | 一种视频直播切换方法、装置、设备及存储介质 |
CN114040218B (zh) * | 2021-11-08 | 2023-07-21 | 北京量子之歌科技有限公司 | 一种视频直播切换方法、装置、设备及存储介质 |
CN114827633A (zh) * | 2022-06-17 | 2022-07-29 | 浙江华创视讯科技有限公司 | 一种媒体流容灾方法、装置和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112351296B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210337246A1 (en) | Apparatus and method for aggregating video streams into composite media content | |
US10924561B2 (en) | System and method for predictive delivery of prioritized content | |
US10516757B2 (en) | Server-side scheduling for media transmissions | |
US11153110B2 (en) | Communication method and terminal in live webcast channel and storage medium thereof | |
US9736518B2 (en) | Content streaming and broadcasting | |
US9485465B2 (en) | Picture control method, terminal, and video conferencing apparatus | |
US9756373B2 (en) | Content streaming and broadcasting | |
CN112351296B (zh) | 视频流的拉流转推方法、装置、服务器及存储介质 | |
US20230061691A1 (en) | Display Apparatus with Intelligent User Interface | |
US11706489B2 (en) | Display apparatus with intelligent user interface | |
US10397647B2 (en) | System and method for delivering interactive trigger events | |
US11997331B2 (en) | Audience definition for media programs | |
US20180220168A1 (en) | Method and system for linking real-time broadcasting with non-real-time video service using user history information | |
US11153627B2 (en) | System and method for switching video presentations between devices | |
CN110430383A (zh) | 终端、信令服务器、音视频通信方法及计算机存储介质 | |
CN114071217A (zh) | 基于指令流的多屏互动方法、装置、计算机及存储介质 | |
CN114272600A (zh) | 一种控制权切换系统、方法、装置、设备及存储介质 | |
US10515473B2 (en) | Method and apparatus for generating actionable marked objects in images | |
US11689595B1 (en) | Method and system for monitoring streaming | |
US20170064377A1 (en) | Content streaming and broadcasting |
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 |