CN110784741A - 媒体数据的时移响应方法及装置 - Google Patents
媒体数据的时移响应方法及装置 Download PDFInfo
- Publication number
- CN110784741A CN110784741A CN201810857771.0A CN201810857771A CN110784741A CN 110784741 A CN110784741 A CN 110784741A CN 201810857771 A CN201810857771 A CN 201810857771A CN 110784741 A CN110784741 A CN 110784741A
- Authority
- CN
- China
- Prior art keywords
- media
- time
- played
- media file
- client
- 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
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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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/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/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种媒体数据的时移响应方法及装置。该技术方案通过服务器接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,时移操作请求包括时移操作时间和目标媒体文件的媒体标识;根据时移操作时间与存储的媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;向第一客户端发送该位置信息对应的待播放媒体数据。可见,本申请的技术方案通过先存储目标媒体文件的媒体头信息,缩短了在对目标媒体文件进行时移操作时的时移响应时间,由于不需要重新调用服务器获取媒体头,以及解析媒体头信息,提高了服务器的资源利用率。
Description
技术领域
本申请涉及媒体文件的通信技术领域,尤其涉及一种媒体数据的时移响应方法及装置。
背景技术
目前,在内容分发网络(Content Delivery Network,CDN)和流媒体技术中,流媒体技术就是指采用流式传输技术在网络上连续实时播放音频文件、视频文件或多媒体文件的技术,如MP4媒体文件,播放MP4媒体文件的流程可以如图1所示:
步骤110、CDN服务器或者流媒体服务器(下面简称“服务器”)接收播放请求;
步骤120、对播放请求的媒体文件的媒体头进行解析,得到媒体解码率、媒体时长、编辑列表的媒体时间、timescale、媒体时间戳与媒体帧序号的映射表、关键帧序号等有效信息,并将有效信息存储在缓冲区;
步骤130、查找到有效信息对应的媒体数据后,向终端设备发送媒体数据,之后缓冲区将有效信息删除,以释放空间,也就是说,随着播放时间的继续,缓冲区内当前播放时间之前的有效信息将不再存在。
若此时多个客户端对播放的同一MP4媒体文件进行时移操作(也称“拖拽操作”),如快进操作、后退操作时,服务器需要针对每个客户端,重新查找MP4的媒体头部,并重新解析出有效信息,其中,首先查找缓冲区是否存在有效信息,若不存在,则从磁盘中查找MP4的媒体头部,并重新解析出有效信息,之后基于有效信息计算执行时移操作后的具体位置,从而向每个客户端发送具体位置对应的待播放的媒体数据。
可知,对于上述方案来说,针对每个客户端的时移操作,服务器都需要为从磁盘中重新读取媒体头,且重新对媒体头进行解析的方式,不仅浪费服务器资源,而且媒体数据的时移响应的耗时较长,降低了用户体验。
发明内容
本申请实施例提供一种媒体数据的时移响应方法及装置。解决了现有技术中每个客户端执行时移操作时等待的时移响应时间长,以及服务器的资源利用率不高的问题。
第一方面,提供了一种媒体数据的时移响应方法,该方法可以包括:
接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;
根据时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;
向第一客户端发送位置信息对应的待播放媒体数据。
上述技术方案通过先存储目标媒体文件的媒体头信息,缩短了客户端在对目标媒体文件进行时移操作时的时移响应时间,由于不需要重新调用服务器获取媒体头,以及解析媒体头信息,提高了服务器的资源利用率。
在一个可选的实现中,接收第一客户端发送的对正在播放的目标媒体文件时移操作请求之前,该方法还可以包括:
接收第二客户端发送的播放请求,播放请求包括待播放媒体文件的媒体标识,第二客户端为除所述第一客户端之外的客户端;
对目标媒体文件进行解析,获取目标媒体文件的媒体头信息;
存储目标媒体文件的媒体头信息。
服务器通过上述方式实现对媒体头信息的存储,以便后续使用。
在一个可选的实现中,根据时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息,包括:
基于所述媒体头信息,将时移操作时间转换为媒体时间,媒体时间为目标媒体文件的媒体帧对应的时间;
基于媒体时间,查找存储的媒体头信息,得到媒体时间对应的待播放媒体数据的位置信息。
该方式为实现时移响应的具体实施过程,由于不需要重新获取媒体头,解析媒体头信息,进一步缩短了时移操作时的时移响应时间,提高了服务器的资源利用率。
在一个可选的实现中,根据时移操作时间与存储的媒体标识对应的媒体文件的媒体头信息,获取所移操作时间对应的目标媒体文件中待播放媒体数据的位置信息之前,该方法还可以包括:
接收所述第一客户端发送的所述目标媒体文件的属性信息,属性信息包括第一客户端播放目标媒体文件的播放信息;
基于目标媒体文件的属性信息,确定目标媒体文件中待播放媒体数据的属性信息。
在一个可选的实现中,媒体头信息包括待播放媒体数据的解码率;向第一客户端发送位置信息对应的待播放媒体数据,包括:
向第一客户端发送位置信息对应的待播放媒体数据和该解码率。
第二方面,提供了一种时移响应装置,该装置可以包括:
接收单元,用于接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;
获取单元,用于根据时移操作时间与存储的目标媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;
发送单元,用于向第一客户端发送位置信息对应的待播放媒体数据。
在一个可选的实现中,该装置还可以包括存储单元;
接收单元,还用于接收第二客户端发送的播放请求,播放请求用于请求播放目标媒体文件,第二客户端为除第一客户端之外的客户端;
获取单元,还用于对目标媒体文件进行解析,获取目标媒体文件的媒体头信息;
存储单元,用于存储所述目标媒体文件的媒体头信息。
在一个可选的实现中,获取单元,具体用于基于所述媒体头信息,将时移操作时间转换为媒体时间,媒体时间为目标媒体文件的媒体帧对应的时间;
基于媒体时间,查找存储的媒体头信息,得到媒体时间对应的待播放媒体数据的位置信息。
在一个可选的实现中,该装置还可以包括确定单元;
接收单元,还用于接收第一客户端发送的目标媒体文件的属性信息,所述属性信息包括第一客户端播放目标媒体文件的播放信息;
确定单元,用于基于目标媒体文件的属性信息,确定目标媒体文件中待播放媒体数据的属性信息。
在一个可选的实现中,该媒体头信息可以包括待播放媒体数据的解码率;
发送单元,用于向第一客户端发送位置信息对应的待播放媒体数据和解码率。
第三方面,提供了一种服务器,该服务器包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面中任一所述的方法步骤。
第八方面,提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一所述的方法步骤。
上述技术方案为通过服务器接收终端设备上的第一客户端发送的对正在播放的目标媒体文件的时移操作请求,时移操作请求包括时移操作时间和目标媒体文件的媒体标识,根据时移操作时间与存储的媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;向第一客户端发送该位置信息对应的待播放媒体数据。可见,本申请的技术方案通过先存储目标媒体文件的媒体头信息,缩短了在对目标媒体文件进行时移操作时的时移响应时间,由于不需要重新调用服务器获取媒体头,以及解析媒体头信息,提高了服务器的资源利用率。
附图说明
图1为传统的一种MP4媒体文件的播放流程示意图;
图2为本发明实施例提供的一种媒体数据的时移响应方法应用的系统架构图;
图3为提供的MP4媒体文件中box的结构式示意图;
图4为提供的MP4媒体文件的格式示意图;
图5为本发明实施例提供的一种媒体数据的时移响应方法的流程示意图;
图6为本发明实施例提供的另一种媒体数据的时移响应方法的流程示意图;
图7为本发明实施例提供的一种时移响应装置的结构示意图;
图8为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例提供的媒体数据的时移响应方法应用在图2所示的系统架构中,该系统可以包括服务器和终端设备,服务器与终端设备间通过无线网络进行通信。
该服务器可以是终端设备的分发服务所对应的服务器,还可以是为终端设备提供云服务的服务器,或是终端设备制造商所对应的服务器,具体的该服务器可以是CDN服务器或者流媒体服务器。
该终端设备具备经无线接入网(Radio Access Network,RAN)与一个或多个核心网进行通信的能力,终端设备可以是具有较强的计算能力的用户设备(User Equipment,UE)、具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobile station,MS)等等。该终端设备包括具备解码器和播放器,解码器用于解码服务器发送的媒体数据,播放器用于播放解码后的媒体数据。
下面先介绍下MP4媒体文件的格式:
MP4(MPEG-4Part 14)是一种常见的多媒体容器(Container)格式,是“ISO/IEC14496-12(MPEG-4Part 12ISO base media file format)”标准中所定义的一种通用的媒体文件结构标准的媒体格式。
MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,如各种编码的视频、音频等。MP4格式的官方文件后缀名是“.mp4”,还有其他的以MP4为基础进行的扩展或者是缩水版本的格式,包括:M4V,3GP,F4V等。
MP4是由多个“box”组成的,大box中存放小box,即通过一级嵌套一级来存放媒体信息。Box是指由唯一类型标识符和长度定义的面向对象的构件。每个box是由box header和box里面包含的数据组成的。box的基本结构如图3所示,每个box以box header开头,boxheader中包含了box的大小(size)和类型(type)等信息。其中,size指明了整个box所占用的大小,即包括header部分;type指明了box的类型。如果box很大(例如存放具体视频数据的mdat box),超过了的uint32的最大数值,size就被设置为1,并用接下来的8位uint64来存放大小。
如图4所示,MP4媒体文件有4部分,每一部分都是一个box,分别为:ftype、moov、free、mdat。
ftyp:file type box,表明文件类型,该box只有一个并且只能被包含在文件层,不能被其他box包含。同时,ftyp出现在MP4媒体文件的最开始的位置。
mdat:该box包含于文件层,可以有多个,也可以没有(当媒体数据全部为外部文件引用时),用来存储媒体数据。
free:free box中的内容是无关紧要的,可以被忽略。该box被删除后,不会对播放产生任何影响。
moov:movie box,用来存放媒体的metadata信息,其内容信息由子box诠释。该box有且只有一个并且包含在文件层。其中,moov box的子box包括mvhd(或称movie header)和trak(或称track or stream container)。
mvhd:用来存放文件的总体信息,如时长和创建时间等。它是独立于媒体的并且与整个播放相关。
trak:是一个存放视频流和音频流的container box,其子box包含了该track的媒体数据引用和描述。trak的子box包含tkhd(或称track header)和mdia(或称track mediainformation container)。其中,container box是指用来容纳一组相关box的box。
tkhd包含了该track的特性和总体信息,如时长,宽高等。tkhd包含了编辑列表容器edts(或称edit list container),edts包括编辑列表elst(或称an edit list)。
mdia包含整个track的媒体信息,比如媒体类型和sample信息。mdia的子box包含mdhd(或称media header)、hdlr(或称handler)和minf(或称media informationcontainer)。
mdhd:包含了该track的总体信息,mdhd和tkhd内容大致都是一样的。tkhd通常是对指定的track设定相关属性和内容。定义timescale,通过timescale换算成媒体时间。Timescale是指用来指定媒体文件在1秒时间内的刻度值,可以理解为1秒长度的时间单元数。
hdlr:解释了媒体的播放信息。
minf:包含了所有描述该track中的媒体信息的对象,信息存储在其子box中。minf包括的子box为stbl(或称sample table box)。
stbl:包含了关于track中sample所有时间和位置的信息,以及sample的编解码等信息。
sample是媒体数据存储的单位(以下称为“媒体帧”),存储在media的chunk中,chunk和sample的长度均可互不相同。video sample即为一帧视频,或一组连续视频帧,audio sample即为一段连续的压缩音频。
stbl是一个container box,其子box包括:sample description box(stsd)、timeto sample box(stts)、sample size box(stsz或stz2)、sample to chunk box(stsc)、chunk offset box(stco或co64)、composition time to sample box(ctts)、sync samplebox(stss)等。
stsd:box header和version字段后会有一个entry count字段,根据entry的个数,每个entry会有type信息,如“vide”、“sund”等,根据type不同sample description会提供不同的信息,例如对于video track,会有“Visual Sample Entry”类型信息,对于audiotrack会有“Audio Sample Entry”类型信息。视频的编码类型、宽高、长度,音频的声道、采样等信息都会出现在这个box中。
stts:存储了时间戳与sample序号的映射表。也可以说,存储了media sample的duration信息,提供了时间对具体data sample的映射方法,可以找到任何时间的sample,可以包含一个压缩的表来映射时间和sample序号,用其他的表来提供每个sample的长度和指针。表中每个条目提供了在同一个时间偏移量里面连续的sample序号,以及samples的偏移量。
stss:确定关键帧,存储了每个关键帧的sample id。对于压缩媒体数据,关键帧是一系列压缩序列的开始帧,其解压缩时不依赖以前的帧,而后续帧的解压缩将依赖于关键帧,stss能让你很方便的找到当前帧最近的关键帧。
stsc:描述了sample与chunk的映射关系,用chunk组织sample可以方便优化数据获取,一个chunk包含一个或多个sample。比如音频sample size都很小(amr-nb samplesize为32字节),每次读取一个sample开销太大,可一次性读所在chunk里一堆sample。
stsz:定义了每个sample的大小,包含了媒体中全部sample的数目和一张给出每个sample大小的表。
stco:描述了每个chunk在文件中的绝对偏移位置。该offset可以是32位的也可以是64位的,后者用来支持处理超大文件。
进一步的,解析媒体文件是指解析媒体文件中的媒体头,得到媒体文件的宽高、时长、码率、编码格式、帧列表、关键帧列表,以及所对应的时戳和在文件中的位置等有效信息,这些有效信息在MP4中是以特定的算法分开存放在stbl box下属的子box中,需要解析stbl下属的子box还原媒体信息。
与现有技术相比,本申请在CDN和流媒体技术中,通过对MP4媒体文件封装格式中媒体头有效信息的存储,提高了在执行时移操作时服务器的性能和响应速度。
本申请的技术方案为通过服务器接收终端设备上的第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;根据时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;向第一客户端发送该位置信息对应的待播放媒体数据。可见,本申请的技术方案通过先存储目标媒体文件的媒体头信息,缩短了在对目标媒体文件进行时移操作时的时移响应时间,由于不需要重新调用服务器获取媒体头,以及解析媒体头信息,提高了服务器的资源利用率。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图5为本发明实施例提供的一种媒体数据的时移响应方法的流程示意图。如图5所示,该方法可以包括:
步骤510、接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,时移操作请求包括时移操作时间和目标媒体文件的媒体标识。
在执行该步骤之前,接收第二客户端发送的播放请求,播放请求包括待播放媒体文件的媒体标识。
当接收到播放请求时,对媒体标识对应的媒体文件进行解析,获取该媒体文件的媒体头信息,存储该媒体头信息,其中,媒体标识与媒体头信息一一对应。
其中,媒体头信息在MP4中是以特定的算法分开存放在stbl box下属的子box中,需要解析stbl下属的子box获取上述有效信息。具体的,媒体头信息可以包括tkhd中编辑列表elst的初始媒体时间和终止媒体时间、mdhd中的timescale、Stts中的媒体时间戳与媒体帧序号的映射表,以及stss中每个关键帧的媒体帧序号。其中,媒体帧为媒体数据存储的单位,媒体帧可以是一帧视频,或一组连续视频帧,也可以是一段连续的压缩音频帧。
进一步的,对媒体头信息进行存储,是将每个box中的box header与box data分开存储,即box header存储在内存中,box data存储在磁盘中。由于box header占用的内存较小,故可以忽略不计,不影响服务器资源开销。
需要说明的是,存储box header的具体方式为:存储MP4的整体架构,架构中boxheader有相应的具体指针,box data的指针为空,即不存储媒体数据。
基于目标媒体文件的属性信息,服务器确定待播放媒体数据的属性信息。
回到步骤510,服务器接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,其中,第一客户端为至少一个客户端中的任意一个客户端。
至少一个客户端对正在播放的目标媒体文件执行时移操作的步骤,可以是至少一个客户端中的一部分客户端对目标媒体文件执行快进操作,另一部分客户端对目标媒体文件执行后退操作,或者,至少一个客户端全部对目标媒体文件执行快进操作或后退操作,具体的时移操作本发明实施例在此不做限定。
针对至少一个客户端中的第一客户端,服务器获取第一客户端对正在播放的目标媒体文件执行快进操作或后退操作的时移时间和该目标媒体文件的媒体标识。
在一个例子中,以存在客户端1和客户端2两个客户端,目标媒体文件总时长为20分钟为例,客户端1播放目标媒体文件的当前播放时间为T1,对目标媒体文件执行快进操作后,当前播放时间由T1变为T2,客户端1向服务器发送的时移时间为T2,即想要播放T2时刻后的媒体数据;客户端2播放目标媒体文件的当前播放时间为T4,对目标媒体文件执行后退操作后,当前播放时间由T4变为T1,客户端2向服务器发送的时移时间为T1,即想要返回播放T1时刻后的媒体数据。
可选地,服务器还可以接收第一客户端发送的目标媒体文件的属性信息,该属性信息包括第一客户端播放目标媒体文件的播放信息,如媒体类型信息、视频的编码类型、宽高、长度,音频的声道、采样等信息。
步骤520、根据时移操作时间与存储的媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息。
基于第一客户端发送的目标媒体文件的媒体标识,查找到媒体标识对应的存储的媒体文件的媒体头信息。
由于客户端的播放时间与MP4格式中媒体帧对应的媒体时间格式不统一,故需要将客户端发送的时移操作时间转换为媒体时间。基于查找到的媒体头信息中mdhd的timescale与时移操作时间,得到mvhd的媒体时间,之后基于tkhd中elst的每个编辑列表时间,得到trak的媒体时间。
例如,以时移操作时间为t1为例,根据mdhd中的timescale将t1,转化为mvhd的媒体时间t2。先根据mdhd中每个编辑列表的起始时间和终止时间,确定包含t3的目标编辑列表,再基于目标编辑列表的起始时间与t3做差,得到trak的媒体时间。
基于trak的媒体时间,查找存储的stts中的时间戳与媒体帧序号的映射表,得到待播放媒体帧序号。其中,待播放媒体帧序号为待播放媒体数据的位置信息。
由于该待播放媒体帧序号可能是关键帧,也可能不是关键帧,故需要再一次对待播放媒体帧序号是否为关键帧进行验证。查看stss中是否存在与待播放媒体帧序号相同的关键帧序号,若是,则证明待播放媒体帧序号为关键帧序号,将待播放媒体帧序号作为时移操作时间对应的待播放媒体数据的位置信息;若否,则获取与待播放媒体帧序号相近的关键帧序号,其中,相近的关键帧序号可以是向前与待播放媒体帧序号相近,或者向后与待播放媒体帧序号相近,本发明实施例在此不做限定。
例如,以待播放媒体帧序号为5为例,stss中存储的关键帧序号包括关键帧1、关键帧2、关键帧7、关键帧9。可知,向后与待播放媒体帧序号相近的关键帧序号为关键帧7,向前与待播放媒体帧序号相近的关键帧序号为关键帧2,故可以将关键帧7或关键帧2作为时移操作时间对应的待播放媒体数据的位置信息。
由此可知,在执行时移操作时可以直接查找存储的媒体头信息,与现有技术相比,本发明实施例在执行时移操作时不需要执行从磁盘上查找媒体头再解析媒体头信息的过程,可以直接查找解析好的媒体头信息,节省了时间。
步骤530、向第一客户端发送位置信息对应的待播放媒体数据。
该媒体头信息还包括待播放媒体数据的解码率。服务器向第一客户端发送位置信息对应的待播放媒体数据和解码率,以使第一客户端进行播放。
图6为本发明实施例提供的另一种媒体数据的时移响应方法的流程示意图。如图6所示,该方法可以包括:
步骤601、接收客户端A发送的播放请求,播放请求包括待播放媒体文件的媒体标识。
步骤602、对媒体标识对应的媒体文件进行解析,获取媒体文件的媒体头信息,存储该媒体头信息。
步骤603、接收客户端B对正在播放的目标媒体文件的时移操作请求,时移操作请求包括时移操作时间和目标媒体文件的媒体标识。
步骤604、获取目标媒体文件的媒体标识对应的存储的媒体头信息。
步骤605、基于媒体头信息中的timescale和每个编辑列表时间,将时移操作时间转换为trak的媒体时间。
步骤606、基于trak的媒体时间,查找存储的stts中的时间戳与媒体帧序号的映射表,得到待播放媒体帧序号。
步骤607、判断得到的待播放媒体帧序号是否为关键帧序号;
若是,则执行步骤609;
若否,则执行步骤608。
步骤608、将与待播放媒体帧序号相近的关键帧序号作为时移操作时间对应的待播放媒体帧序号,之后执行步骤609。
步骤609、向客户端B发送待播放媒体帧。
上述方法通过服务器接收终端设备上的第一客户端发送的对正在播放的目标媒体文件的时移操作请求,时移操作请求包括时移操作时间和目标媒体文件的媒体标识;根据时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;向第一客户端发送该位置信息对应的待播放媒体数据。可见,该方法通过先存储目标媒体文件的媒体头信息,缩短了在对目标媒体文件进行时移操作时的时移响应时间,由于不需要重新调用服务器获取媒体头,以及解析媒体头信息,提高了服务器的资源利用率。
与上述方法对应的,本发明实施例还提供一种时移响应装置,如图7所示,该装置可以包括:接收单元710、获取单元720和发送单元730。
接收单元710,用于接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;
获取单元720,用于根据时移操作时间与存储的媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;
发送单元730,用于向第一客户端发送位置信息对应的待播放媒体数据。
在一个可选的实现中,该装置还可以包括存储单元740;
接收单元710,还用于接收第二客户端发送的播放请求,播放请求包括待播放媒体文件的媒体标识,第二客户端为除第一客户端之外的客户端;
获取单元720,还用于对目标媒体文件进行解析,获取目标媒体文件的媒体头信息;
存储单元740,用于存储所述目标媒体文件的媒体头信息。
在一个可选的实现中,获取单元720,具体用于基于所述媒体头信息,将时移操作时间转换为媒体时间,媒体时间为目标媒体文件的媒体帧对应的时间;
基于媒体时间,查找存储的媒体头信息,得到媒体时间对应的待播放媒体数据的位置信息。
在一个可选的实现中,该装置还可以包括确定单元750;
接收单元710,还用于接收第一客户端发送的目标媒体文件的属性信息,所述属性信息包括第一客户端播放目标媒体文件的播放信息;
确定单元750,用于基于目标媒体文件的属性信息,确定目标媒体文件中待播放媒体数据的属性信息。
在一个可选的实现中,该媒体头信息可以包括待播放媒体数据的解码率;
发送单元730,用于向第一客户端发送位置信息对应的待播放媒体数据和解码率。
本发明上述实施例提供的时移响应装置的各功能单元的功能,可以通过上述图5中各方法步骤来实现,因此,本发明实施例提供的时移响应装置中的各个单元的具体工作过程和有益效果,在此不复赘述。
本发明实施例还提供了一种服务器,如图8所示,包括处理器810、通信接口820、存储器830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。
存储器830,用于存放计算机程序;
处理器810,用于执行存储器830上所存放的程序时,实现如下步骤:
接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;
根据时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息;
向第一客户端发送位置信息对应的待播放媒体数据。
在一个可选的实现中,接收第一客户端发送的对正在播放的目标媒体文件时移操作请求之前,该方法还可以包括:
接收第二客户端发送的播放请求,播放请求均用于请求播放目标媒体文件,第二客户端为除所述第一客户端之外的客户端;
对目标媒体文件进行解析,获取目标媒体文件的媒体头信息;
存储目标媒体文件的媒体头信息。
在一个可选的实现中,根据时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取时移操作时间对应的目标媒体文件中待播放媒体数据的位置信息,包括:
基于媒体头信息,将时移操作时间转换为媒体时间,媒体时间为目标媒体文件的媒体帧对应的时间;
基于媒体时间,查找存储的媒体头信息,得到媒体时间对应的待播放媒体数据的位置信息。
在一个可选的实现中,根据时移操作时间与存储的媒体标识对应的媒体文件的媒体头信息,获取所移操作时间对应的目标媒体文件中待播放媒体数据的位置信息之前,该方法还可以包括:
接收所述第一客户端发送的所述目标媒体文件的属性信息,属性信息包括第一客户端播放目标媒体文件的播放信息;
基于目标媒体文件的属性信息,确定目标媒体文件中待播放媒体数据的属性信息。
在一个可选的实现中,媒体头信息包括待播放媒体数据的解码率;向第一客户端发送位置信息对应的待播放媒体数据,包括:
向第一客户端发送位置信息对应的待播放媒体数据和该解码率。
上述提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由于上述实施例中服务器的各器件解决问题的实施方式以及有益效果可以参见图5所示的实施例中的各步骤来实现,因此,本发明实施例提供的服务器的具体工作过程和有益效果,在此不复赘述。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的时移响应方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的时移响应方法。
本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。
Claims (12)
1.一种媒体数据的时移响应方法,其特征在于,所述方法包括:
接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;
根据所述时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取所述时移操作时间对应的所述目标媒体文件中待播放媒体数据的位置信息;
向所述第一客户端发送所述位置信息对应的所述待播放媒体数据。
2.如权利要求1所述的方法,其特征在于,接收第一客户端发送的对正在播放的目标媒体文件时移操作请求之前,所述方法还包括:
接收第二客户端发送的播放请求,所述播放请求包括待播放媒体文件的媒体标识,所述第二客户端为除所述第一客户端之外的客户端;
对所述媒体标识对应的媒体文件进行解析,获取所述媒体文件的媒体头信息;
存储所述媒体文件的媒体头信息。
3.如权利要求1所述的方法,其特征在于,根据所述时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取所述时移操作时间对应的所述目标媒体文件中待播放媒体数据的位置信息,包括:
基于所述媒体头信息,将所述时移操作时间转换为媒体时间,所述媒体时间为所述目标媒体文件的媒体帧对应的时间;
基于所述媒体时间,查找存储的所述媒体头信息,得到所述媒体时间对应的待播放媒体数据的位置信息。
4.如权利要求1所述的方法,其特征在于,根据所述时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取所述时移操作时间对应的所述目标媒体文件中待播放媒体数据的位置信息之前,所述方法还包括:
接收所述第一客户端发送的所述目标媒体文件的属性信息,所述属性信息包括所述第一客户端播放所述目标媒体文件的播放信息;
基于所述目标媒体文件的属性信息,确定所述目标媒体文件中待播放媒体数据的属性信息。
5.如权利要求3所述的方法,其特征在于,所述媒体头信息包括所述待播放媒体数据的解码率;
向所述第一客户端发送所述位置信息对应的所述待播放媒体数据,包括:
向所述第一客户端发送所述位置信息对应的所述待播放媒体数据和所述解码率。
6.一种时移响应装置,其特征在于,所述装置包括:
接收单元,用于接收第一客户端发送的对正在播放的目标媒体文件的时移操作请求,所述时移操作请求包括时移操作时间和所述目标媒体文件的媒体标识;
获取单元,用于根据所述时移操作时间与存储的所述媒体标识对应的媒体文件的媒体头信息,获取所述时移操作时间对应的所述目标媒体文件中待播放媒体数据的位置信息;
发送单元,用于向所述第一客户端发送所述位置信息对应的所述待播放媒体数据。
7.如权利要求6所述的装置,其特征在于,所述装置还包括存储单元;
所述接收单元,还用于接收第二客户端发送的播放请求,所述播放请求包括待播放媒体文件的媒体标识,所述第二客户端为除所述第一客户端之外的客户端;
所述获取单元,还用于对所述目标媒体文件进行解析,获取所述目标媒体文件的媒体头信息;
所述存储单元,用于存储所述目标媒体文件的媒体头信息。
8.如权利要求6所述的装置,其特征在于,所述获取单元,具体用于基于所述媒体头信息,将所述时移操作时间转换为媒体时间,所述媒体时间为所述目标媒体文件的媒体帧对应的时间;
基于所述媒体时间,查找存储的所述媒体头信息,得到所述媒体时间对应的待播放媒体数据的位置信息。
9.如权利要求6所述的装置,其特征在于,所述装置还包括确定单元;
所述接收单元,还用于接收所述第一客户端发送的所述目标媒体文件的属性信息,所述属性信息包括所述第一客户端播放所述目标媒体文件的播放信息;
所述确定单元,用于基于所述目标媒体文件的属性信息,确定所述目标媒体文件中待播放媒体数据的属性信息。
10.如权利要求8所述的装置,其特征在于,所述媒体头信息包括所述待播放媒体数据的解码率;
所述发送单元,用于向所述第一客户端发送所述位置信息对应的所述待播放媒体数据和所述解码率。
11.一种服务器,其特征在于,所述服务器包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857771.0A CN110784741A (zh) | 2018-07-31 | 2018-07-31 | 媒体数据的时移响应方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857771.0A CN110784741A (zh) | 2018-07-31 | 2018-07-31 | 媒体数据的时移响应方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110784741A true CN110784741A (zh) | 2020-02-11 |
Family
ID=69383142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810857771.0A Pending CN110784741A (zh) | 2018-07-31 | 2018-07-31 | 媒体数据的时移响应方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110784741A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111429871A (zh) * | 2020-03-20 | 2020-07-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 媒体文件获取方法及装置、存储介质 |
CN113158044A (zh) * | 2021-04-20 | 2021-07-23 | 科技日报社 | 全媒体在线审读的方法、系统、终端设备和存储介质 |
CN113542764A (zh) * | 2021-07-12 | 2021-10-22 | 中国电信股份有限公司 | 视频快速启播方法、装置、电子设备及计算机可读介质 |
CN113852857A (zh) * | 2021-10-20 | 2021-12-28 | 成都华栖云科技有限公司 | 一种基于html5视频帧步进时的声音播放方法及系统 |
CN114584794A (zh) * | 2020-12-01 | 2022-06-03 | 青岛海信宽带多媒体技术有限公司 | 一种音视频播放方法、装置、播放终端及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100810223B1 (ko) * | 2007-01-19 | 2008-03-06 | 삼성전자주식회사 | 단말 간 실시간 스트리밍 서비스 제공 시스템 및 방법 |
JP2009081802A (ja) * | 2007-09-27 | 2009-04-16 | Saxa Inc | テレビ会議システム、サーバ端末、およびクライアント端末 |
CN101588473A (zh) * | 2009-06-18 | 2009-11-25 | 北京浪弯融科科技有限责任公司 | 多媒体时移播放方法及系统 |
CN101917388A (zh) * | 2009-12-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种流媒体数据存储方法及装置 |
CN104661058A (zh) * | 2013-11-20 | 2015-05-27 | 深圳市云帆世纪科技有限公司 | Mp4视频点播的数据流传输方法、客户端及点播系统 |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
CN107231581A (zh) * | 2016-03-25 | 2017-10-03 | 中国电信股份有限公司 | 用于视频播放的方法、系统及流媒体播放控制服务器 |
-
2018
- 2018-07-31 CN CN201810857771.0A patent/CN110784741A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100810223B1 (ko) * | 2007-01-19 | 2008-03-06 | 삼성전자주식회사 | 단말 간 실시간 스트리밍 서비스 제공 시스템 및 방법 |
JP2009081802A (ja) * | 2007-09-27 | 2009-04-16 | Saxa Inc | テレビ会議システム、サーバ端末、およびクライアント端末 |
CN101588473A (zh) * | 2009-06-18 | 2009-11-25 | 北京浪弯融科科技有限责任公司 | 多媒体时移播放方法及系统 |
CN101917388A (zh) * | 2009-12-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种流媒体数据存储方法及装置 |
CN104661058A (zh) * | 2013-11-20 | 2015-05-27 | 深圳市云帆世纪科技有限公司 | Mp4视频点播的数据流传输方法、客户端及点播系统 |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
CN107231581A (zh) * | 2016-03-25 | 2017-10-03 | 中国电信股份有限公司 | 用于视频播放的方法、系统及流媒体播放控制服务器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111429871A (zh) * | 2020-03-20 | 2020-07-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 媒体文件获取方法及装置、存储介质 |
CN114584794A (zh) * | 2020-12-01 | 2022-06-03 | 青岛海信宽带多媒体技术有限公司 | 一种音视频播放方法、装置、播放终端及存储介质 |
CN114584794B (zh) * | 2020-12-01 | 2023-09-22 | 青岛海信宽带多媒体技术有限公司 | 一种音视频播放方法、装置、智能机顶盒及存储介质 |
CN113158044A (zh) * | 2021-04-20 | 2021-07-23 | 科技日报社 | 全媒体在线审读的方法、系统、终端设备和存储介质 |
CN113542764A (zh) * | 2021-07-12 | 2021-10-22 | 中国电信股份有限公司 | 视频快速启播方法、装置、电子设备及计算机可读介质 |
CN113852857A (zh) * | 2021-10-20 | 2021-12-28 | 成都华栖云科技有限公司 | 一种基于html5视频帧步进时的声音播放方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784741A (zh) | 媒体数据的时移响应方法及装置 | |
US8510375B2 (en) | Apparatus and methods for time mapping media segments in streaming media files | |
US10476928B2 (en) | Network video playback method and apparatus | |
US9521469B2 (en) | Carriage of quality information of content in media formats | |
EP3099074B1 (en) | Systems, devices and methods for video coding | |
CN102694831B (zh) | 移动终端流媒体数据补偿方法与系统、内容分发网络 | |
US9787999B2 (en) | Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames | |
CN111063376B (zh) | 一种mp4修复中音视频同步的方法、终端设备和存储介质 | |
CN104602105B (zh) | 视频文件的播放方法及用户设备 | |
CN102118539B (zh) | 一种多媒体播放终端及其文件拖动播放方法和装置 | |
CN107277594A (zh) | 一种视音频与弹幕同步方法及装置 | |
WO2023125169A1 (zh) | 音频处理方法、装置、设备及存储介质 | |
CN110662017B (zh) | 一种视频播放质量检测方法和装置 | |
CN110087142B (zh) | 一种视频切片方法、装置、终端及存储介质 | |
CN113923473A (zh) | 影音播放方法、装置、电子设备和存储介质 | |
CN108810575B (zh) | 一种发送目标视频的方法和装置 | |
US20190109882A1 (en) | System and Method for Assembling and Playing a Composite Audiovisual Program Using Single-Action Content Selection Gestures and Content Stream Generation | |
KR20090017027A (ko) | 미디어 객체 기반 메타데이터의 생성 방법, 재생 방법 및그 장치 | |
CN107872716B (zh) | 一种后置封装的流式数据解析方法、装置及电子设备 | |
CN109587517B (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
JP4719506B2 (ja) | 端末装置、コンテンツ再生方法、及びコンピュータプログラム | |
WO2021009597A1 (en) | A system and a method for streaming videos by creating object urls at client | |
CN103561013A (zh) | 流媒体的数据分发系统 | |
CN109982113B (zh) | 一种视频文件处理方法及装置 | |
CN113301391B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200211 |