CN117319692A - 时移播放方法和装置、计算设备、存储介质 - Google Patents

时移播放方法和装置、计算设备、存储介质 Download PDF

Info

Publication number
CN117319692A
CN117319692A CN202210704138.4A CN202210704138A CN117319692A CN 117319692 A CN117319692 A CN 117319692A CN 202210704138 A CN202210704138 A CN 202210704138A CN 117319692 A CN117319692 A CN 117319692A
Authority
CN
China
Prior art keywords
time
playing
content
play
real
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.)
Pending
Application number
CN202210704138.4A
Other languages
English (en)
Inventor
兰玉龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210704138.4A priority Critical patent/CN117319692A/zh
Publication of CN117319692A publication Critical patent/CN117319692A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Abstract

本申请公开了一种时移播放方法,该方法由第一方实施并包括:接收来自至少一个第二方中的目标方的时移播放请求,其中时移播放请求包括时移时间,该时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于至少一个第二方实时播放,实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时;根据时移播放请求包括的时移时间在当前时间已实时播放的媒体内容中获取要时移播放的起始内容,起始内容为当前时间已实时播放的媒体内容中包括起始时间点的部分;传送要时移播放的起始内容和起始内容的后续内容以供目标方播放。

Description

时移播放方法和装置、计算设备、存储介质
技术领域
本申请涉及多媒体播放的技术领域,特别涉及时移播放方法和装置、计算设备、计算机可读存储介质及计算机程序产品。
背景技术
在可时移的直播活动中,主播可以在直播平台上向观众实时传送信息,这些信息例如可以是要展现的文艺活动、正在发起的互动。同样的,观众也可以在直播平台上向主播传送信息,例如文字信息。此外,观众还可以在直播过程中请求时移,回看精彩的播放片段。由于网络技术的局限性,主播与观众之间的信息传送存在延时,这种延时可以显著降低信息传送效率并在互动中产生滞后现象,从而降低用户体验。为了使得直播活动的信息传送更有效率、互动中的滞后较小,直播平台应尽可能缩短主播与观众之间的延时。
在目前的直播技术中,如果直播平台要保留时移功能,则仅能选择基于超文本传输协议的自适应码率流媒体传输协议(HTTP (超文本传输协议, Hyper Text TransferProtocol) Live Streaming,简称为“HLS协议”)来将主播的直播内容传送给观众,不能选择其他延时较小的协议来传送。HLS协议是一种延时较大的通信协议,在基于该协议传送数据时,将待传送的数据分为多个文件(即,切片),每次传送时只传送一个文件。即便不考虑网络环境带来的延时,在使用基于HLS协议的传送方式时,延时也至少为播放一个切片的时间长度,而一个切片被播放的时间长度通常大于10秒,所以使用HLS协议带来的延时往往高达二十秒到三十秒。此外,HLS协议对应专用的解码组件,如果播放设备没有这些专用的解码组件则无法解码基于HLS协议传送的切片。因此在目前的可时移的直播技术中,存在通信协议的选择过于单一、直播时的延时较大等问题。
发明内容
鉴于此,本申请提供了时移播放方法和装置、计算设备、计算机可读存储介质及计算机程序产品,期望缓解或克服上面提到的部分或全部缺陷以及其他可能的缺陷。
根据本申请的第一方面,提供了一种时移播放方法,该方法由第一方实施并包括:接收来自至少一个第二方中的目标方的时移播放请求,其中所述时移播放请求包括时移时间,所述时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在所述实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于所述至少一个第二方实时播放,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时;根据所述时移播放请求包括的时移时间在所述当前时间已实时播放的媒体内容中获取要时移播放的起始内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分;传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放。
根据本申请的第二方面,提供了一种时移播放方法,该方法由第二方实施,包括:实时获取并播放媒体内容,所述媒体内容是由实施根据本申请的第一方面描述的时移播放方法的第一方按照实时通信协议传送的媒体内容,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的播放延迟;发出时移播放请求,所述时移播放请求包括时移时间,所述时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点;接收来自第一方的内容进行播放,所述来自第一方的内容包括所述第一方所传送的要时移播放的起始内容和起始内容的后续内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分。
根据本申请的第三方面,提供了一种时移播放装置,其由第一方应用并且包括:接收模块,配置为接收来自至少一个第二方中的目标方的时移播放请求,其中所述时移播放请求包括时移时间,所述时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在所述实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于所述至少一个第二方实时播放,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时;确定模块,配置为根据所述时移播放请求包括的时移时间在所述当前时间已实时播放的媒体内容中获取要时移播放的起始内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分;传送模块,配置为传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放。
根据本申请的第四方面,提供了一种时移播放装置,其由第二方应用并且包括:实时播放模块,配置为实时获取并播放媒体内容,所述媒体内容是由根据本申请的第四方面中的第一方应用的时移播放装置按照实时通信协议传送的媒体内容,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的播放延迟;时移播放请求模块,配置为发出时移播放请求,所述时移播放请求包括时移时间,所述时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点;时移播放模块,配置为接收来自第一方的内容进行播放,所述来自第一方的内容包括所述第一方所传送的要时移播放的起始内容和起始内容的后续内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分。
根据本申请的第五方面,提供了一种计算设备,包括存储器和处理器,其中所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时促使所述处理器执行根据本申请一些实施例的由第一方或第二方实施的时移播放方法的步骤。
根据本申请的第六方面,提供了一种计算机可读存储介质,其上存储计算机可读指令,所述计算机可读指令在被执行时实现根据本申请一些实施例的由第一方或第二方实施的时移播放方法。
根据本申请的第七方面,提供了一种计算机程序产品,包括计算机指令,计算机指令在被处理器执行时实现根据本申请一些实施例的由第一方或第二方实施的时移播放方法的步骤。
在根据本申请一些实施例的时移播放方法中,可以在按照实时通信协议传送媒体内容的过程中接收时移播放请求,因此可以在保留时移功能的前提下,采用具有比基于超文本传输协议的自适应码率流媒体传输协议(即“HLS协议”)更小的传输延时的实时通信协议来传送媒体内容,这包括使用比基于超文本传输协议的自适应码率流媒体传输协议要求的数据包的时间长度更小的数据包进行传送,或者使用无任何延时的数据流的方式来进行传送,从而显著降低传输延时。此外,通过先确定时移播放的起始内容,再传送要时移播放的起始内容和起始内容的后续内容,可以在不依赖于基于超文本传输协议的自适应码率流媒体传输协议的情况下,使用任何适当的通信协议来实现时移功能,因此可以根据目标方的播放组件的特点,选择更为合适的协议,增加了时移播放时使用通信协议的灵活性。
根据下文描述的实施例,本申请的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本申请的这些和其它优点。
附图说明
现在将更详细并且参考附图来描述本申请的实施例,其中:
图1示出了根据本申请的一些实施例的由第一方实施的时移播放方法的示例性应用场景;
图2示出了根据本申请的一些实施例的由第一方实施的时移播放方法的示例性流程图;
图3示出了根据本申请的一些实施例的由第一方实施的包括切片处理的时移播放方法的流程图;
图4示出了根据本申请的一些实施例的传送要时移播放的起始内容和起始内容的后续内容的方法的流程图;
图5示出了根据本申请的一些实施例的由第二方实施的时移播放方法的流程图;
图6示出了根据本申请的一些实施例的实现时移播放的整体流程图;
图7示出了根据本申请的一些实施例的由第一方应用的时移播放装置700的示例性结构框图;
图8示出了根据本申请的另外一些实施例的由第二方应用的时移播放装置800的示例性结构框图;
图9示出了一个示例系统,其包括代表可以实现本文描述的各种方法的一个或多个系统和/或设备的示例计算设备。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“和/或”及类似术语包括相关联的列出项目中的任一个、多个和全部的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
在详细介绍本申请的实施例之前,为了清楚起见,首先对一些相关的概念进行解释。
时移:是指使播放时间发生偏移,从而回看另一时间点的媒体内容。例如在直播过程中,可以通过时移操作回看当前时间的前几分钟播放的精彩片段。
基于超文本传输协议的自适应码率流媒体传输协议(HTTP Live Streaming,HLS):该协议基于超文本传输协议,是苹果公司定义的动态码率自适应技术,主要用于流媒体传送服务,其原理是将待传送的数据分为多个文件(即,切片),每次传送时只传送一个文件,即按照切片的方式来传送数据。
实时消息传输协议(Real Time Messaging Protocol,RTMP):该消息基于TCP协议。RTMP协议是一种用来进行实时数据通信的网络协议,主要用来在支持RTMP协议的流媒体/交互服务器之间进行流媒体数据通信。使用RTMP协议通信的过程包括握手、建立网络连接、建立传送流、播放四个步骤。RTMP协议的主要特点在于延时低。
超文本传输协议-FLV协议(HTTP-FLV):FLV是FLASH VIDEO的简称,是一种流媒体格式,超文本传输协议又简称为HTTP协议,超文本传输协议-FLV协议指将流媒体数据封装成 FLV 格式,然后按照超文本传输协议的规定进行传送。该协议类似于RTMP协议,以连续的数据流的方式来传送被封装为FLV格式的流媒体文件,具有低延时的特点。
画面组(GOP):是一组帧的集合,包括一组连续的画面,其中第一帧为关键帧。通常一个画面组包括I、P、B三种帧,用于对视频数据进行压缩。
关键帧:简称I帧,又称为内部画面,I 帧通常是每个画面组的第一个帧,它是一个全帧压缩的编码帧,可帮助其他帧(例如P帧、B帧)重构完整图像,I帧不需要参考其他画面而生成。
图1示出了根据本申请的一些实施例的由第一方和第二方实施的时移播放方法的示例性应用场景100。应用场景100中可以包括用户101、主播设备102、第一网络103、服务器104、第二网络105和播放设备106,服务器104通过第一网络103与主播设备102通信地耦合在一起,并通过第二网络105与播放设备106通信地耦合在一起。在该实施例中仅示出了一个播放设备106,但这不是限制性的,可以同时存在多个播放设备与服务器104通信地耦合在一起。
在该实施例中,用户101使用主播设备102实时生成媒体内容,主播设备102将所生成的媒体内容通过第一网络103传送到服务器104。第一网络103例如可以是广域网(WAN)、局域网(LAN)、无线网络、公用电话网、内联网以及本领域的技术人员熟知的任何其它类型的网络。在第一网络103中,可以使用任何类型的通信协议,例如可以使用各种实时通信协议或者HLS协议。
服务器104在接收到媒体内容后,立即将该媒体内容通过第二网络105按照实时通信协议传送给播放设备106,实现实时播放,实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时。在多个播放设备的实施例中,服务器104立即将该媒体内容通过第二网络105传送给多个播放设备。相应地,播放设备106实时获取并播放媒体内容。
在实时播放过程中,播放设备106可以向服务器104发出时移播放请求,该时移播放请求包括时移时间,该时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点。此时,播放设备106为目标方。相应地,服务器104接收来自播放设备106的时移播放请求。
服务器104在从播放设备106接收到该时移播放请求后,根据时移播放请求包括的时移时间在当前时间已实时播放的媒体内容中获取要时移播放的起始内容,起始内容为当前时间已实时播放的媒体内容中包括起始时间点的部分。
最后服务器104传送要时移播放的起始内容和起始内容的后续内容以供播放设备106播放。相应地,播放设备106接收来自服务器104的内容进行播放,该来自服务器104的内容包括服务器104所传送的要时移播放的起始内容和起始内容的后续内容,起始内容为所述当前时间已实时播放的媒体内容中包括起始时间点的部分。
在图1所示的应用场景中,根据本申请的一些实施例的由第一方实施的时移播放方法在服务器104上实施,但这仅仅是示意性的而非限制性的,根据本申请的一些实施例的由第一方实施的时移播放方法还可以在其他具有具备充分的计算资源和计算能力的主体上实施,例如可以在具备充分的计算资源和计算能力的主播设备102和/或播放设备106上实施等。当然,也可以部分在服务器104上实施,部分在主播设备102和/或播放设备106上实施,这不是限制性的。
本领域普通技术人员所理解的,服务器104的实例可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
主播设备102和播放设备106可以是任何类型的移动计算设备,包括移动计算机(例如,个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机、上网本等)、移动电话(例如,蜂窝电话、智能手机等)、可穿戴式计算设备(例如智能手表、头戴式设备,包括智能眼镜等)或其他类型的移动设备。在一些实施例中,主播设备102和播放设备106也可以是固定式计算设备,例如台式计算机、游戏机、智能电视等。此外,在应用场景100包括多个播放设备106的情况下,该多个播放设备106可以是相同或不同类型的计算设备。
如图1所示,主播设备102和播放设备106可以包括显示屏以及可以经由显示屏与终端用户交互的终端应用。终端应用可以为本地应用程序、网页(Web)应用程序或者作为轻量化应用的小程序(Lite App,例如手机小程序、微信小程序)。在终端应用为需要安装的本地应用程序的情况下,可以将终端应用安装在主播设备102或播放设备106中。在终端应用为Web应用程序的情况下,可以通过浏览器访问终端应用。在终端应用为小程序的情况下,可以通过搜索终端应用的相关信息(如终端应用的名称等)、扫描终端应用的图形码(如条形码、二维码等)等方式来在主播设备102或播放设备106上直接打开终端应用,而无需安装终端应用。
图2示出了根据本申请的一些实施例的由第一方实施的时移播放方法的流程图。所示方法200可以在服务器侧(例如可以在图1所示的服务器104)实施。在一些实施例中,在主播设备102和播放设备106具备充分的计算资源和计算能力的情况下,可以直接在主播设备102和/或播放设备106上执行根据本申请的一些实施例的由第一方实施的时移播放方法。在另一些实施例中,也可以根据本申请的一些实施例的由第一方实施的时移播放方法由服务器104、主播设备102和播放设备106相组合地执行。如图2所示,根据本申请一些实施例的由第一方实施的时移播放方法可以包括步骤S201-S203。
在步骤S201中,接收来自至少一个第二方中的目标方的时移播放请求,其中时移播放请求包括时移时间,该时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于至少一个第二方实时播放,实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时。该接收操作可能的发生背景是获取媒体内容并按照实时通信协议传送获取的媒体内容以用于至少一个第二方实时播放,即发生在正在进行的直播活动中。在该实时播放过程中,媒体内容被按照实时通信协议传送到目标方,从而确保能够降低实时播放过程中的延时。这里的实时通信协议包括本技术领域中各种已知的通信协议,例如可以是前述实时消息传输协议(RTMP)或超文本传输协议-FLV协议等协议,实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时。这里的“传输延时”指由于协议对传送方式的规定而带来的无法避免的延时,不包括网络环境等因素对延时所产生的附加延时。
在该实时播放过程中,可以存在至少一个第二方作为观众来接收并播放媒体内容,其中的目标方指所述至少一个第二方中请求时移播放的一方。
在步骤S202中,根据时移播放请求包括的时移时间在当前时间已实时播放的媒体内容中获取要时移播放的起始内容,起始内容为当前时间已实时播放的媒体内容中包括起始时间点的部分。当前时间为接收到时移播放请求的时间或目标方发出时移播放请求的时间(记录在该时移播放请求中),当前时间已实时播放的媒体内容是指从媒体内容播放起始时间(通常指直播活动开始时),到当前时间之间所实时播放的媒体内容。该步骤用于获取要时移播放的起始内容,得到要时移播放的起始内容后可以以起始内容为起点进行播放,实现对媒体内容的时移播放。
媒体内容通常在计算机中编码为大量的帧画面,为了缩小体积和传输方便,这些帧被进一步编码成许多个画面组,每个画面组包括多个帧。因此播放媒体内容的最小粒度为播放一个画面组的时间长度。由于最小粒度的存在,所要获取的要时移播放的起始内容具有一个对应的播放时间范围,这个播放时间范围应当包括起始时间点,从而能够准确播放时移播放请求所请求的播放内容。
在步骤S203中,传送要时移播放的起始内容和起始内容的后续内容以供目标方播放。在该实施例中,由于已经确定起始内容,则该起始内容以后的所有内容均为目标方要时移播放的媒体内容,将这些内容进行传送可以实现时移功能。
在根据本申请一些实施例的时移播放方法中,可以在按照实时通信协议传送媒体内容的过程中接收时移播放请求,因此可以在保留时移功能的前提下,采用具有比基于超文本传输协议的自适应码率流媒体传输协议(即“HLS协议”)更小的传输延时的实时通信协议来传送媒体内容,这包括使用比基于超文本传输协议的自适应码率流媒体传输协议要求的数据包的时间长度更小的数据包进行传送,或者使用无任何延时的数据流的方式来进行传送,从而显著降低传输延时。此外,通过先确定时移播放的起始内容,再传送要时移播放的起始内容和起始内容的后续内容,可以在不依赖于基于超文本传输协议的自适应码率流媒体传输协议的情况下,使用任何适当的通信协议来实现时移功能,因此可以根据目标方的播放组件的特点,选择更为合适的协议,增加了时移播放时使用通信协议的灵活性。
为了方便快捷地在步骤S202获取要时移播放的起始内容,可以在实时播放过程中,对获取的媒体内容进行预处理。在一些实施例中,在实时播放过程中,当每连续地获取到预设时长的媒体内容时,将预设时长的媒体内容进行切片处理,以得到对应的播放片段。在实时播放过程,媒体内容可以例如以数据流的方式从主播方源源不断的传送到第一方,为了提高时移的可操作性,在这个过程中,可以将预设时长内流入的数据作为一个播放片段存储以供后续处理。作为示例,主播方可以使用实时通信协议(如实时消息传输协议或超文本传输协议-FLV协议)来与第一方建立数据流通道,第一方将每三秒流入的数据切片为一个播放片段。此外,媒体内容可以例如以消息或数据包的方式从主播方被连续传送到第一方,那么可以将预设时长内接收的消息或数据包的数据作为一个播放片段存储以供后续处理。照此,随着时间的自然流逝,已实时播放的媒体内容可以被不断切片,并得到对应的播放片段。预设时长的大小可以根据所希望的播放片段的大小而定。图3示出了在这种情况下根据本申请的一些实施例的所述根据所述时移播放请求包括的时移时间在所述当前时间已实时播放的媒体内容中获取要时移播放的起始内容的方法,包括步骤S301-S302。另外,在第一方使用RTMP协议从直播方实时获取媒体内容的实施例中,直播方与第一方之间建立基于传输控制协议(TCP)的长连接,媒体内容中的数据被按照块(chunk)的结构在该长连接中接连不断传送到第一方,因此第一方可以每接收若干个数据块,就将这若干个数据块的数据处理成播放文件进行存储,如此实现对RTMP协议下的数据流的切片处理。
应当指出,一些实施例中,对应播放片段包括至少一个画面组,该至少一个画面组中的每个画面组包括多个帧,并且多个帧包括至少一个关键帧,每个关键帧(即I帧)具有媒体内容中的一幅完整的画面。画面组中除关键帧以外的其他帧均需要参考关键帧来确定自身的完整画面,因此关键帧的画面内容应当完整,且每个画面组要求包括至少一个关键帧,这样才能得到其他帧的完整画面。在一些示例中,每个播放片段可以包括三个画面组,这样播放片段的播放时间范围就是三个画面组的时间长度。在另外一些实施例中,每个画面组的至少一个关键帧为即时解码刷新帧(Instantaneous Decoding Refresh picture,简称“IDR帧”),所述IDR帧是I帧的一种。该至少一个即时解码刷新帧中的每个即时解码刷新帧均包括用于编码和解码即时解码刷新帧的序列参数集 (Sequence Parameter Set,SPS )和图像参数集(Picture Parameter Set,PPS)。序列参数集通常包括一个图像序列的所有信息,图像参数集通常包括一个图像的所有相关信息。
在该实施例中,根据时移播放请求包括的时移时间在当前时间已实时播放的媒体内容中获取要时移播放的起始内容,包括:在步骤S301,根据时移播放请求包括的时移时间,从对当前时间已实时播放的媒体内容进行切片处理后得到的多个播放片段中获取包括时移时间所指示的起始时间点的起始播放片段;在步骤302,将起始播放片段确定为要时移播放的起始内容。
由于在实时播放过程中,已实时播放的媒体内容被切片处理成多个播放片段,因此为了找到要时移播放的起始内容,可以检索包括时移时间所指示的起始时间点的起始播放片段。而每个播放片段都对应一个播放时间范围,而时移时间所指示的起始时间点是单个时间点,所以应当将播放时间范围包括该起始时间点的播放片段确定为起始播放片段。例如其中一个播放片段A对应于播放时间为2分到2分5秒的媒体内容,另一个播放片段A对应于播放时间为2分5秒到2分10秒的媒体内容,而时移播放请求的时移时间所指示的起始时间点为2分2秒,则应检索到播放片段A并将其作为要时移播放的起始内容。
应当注意,在该实施例中,对预设时长的媒体内容进行切片处理后并非立即执行步骤S301-S302,而是在实时播放过程中不断对预设时长的媒体内容进行切片处理,在步骤S201接收到时移播放请求后,执行步骤S301-S302,因此切片处理与步骤S301-S302相互独立执行。
在计算机技术中为具体实现切片处理,可以为每个播放片段标注存储地址和时间值。具体而言,在一些实施例中,在切片处理过程中,多个播放片段被存储为多个播放文件,多个播放文件中的每个播放文件对应于多个播放片段的一个播放片段,多个播放文件中的每个播放文件均包括时间值和该播放文件被存储的存储地址,其中时间值指示包括时间值的播放文件所对应的播放片段被直播时的播放时间。时间值所指示的播放时间既可以是绝对时间也可以是相对时间。绝对时间是指在直播过程中,该播放片段被直播时的地区时间,例如北京时间9点10分。相对时间是指在直播过程中,该播放片段被直播时相对于直播开始时的时间,例如直播开始后的第20分钟。在存储播放文件时,为了后续时移播放的方便,可以按照预定协议类型的格式进行存储,例如按照HLS协议中规定的播放文件(TransportStream文件(TS文件))的格式进行存储:每个播放文件包括一个头部(header)和一个有效载荷(payload),头部字段标注HLS协议中所规定的播放文件的各项信息,包括但不限于校验值和有效载荷起始符,有效载荷部分是对应播放片段的帧的数据。在第一方传送TS文件后,目标方根据校验值可以确定所接收的TS文件是否发生传输错误,没有错误的TS文件可以播放,否则需要请求第一方重新传送该TS文件。目标方根据有效载荷起始符可以找到TS文件中关于播放片段的数据的起始位置,从而能够播放该TS文件中播放片段。
通过存储地址和时间值两项信息来将切片处理得到的每个播放片段都打包成播放文件,存储到所分配的存储地址。播放文件中的时间值为检索对应的播放片段提供了可操作性。
相应地,步骤S301-S302可以根据这两项信息来完成。具体而言,根据时移播放请求包括的时移时间,从对当前时间已实时播放的媒体内容进行切片处理后得到的多个播放片段中获取包括时移时间所指示的起始时间点的起始播放片段,包括:根据时移播放请求包括的时移时间和多个播放文件的时间值,确定与起始播放片段对应的起始播放文件的存储地址;然后根据起始播放文件的存储地址获取起始播放文件,以得到起始播放片段。
在切片处理中存储了播放文件后,可以将各个播放文件的存储地址和时间值作为检索表格单独存储,然后在该检索表格中寻找需要的播放文件。具体而言,在该实施例中,从时移播放请求包括的时移时间来确定起始时间点,然后从根据各个播放文件的时间值计算该起始时间点处于哪个播放文件的播放时间范围中,并进而确定其存储地址,最后根据该地址从存储区获取起始播放文件。例如在直播的第20分钟,用户想时移到第5分钟的媒体内容,如果播放文件的时间值是相对时间且指示对应播放片段的起始时间,其中播放文件C的时间值为4分58秒,播放文件D的时间值为5分2秒,则可以确定播放文件C是起始播放文件,进而可以确定播放文件C的存储地址,并根据该存储地址获取播放文件C。如果播放文件的时间是绝对时间且指示对应播放片段的起始时间,播放文件C的时间值为9点4分58秒,播放文件D的时间值为9点5分2秒,则先推算时移时间所指示的起始时间点,例如是直播起始时间(为9点)加5分钟,为9点5分,因此可以确定播放文件C是起始播放文件,从而得到起始播放片段。
在一些实施例中,在根据起始播放文件的存储地址获取起始播放文件,以得到起始播放片段后,还可以通过如下方式获取起始内容的后续内容:根据起始播放文件的后续播放文件的时间值,确定与起始内容的后续内容对应的后续播放文件的存储地址;然后根据后续播放文件的存储地址获取后续播放文件,得到后续播放片段以作为起始内容的后续内容。在确定了起始时间点和起始播放文件后,可以选择在该起始时间点之后的时间值所对应的播放文件作为后续播放文件。
在一些实施例中,在切片处理后,将播放片段存储为各个播放文件前,按照预先设置的标签来建立播放文件的索引信息,该预先设置的标签至少包括这些信息:流标识符、播放文件开始时间、播放文件结束时间、播放文件支持的协议类型、播放文件存储地址、播放文件时长、播放文件序列号。流标识符是对应于特定直播过程的唯一标识符,用于识别该播放文件所对应的直播过程。播放文件开始时间指该播放文件的第一个帧所对应的时间值,其值可以用绝对时间或相对时间来表示。播放文件结束时间指该播放文件的最后一个帧所对应的时间值,其值也可以用绝对时间或相对时间来表示。播放文件开始时间和播放文件结束时间都是前述实施例中的“时间值”的具体实施方案,在实施过程中,例如可以使用unix时间戳(unix timestamp)技术来标注播放文件开始时间和播放文件结束时间。如前所述,为了后续传送时移文件的方便起见,在进行切片处理时,各个播放文件可以被处理成与预定协议类型相关联的文件格式,该预定协议类型就是时移播放时所使用的协议类型。播放文件存储地址可以是播放文件在存储区域中的统一资源定位符(uniform resourcelocator,URL)。播放文件时长是该播放文件对应的播放片段的时间长度,其值理论上等于播放文件开始时间和播放文件结束时间之差。播放文件序列号,指示该播放文件是从直播过程开始时所生成的播放文件的次序。按照该预先设置的标签来建立播放文件的索引信息可以十分容易、简单地获取并传送要时移播放的起始内容和起始内容的后续内容。
在一些实施例中,在按照与获取起始播放文件相同的方式来获取后续播放文件后,即可以传送起始播放文件和后续播放文件以供目标方播放。这些起始播放文件和后续播放文件构成时移播放请求所请求的要时移播放的媒体内容。
由于在直播过程中,不断有新的媒体内容产生并流入第一方,因此在直播过程结束前,第一方不断获取新的媒体内容并且这些新的媒体内容被切片处理为新的播放片段,所以“后续播放片段”也处于不断增加的状态。因此在传送后续播放片段时,应注意将新增加的播放片段也传送到目标方。图4示出了根据本申请的一些实施例的传送要时移播放的起始内容和起始内容的后续内容的方法的流程图。在图4所示的实施例中,首先传送起始播放片段以供目标方播放(步骤401),然后将起始播放片段作为当前播放片段(步骤402),至此实现传送起始播放片段的功能。接下来根据判断条件执行循环传送过程,判断是否接收到停止播放命令或者从起始播放片段到实时播放过程结束时的已实时播放的媒体内容对应的播放片段全部被传送(步骤403)。如果判断结果为“是”,说明无需再进入循环传送过程,传送结束(步骤407)。如果判断结果为“否”,说明仍有后续播放片段需要传送,具体传送方式是先获取当前播放片段的下一播放片段(步骤404),然后传送当前播放片段的下一播放片段以供目标方播放(步骤405),最后在预设时间段后,将当前播放片段的下一播放片段作为当前播放片段(步骤406)。该循环传送过程可以一个接一个的连续传送后续播放片段,其中预设时间段可以控制重复执行的周期。由于新的媒体内容被切片处理为新的播放片段后,在预设时间段的影响下,后续播放片段不会被一次全部传送,所以这些新增加的播放片段也得以被循环传送,从而实现对新增加的播放片段的传送。
在一些替代实施例中,可以通过设置时移播放区来获取和传送要时移播放的起始播放文件和后续播放文件。以下文所描述的图6所示的实施例为例,该时移播放区可以设置在时移服务器607中。时移服务器607可以针对每个时移播放请求单独设立一个时移播放区,时移服务器607根据本申请的一些实施例来确定起始播放文件,然后从数据库606中检索该起始播放文件的存储地址,从播放文件存储系统605中获取起始播放文件,将该起始播放文件存入时移播放区中。再然后时移服务器607根据数据库606中所存储的各个播放文件的索引信息,根据各个播放文件的播放顺序确定各个后续播放文件的存储地址,获取各个后续播放文件并按其播放顺序存储到时移播放区中,从而在时移播放区中得到针对时移播放请求的时移播放队列,因此时移服务器607只需要根据该时移播放队列逐个或逐批进行传送即可实现所期望的时移播放。在建立时移播放队列后,该时移服务器607持续检查数据库606中的索引信息,当该索引信息被更新时,意味着该直播过程中有新增加的播放文件被存储到播放文件存储系统605中,则该时移服务器607根据新增加的播放文件的存储地址获取该新增加的播放文件,按照该新增加的播放文件的播放顺序将该新增加的播放文件也加入到时移播放区中,从而更新时移播放队列。
由于时移播放不需要考虑通信协议所带来的延时影响,因此在传送起始内容和起始内容的后续内容时也可以使用与实时播放过程不同的通信协议。在一些实施例中,在实时播放过程中按照第一实时通信协议传送获取的媒体内容以用于至少一个第二方实时播放。相应地,传送要时移播放的起始内容和起始内容的后续内容以供目标方播放,包括:按照第二实时通信协议传送要时移播放的起始内容和起始内容的后续内容以供目标方播放。这里第一实时通信协议可以与第二实时通信协议相同,也可以不同。例如第一实时通信协议与第二实时通信协议均为实时消息传输协议,或者第一通信协议为实时消息传输协议而第二通信协议为超文本传输协议-FLV协议等。
图5示出了根据本申请的一些实施例的由第二方实施的时移播放方法的流程图,该方法包括步骤S501-S503。
在步骤S501,实时获取并播放媒体内容,媒体内容是由根据本申请的一些实施例的第一方(如参照图2描述的实施例中的第一方)按照实时通信协议传送的媒体内容,实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的播放延迟。步骤S501与步骤S201中的第一方的实时播放过程相对应,指示第二方可以按照实时通信协议参与直播过程,具有较低的延时。
在步骤S502,发出时移播放请求,时移播放请求包括时移时间,时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点。步骤S502所发出的时移播放请求对应于步骤S201中所接收的时移播放请求,用于请求第一方进行时移播放。
在步骤S503,接收来自第一方的内容进行播放,来自第一方的内容包括第一方所传送的要时移播放的起始内容和起始内容的后续内容,起始内容为当前时间已实时播放的媒体内容中包括起始时间点的部分。步骤S503对应于步骤S203,传送第二方所请求的媒体内容。
在根据本申请一些实施例的由第二方实施的时移播放方法中,可以在按照实时通信协议接收媒体内容的过程中发出时移播放请求,因此可以在保留时移功能的前提下,采用具有比基于超文本传输协议的自适应码率流媒体传输协议(即“HLS协议”)更小的传输延时的实时通信协议来接收媒体内容,这包括使用比基于超文本传输协议的自适应码率流媒体传输协议要求的数据包的时间长度更小的数据包进行传送,或者使用无任何延时的数据流的方式来进行传送,从而显著降低传输延时。此外,可以使用任何适当的通信协议来接收要时移播放的媒体内容,因此可以根据自身播放组件的特点,选择更为合适的协议,增加了时移播放时使用通信协议的灵活性。
图6示出了根据本申请的一些实施例的实现时移播放的整体流程图。图6中示出了主播端601、直播服务器602、播放器603、切片服务器604、播放文件存储系统605、数据库606、时移服务器607。作为示例,在直播服务器602、切片服务器604、播放文件存储系统605、数据库606、时移服务器607上可以实施由第一方所实时的时移播放方法,在播放器603上可以实施由第二方所实时的时移播放方法。
在直播过程中,主播端601按照实时消息传输协议搭建数据流,向直播服务器602传送媒体内容,直播服务器602获取媒体内容,并按照实时消息传输协议搭建两条数据流,将该媒体内容分别传送给播放器603和切片存储器602。此时在播放器603上可以观看实时播放的媒体内容,且具有极低的传输延时。而切片服务器604在接收到源源不断的媒体内容后,根据预设时长来对媒体内容进行切片处理,例如每3秒钟进行一次切片,得到播放片段。这些播放片段按照播放文件传输系统605所分配的存储地址进行存储。该播放片段的存储地址和时间值被记录在数据库606中以供检索。随着时间的自然流逝,不断有新的数据流入切片服务器604,切片服务器604不断按照预设时长进行切片,形成新增加的播放文件,这些新增加的播放文件被保存在播放文件传输系统605中,还形成新增加的播放片段的存储地址和时间值,这些新增加的播放片段的存储地址和时间值被记录到数据库606中。
在时移播放过程中,播放器603向时移服务器607传送时移播放请求,时移服务器607在接收到时移播放请求后首先确定目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,然后从数据库606中检索其时间值包括该起始时间点的播放文件的存储地址,例如播放文件D的存储地址。此时可以根据播放文件D的存储地址从播放文件存储系统605中下载播放文件D至时移服务器607,并将所下载的播放文件D封装成FLV格式的消息传送到目标方,即播放器603。最后一步是时移服务器607传送后续播放文件。由于已经确定了起始播放文件,即播放文件D,则根据播放文件之间的时间顺序确定下一播放文件E,然后下载播放文件E,并将所下载的播放文件E封装成FLV格式的消息,按照超文本传输协议(HTTP)的通信要求传送到目标方,即播放器603。在预设时间段(例如一秒)之后,将播放文件E作为当前播放文件,获取其下一播放文件,按照与播放文件D和E类似的方式传送到播放器603。如此,各个后续播放文件以一秒之周期被循环传送。在这个循环过程中,一直接收主播端的数据,直播服务器也一直将获取到的媒体内容转发给切片服务器604和观看直播的其他播放器,切片服务器不断执行切片处理,从而不断有新增加的播放文件被存储到播放文件存储系统605、有新增加的存储地址和时间值被存储到数据库606。随着循环传送后续播放文件的进行,这些新增加的播放文件也将被传送到播放器603,直到实时播放过程结束。如果播放器603在循环传送后续播放文件的过程中请求停止播放,则时移服务器607也无需再传送后续播放文件。
图7示出了根据本申请的一些实施例的由第一方应用的时移播放装置700的示例性结构框图。该装置700包括:接收模块701、确定模块702、传送模块703。接收模块701被配置为接收来自至少一个第二方中的目标方的时移播放请求,其中时移播放请求包括时移时间,时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于至少一个第二方实时播放,实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时。确定模块702被配置为根据时移播放请求包括的时移时间在当前时间已实时播放的媒体内容中获取要时移播放的起始内容,起始内容为当前时间已实时播放的媒体内容中包括起始时间点的部分。传送模块703被配置为传送要时移播放的起始内容和起始内容的后续内容以供目标方播放。
应注意,上述各种模块可以以软件或硬件或两者的组合来实现。多个不同模块可以在同一软件或硬件结构中实现,或者一个模块可以由多个不同的软件或硬件结构实现。
在根据本申请一些实施例的由第一方应用的时移播放装置中,可以在按照实时通信协议传送媒体内容的过程中接收时移播放请求,因此可以在保留时移功能的前提下,采用具有比基于超文本传输协议的自适应码率流媒体传输协议(即“HLS协议”)更小的传输延时的实时通信协议来传送媒体内容,这包括使用比基于超文本传输协议的自适应码率流媒体传输协议要求的数据包的时间长度更小的数据包进行传送,或者使用无任何延时的数据流的方式来进行传送,从而显著降低传输延时。此外,通过先确定时移播放的起始内容,再传送要时移播放的起始内容和起始内容的后续内容,可以在不依赖于基于超文本传输协议的自适应码率流媒体传输协议的情况下,使用任何适当的通信协议来实现时移功能,因此可以根据目标方的播放组件的特点,选择更为合适的协议,增加了时移播放时使用通信协议的灵活性。
图8示出了根据本申请的另外一些实施例的由第二方应用的时移播放装置800的示例性结构框图。该装置800包括:实时播放模块801、时移播放请求模块802、时移播放模块803。实时播放模块801被配置为实时获取并播放媒体内容,所述媒体内容是由根据本申请的一些实施例的第一方应用的时移播放装置(如按照图7描述的时移播放装置)按照实时通信协议传送的媒体内容,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的播放延迟。时移播放请求模块802被配置为发出时移播放请求,所述时移播放请求包括时移时间,所述时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点。时移播放模块803被配置为传接收来自第一方的内容进行播放,所述来自第一方的内容包括第一方所传送的要时移播放的起始内容和起始内容的后续内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分。
应注意,上述各种模块可以以软件或硬件或两者的组合来实现。多个不同模块可以在同一软件或硬件结构中实现,或者一个模块可以由多个不同的软件或硬件结构实现。
在根据本申请另外一些实施例的由第二方应用的时移播放装置中,可以在按照实时通信协议接收媒体内容的过程中发出时移播放请求,因此可以在保留时移功能的前提下,采用具有比基于超文本传输协议的自适应码率流媒体传输协议(即“HLS协议”)更小的传输延时的实时通信协议来接收媒体内容,这包括使用比基于超文本传输协议的自适应码率流媒体传输协议要求的数据包的时间长度更小的数据包进行传送,或者使用无任何延时的数据流的方式来进行传送,从而显著降低传输延时。此外,可以使用任何适当的通信协议来接收要时移播放的媒体内容,因此可以根据自身播放组件的特点,选择更为合适的协议,增加了时移播放时使用通信协议的灵活性。
图9图示了示例系统900,其包括代表可以实现本文描述的各种方法的一个或多个系统和/或设备的示例计算设备910。计算设备910可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。上面参照图7描述的由第一方应用的时移播放装置700和图8描述的由第二方应用的时移播放装置800均可以采取计算设备910的形式。替换地,时移播放装置700和时移播放装置800均可以以应用916的形式被实现为计算机程序。
如图示的示例计算设备910包括彼此通信耦合的处理系统911、一个或多个计算机可读介质912以及一个或多个I/O接口913。尽管未示出,但是计算设备910还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统911代表使用硬件执行一个或多个操作的功能。因此,处理系统911被图示为包括可被配置成处理器、功能块等的硬件元件914。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件914不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质912被图示为包括存储器/存储装置915。存储器/存储装置915表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置915可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置915可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质912可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口913代表允许用户使用各种输入设备向计算设备910输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置成检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备910可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备910还包括应用916。应用916可以例如是时移播放装置700或时移播放装置800的软件实例,并且与计算设备910中的其他元件相组合地实现本文描述的技术。
本申请提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述各种可选实现方式中提供的由第一方或第二方实施的时移播放方法。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备910访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置成诸如经由网络将指令发送到计算设备910的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前,硬件元件914和计算机可读介质912代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件914体现的一个或多个指令和/或逻辑。计算设备910可以被配置成实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件914,可以至少部分地以硬件来实现将模块实现为可由计算设备910作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备910和/或处理系统911)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备910可以采用各种不同的配置。例如,计算设备910可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备910还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备910还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备910的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台922而在“云”920上全部或部分地实现。
云920包括和/或代表用于资源924的平台922。平台922抽象云920的硬件(例如,服务器)和软件资源的底层功能。资源924可以包括在远离计算设备910的服务器上执行计算机处理时可以使用的应用和/或数据。资源924还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台922可以抽象资源和功能以将计算设备910与其他计算设备连接。平台922还可以用于抽象资源的分级以提供遇到的对于经由平台922实现的资源924的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统900内。例如,功能可以部分地在计算设备910上以及通过抽象云920的功能的平台922来实现。
应当理解,为清楚起见,参考不同的功能单元对本申请的实施例进行了描述。然而,将明显的是,在不偏离本申请的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本申请可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
尽管已经结合一些实施例描述了本申请,但是其不旨在被限于在本文中所阐述的特定形式。相反,本申请的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。

Claims (16)

1.一种时移播放方法,所述方法由第一方实施并包括:
接收来自至少一个第二方中的目标方的时移播放请求,其中所述时移播放请求包括时移时间,所述时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在所述实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于所述至少一个第二方实时播放,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时;
根据所述时移播放请求包括的时移时间在所述当前时间已实时播放的媒体内容中获取要时移播放的起始内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分;
传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放。
2.根据权利要求1所述的方法,其中,在所述实时播放过程中,当每连续地获取到预设时长的媒体内容时,将所述预设时长的媒体内容进行切片处理,以得到对应的播放片段;
并且,其中所述根据所述时移播放请求包括的时移时间在所述当前时间已实时播放的媒体内容中获取要时移播放的起始内容,包括:
根据所述时移播放请求包括的时移时间,从对所述当前时间已实时播放的媒体内容进行切片处理后得到的多个播放片段中获取包括所述时移时间所指示的起始时间点的起始播放片段;
将所述起始播放片段确定为要时移播放的起始内容。
3.根据权利要求2所述的方法,其中,所述多个播放片段被存储为多个播放文件,所述多个播放文件中的每个播放文件对应于所述多个播放片段的一个播放片段,所述多个播放文件中的每个播放文件均包括时间值和所述每个播放文件被存储的存储地址,其中所述时间值指示包括所述时间值的播放文件所对应的播放片段被直播时的播放时间;
其中,根据所述时移播放请求包括的时移时间,从对所述当前时间已实时播放的媒体内容进行切片处理后得到的多个播放片段中获取包括所述时移时间所指示的起始时间点的起始播放片段,包括:
根据所述时移播放请求包括的时移时间和所述多个播放文件的时间值,确定与所述起始播放片段对应的起始播放文件的存储地址;
根据所述起始播放文件的所述存储地址获取所述起始播放文件,以得到所述起始播放片段。
4.根据权利要求3所述的方法,还包括:通过如下方式获取所述起始内容的后续内容:
根据所述起始播放文件的后续播放文件的时间值,确定与所述起始内容的后续内容对应的后续播放文件的存储地址;
根据所述后续播放文件的所述存储地址获取所述后续播放文件,得到所述后续播放片段以作为所述起始内容的后续内容。
5.根据权利要求4所述的方法,其中所述传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放,包括:
传送所述起始播放文件和所述后续播放文件以供所述目标方播放。
6.根据权利要求2所述的方法,传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放,包括:
传送所述起始播放片段以供所述目标方播放;
将所述起始播放片段作为当前播放片段;
重复执行下述步骤,直到接收到停止播放命令或者直到从所述起始播放片段到实时播放过程结束时的已实时播放的媒体内容对应的播放片段全部被传送:
获取所述当前播放片段的下一播放片段;
传送所述当前播放片段的下一播放片段以供所述目标方播放;
在预设时间段后,将所述当前播放片段的下一播放片段作为当前播放片段。
7. 根据权利要求1所述的方法, 其中在所述实时播放过程中按照第一实时通信协议传送获取的媒体内容以用于所述至少一个第二方实时播放;
并且,其中传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放,包括:
按照第二实时通信协议传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放。
8.根据权利要求7所述的方法,其中所述第一实时通信协议与所述第二实时通信协议相同。
9.根据权利要求2所述的方法,其中所述对应的播放片段包括至少一个画面组,所述至少一个画面组中的每个画面组包括多个帧,所述多个帧包括至少一个关键帧,每个关键帧具有所述媒体内容中的一幅完整的画面。
10.根据权利要求1所述的方法,其中所述按照实时通信协议传送获取的媒体内容,包括:
按照实时消息传输协议传送获取的媒体内容。
11.一种时移播放方法,所述方法由第二方实施并且包括:
实时获取并播放媒体内容,所述媒体内容是由实施根据权利要求1所述的时移播放方法的第一方按照实时通信协议传送的媒体内容,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的播放延迟;
发出时移播放请求,所述时移播放请求包括时移时间,所述时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点;
接收来自第一方的内容进行播放,所述来自第一方的内容包括所述第一方所传送的要时移播放的起始内容和起始内容的后续内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分。
12.一种时移播放装置,其由第一方应用并且包括:
接收模块,配置为接收来自至少一个第二方中的目标方的时移播放请求,其中所述时移播放请求包括时移时间,所述时移时间指示目标方请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点,在所述实时播放过程中获取媒体内容并按照实时通信协议传送获取的媒体内容以用于所述至少一个第二方实时播放,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的传输延时;
确定模块,配置为根据所述时移播放请求包括的时移时间在所述当前时间已实时播放的媒体内容中获取要时移播放的起始内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分;
传送模块,配置为传送所述要时移播放的起始内容和所述起始内容的后续内容以供所述目标方播放。
13.一种时移播放装置,其由第二方应用并且包括:
实时播放模块,配置为实时获取并播放媒体内容,所述媒体内容是由根据权利要求12所述的第一方应用的时移播放装置按照实时通信协议传送的媒体内容,所述实时通信协议比基于超文本传输协议的自适应码率流媒体传输协议具有更小的播放延迟;
时移播放请求模块,配置为发出时移播放请求,所述时移播放请求包括时移时间,所述时移时间指示请求对当前时间已实时播放的媒体内容进行时移播放的起始时间点;
时移播放模块,配置为接收来自第一方的内容进行播放,所述来自第一方的内容包括所述第一方所传送的要时移播放的起始内容和起始内容的后续内容,所述起始内容为所述当前时间已实时播放的媒体内容中包括所述起始时间点的部分。
14.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-11中任一项所述的方法的步骤。
15.一种存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1-11中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据权利要求1至11中任一项的方法的步骤。
CN202210704138.4A 2022-06-21 2022-06-21 时移播放方法和装置、计算设备、存储介质 Pending CN117319692A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210704138.4A CN117319692A (zh) 2022-06-21 2022-06-21 时移播放方法和装置、计算设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210704138.4A CN117319692A (zh) 2022-06-21 2022-06-21 时移播放方法和装置、计算设备、存储介质

Publications (1)

Publication Number Publication Date
CN117319692A true CN117319692A (zh) 2023-12-29

Family

ID=89283538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210704138.4A Pending CN117319692A (zh) 2022-06-21 2022-06-21 时移播放方法和装置、计算设备、存储介质

Country Status (1)

Country Link
CN (1) CN117319692A (zh)

Similar Documents

Publication Publication Date Title
US10911789B2 (en) Automatic failover for live video streaming
JP6404505B2 (ja) メディアコンテンツをクライアントデバイスにストリーミングするための方法および装置
US10911512B2 (en) Personalized content streams using aligned encoded content segments
US9792363B2 (en) Video display method
US10114689B1 (en) Dynamic playlist generation
US8817983B2 (en) Streaming video to cellular phones
CN109587514B (zh) 一种视频播放方法、介质和相关装置
US20210021655A1 (en) System and method for streaming music on mobile devices
CN113661692B (zh) 接收媒体数据的方法、装置和非易失性计算机可读存储介质
US11758200B2 (en) System and method for converting adaptive stream to downloadable media
WO2021143360A1 (zh) 资源传输方法及计算机设备
CN115136609B (zh) 远程元素解析的基于客户端的存储
CN107690093B (zh) 一种视频播放方法及装置
CN115136611A (zh) 用于动态元素替换的组中元素的标识
KR20210141598A (ko) Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보
US20150172733A1 (en) Content transmission device, content playback device, content delivery system, control method for content transmission device, control method for content playback device, data structure, control program, and recording medium
EP2882199B1 (en) Method and apparatus for prefetching content in a data stream
CN111669605B (zh) 多媒体数据与其关联互动数据的同步方法和装置
CN117319692A (zh) 时移播放方法和装置、计算设备、存储介质
JP2023007048A (ja) ストリーミングサーバ、送信方法及びプログラム
CN113364728B (zh) 媒体内容接收方法、装置、存储介质和计算机设备
CN114501166A (zh) Dash点播快进快退方法及系统
JP2023520757A (ja) Httpを介した動的適応ストリーミングのための方法および装置

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