用于暂停rtmp流的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机通信领域,尤其涉及用于暂停RTMP流的方法和装置。
【背景技术】
[0002]随着近期视音频直播业务的崛起,各种视音频直播应用和产品正不断受到关注,视音频直播相关的功能也在不断完善。RTMP(Real Time Messaging Protocol)协议是视音频直播技术的常用应用层协议,但标准的RTMP协议没有为直播流的暂停/恢复提供支持。在现有技术中,主播如果不想将当下的视音频直播出去,只能结束直播,断开RTMP流连接。如果主播想继续直播,只能重新建立RTMP流,重新开始直播。因此,如何能够暂停RTMP直播流是一个值得研究的问题。
【发明内容】
[0003]本发明的目的是提供一种在发布客户端中用于暂停RTMP流的方法和装置,一种在服务器中用于暂停RTMP流的方法和装置,以及一种在客户端中用于暂停RTMP流的方法和装置。
[0004]根据本发明的一个方面,提供一种在发布客户端中用于暂停RTMP流的方法,其中,该方法包括以下步骤:
[0005]-向服务器发送第一消息,其中,所述第一消息用于指示RTMP流将暂停;
[0006]-暂停发布所述RTMP流。
[0007]根据本发明的另一个方面,提供一种在发布客户端中用于暂停RTMP流的装置,其中,所述装置包括:
[0008]-用于向服务器发送第一消息的装置,其中,所述第一消息用于指示RTMP流将暂停;
[0009]-用于暂停发布所述RTMP流的装置。
[0010]根据本发明的另一个方面,提供一种在服务器中用于暂停RTMP流的方法,其中,所述方法包括:
[0011 ]-接收来自发布客户端的第一消息,其中,所述第一消息用于指示RTMP流将暂停;
[0012]-基于所述第一消息,向播放所述RTMP流的一个或多个客户端中的各个客户端分别发送第三消息,其中,所述第三消息用于指示所述RTMP流将暂停;
[0013]-对于所述一个或多个客户端中的各个客户端,暂停向其发送所述RTMP流的数据。
[0014]根据本发明的另一个方面,提供一种在服务器中用于暂停RTMP流的装置,其中,所述装置包括:
[0015]-用于接收来自发布客户端的第一消息的装置,其中,所述第一消息用于指示RTMP流将暂停;
[0016]-用于基于所述第一消息,向播放所述RTMP流的一个或多个客户端中的各个客户端分别发送第三消息的装置,其中,所述第三消息用于指示所述RTMP流将暂停;
[0017]-用于对于所述一个或多个客户端中的各个客户端,暂停向其发送所述RTMP流的数据的装置。
[0018]根据本发明的另一个方面,提供一种在客户端中用于暂停RTMP流的方法,其中,所述方法包括:
[0019]-接收来自服务器的第三消息,其中,所述第三消息用于指示RTMP流将暂停;
[0020]-基于所述第三消息,暂停播放所述RTMP流的数据。
[0021]根据本发明的另一个方面,提供一种在客户端中用于暂停RTMP流的装置,所述装置包括:
[0022]-用于接收来自服务器的第三消息的装置,其中,所述第三消息用于指示RTMP流将暂停;
[0023]-用于基于所述第三消息,暂停播放所述RTMP流的数据的装置。
[0024]与现有技术相比,本发明扩展了 RTMP协议,使其能够支持暂停RTMP流的功能。本发明使得RTMP协议功能更加完善,并有助于提升用户体验。
【附图说明】
[0025]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0026]图1示出一种利用RTMP协议进行直播的系统的示意图;
[0027]图2示出根据本发明一个方面的实施例的在发布客户端中用于暂停RTMP流的方法的流程图;
[0028]图3示出根据本发明另一个方面的实施例的在服务器中用于暂停RTMP流的方法的流程图;
[0029]图4示出根据本发明另一个方面的实施例的在客户端中用于暂停RTMP流的方法的流程图;
[0030]图5示出根据本发明另一个方面的实施例的在发布客户端中用于暂停RTMP流的装置的示意图;
[0031]图6示出根据本发明另一个方面的实施例的在服务器中用于暂停RTMP流的装置的不意图;
[0032]图7示出根据本发明另一个方面的实施例的在客户端中用于暂停RTMP流的装置的示意图。
[0033]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0034]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0035]在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
[0036]所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
[0037]需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
[0038]后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
[0039]这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
[0040]应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
[0041]应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
[0042]这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
[0043]还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
[0044]下面结合附图对本发明作进一步详细描述。
[0045]为便于读者更好地理解本
【发明内容】
,图1示出一种利用RTMP协议进行直播的系统的示意图。如图1所示,该系统中包括发布客户端、服务器以及客户端。在直播过程中,发布客户端可发布RTMP流到服务器,服务器将该RTMP流发送至期望接收该RTMP流的各个客户端,然后各个客户端接收并播放该RTMP流。
[0046]图2示出根据本发明一个方面的实施例的在发布客户端中用于暂停RTMP流的方法的流程图。
[0047]其中,本实施例的方法主要通过用户设备来实现;所述用户设备包括但不限于PC机、平板电脑、智能手机、PDA等。
[0048]需要说明的是,所述用户设备仅为举例,其他现有的或今后可能出现的用户设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
[0049]首先,在步骤S21中,发布客户端向服务器发送第一消息,其中,所述第一消息用于指示RTMP流将暂停。在一个优选实施例中,所述第一消息为RTMP命令消息(RTMPCommand Message)。例如,该第一消息扩展了原RTMP命令消息,其中,该新RTMP命令消息的命令名为例如“暂停发布”,并且该命令消息中包括该RTMP流的标识,例如RTMP流的名字,从而该新RTMP命令消息可用于指示该RTMP流将暂停。本领域技术人员应理解,此处,对于第一消息的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
[0050]接着,在步骤S22中,发布客户端暂停发布该RTMP流。具体地,发布客户端可暂停向服务器发布该RTMP流。此外,发布客户端还可记录该RTMP流的状态为暂停状态。
[0051]在一个优选实施例中,发布客户端还可接收来自服务器的RTMP Ping消息。例如,当RTMP流暂停时,由于发布客户端不再向服务器发送数据,从而发布客户端与服务器端之间的连接有可能因为无数据通信而被关闭。此时,服务器可向发布客户端定时发送RTMPPing消息以保持该连接的有效性。相应地,发布客户端可接收来自服务器的该RTMP Ping消息。从而发布客户端可基于该RTMP Ping消息,确定其于该服务器之间的连接性。也即当发布客户端接收到来自服务器的RTMP Ping消息时,则可确定其与该服务器之间的连接仍然有效。此外,发布客户端可向该服务器发送对于该RTMP Ping消息的响应消息。当服务器接收到来自该发布客户端的上述响应消息时,则可确定其于发布客户端之间的连接有效。
[0052]在一个实施例中,发布客户端还可以向服务器发送第二消息,其中,该第二消息用于指示该RTMP流将继续。在一个实施例中,所述第二消息为RTMP命令消息。例如,该第二消息扩展了原RTMP命令消息,其中,该新RTMP命令消息的命令名为例如“继续发布”,并且该命令消息中包括该RTMP流的标识,例如RTMP流的名字,从而该新RTMP命令消息可用于指示该RTMP流将继续。本领域技术人员应理解,此处,对于第二消息的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。当发布客户端向服务器发送该第二消息之后,发布客户端继续发布该RTMP流。
[0053]图3示出根据本发明另一个方面的实施例的在服务器中用于暂停RTMP流的方法的流程图。
[0054]其中,本实施例的方法主要通过网络设备来实现;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
[0055]需要说明的是,所述网络设备仅为举例,其他现有的或今后可能出现的网络设备如可适用于本发明,也应包含在本发明保护范