CN111988674A - 一种多媒体数据传输方法、装置、设备及存储介质 - Google Patents
一种多媒体数据传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111988674A CN111988674A CN202010833893.3A CN202010833893A CN111988674A CN 111988674 A CN111988674 A CN 111988674A CN 202010833893 A CN202010833893 A CN 202010833893A CN 111988674 A CN111988674 A CN 111988674A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- sub
- main
- multimedia
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- 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/60—Network 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/63—Control 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/643—Communication protocols
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多媒体数据传输方法、装置、设备及存储介质,包括:根据采集到的多媒体数据的播放时间顺序将多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识;将每个数据片段打包为指定数量的数据包,数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识;将数据包发送至多媒体数据播放端,多媒体数据播放端用于在接收到数据包后,根据数据包的包头所包含主包号和子包号对数据包进行解码,获得多媒体数据。避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
Description
技术领域
本发明实施例通信技术领域,尤其涉及一种多媒体数据传输方法、装置、设备及存储介质。
背景技术
在多媒体数据传输过程中,为了减少传输的数据量,会将原始多媒体数据序列按照某种编码算法进行压缩,得到每帧数据量不等的码流。为了适应网络传输,该压缩码流还要按照某种封装协议进行一次封装和分片,在IP网络上的封装和分片过程称之为打包。
经过编码、打包后,一帧原始多媒体数据被分成了多个实时传输协议(Real-timeTransport Protocol,RTP)的数据包进行传送,为了提高传输效率,传输数据包一般使用用户数据报协议(User Datagram Protocol,UDP),该传输协议由于不需要握手和应答,因此传输效率很高。但是,基于UDP传输的原理,UDP是不可靠传输,因此可能会导致传输过程中,先发的数据后到或者后发的数据先到,导致的后果就是多媒体数据出现混乱,最终导致接收端不能解码出完整的多媒体数据。
发明内容
本发明提供一种多媒体数据传输方法、装置、设备及存储介质,以避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
第一方面,本发明实施例提供了一种多媒体数据传输方法,应用于多媒体数据采集端,包括:
根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识;
将每个数据片段打包为指定数量的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
将所述数据包发送至多媒体数据播放端,所多媒体数据播放端用于在接收到所述数据包后,根据所述数据包的包头所包含主包号和所述子包号对所述数据包进行解码,获得所述多媒体数据。
可选的,所述根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,包括:
按照预设播放时长和所述多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段;
根据所述数据片段的结束播放时间的先后顺序为所述数据片段设置片段顺序标识。
可选的,所述将每个数据片段打包为指定数量的数据包,包括:
将所述数据片段划分为指定数量的子数据片段;
确定所述子数据片段在所述数据片段中的顺序作为包顺序标识;
将所述数据片段的片段顺序标识、所述包顺序标识作为包头对所述子数据片段进行编码得到数据包,在所述包头中所述片段顺序标识为主包号,所述包顺序标识为子包号。
第二方面,本发明实施例还提供了一种多媒体数据传输方法,应用于多媒体数据播放端,包括:
接收多媒体数据采集端发送的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
根据所述主包号和所述子包号存储所述数据包中的包体数据;
在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。
可选的,所述据所述主包号和所述子包号存储所述数据包中的包体数据,包括:
针对接收到的每个数据包,解析所述数据包获得包头中的主包号和子包号;
判断多个缓存区域中是否存储有主包号与接收到的数据包的主包号相同的包体数据;
若是,则将接收到的数据包的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中;
若否,则将接收到的数据包的包体数据存储到空闲的缓存区域中。
可选的,所述缓存区域包括指定数量的子区域,所述将接收到的数据包的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中,包括:
将所述数据包的包体数据存储到所述缓存区域中所述子包号对应的子区域中;
将所述缓存区域的已存储包体数据的数量累加1。
可选的,所述将接收到的数据包的包体数据存储到空闲的缓存区域中,包括:
获取多个缓存区域的状态信息;
判断多个缓存区域中是否存在状态信息为空闲状态的缓存区域;
若是,则将所述数据包的包体数据存储到空闲的缓存区域中;
若否,则清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态;
将所述数据包的包体数据存储到清空后的缓存区域中,并更新所述缓存区域存储的包体数据的主包号以及更新所述缓存区域的状态信息为占用状态。
可选的,所述缓存区域设置有已存储包体数据的数量和已存储包体数据的主包号,所述在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,包括:
判断主包号为最小值的缓存区域的已存储包体数据的数量是否等于指定数值;
若是,则按照所述主包号为最小值的缓存区域中子区域的顺序,将所述主包号为最小值的缓存区域中的包体数据发送至播放区;
若否,则统计所述主包号为最小值的缓存区域存储包体数据的总时长;
在所述总时长大于预设阈值时,清空所述主包号为最小值的缓存区域。
可选的,所述在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,还包括:
将包体数据发送完的缓存区域,以及清空后的缓存区域的状态信息、已存储包体数据的数量和已存储包体数据的主包号初始化。
第三方面,本发明实施例还提供了一种多媒体数据传输装置,应用于多媒体数据采集端,包括:
数据片段划分模块,用于根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识;
数据打包模块,用于将每个数据片段打包为指定数量的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
数据包发送模块,用于将所述数据包发送至多媒体数据播放端,所多媒体数据播放端用于在接收到所述数据包后,根据所述数据包的包头所包含主包号和所述子包号对所述数据包进行解码,获得所述多媒体数据。
可选的,数据片段划分模块包括:
数据片段划分子模块,用于按照预设播放时长和所述多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段;
片段顺序标识设置子模块,用于根据所述数据片段的结束播放时间的先后顺序为所述数据片段设置片段顺序标识。
可选的,数据打包模块包括:
子数据片段划分子模块,用于将所述数据片段划分为指定数量的子数据片段;
包顺序标识确定子模块,用于确定所述子数据片段在所述数据片段中的顺序作为包顺序标识;
编码子模块,用于将所述数据片段的片段顺序标识、所述包顺序标识作为包头对所述子数据片段进行编码得到数据包,在所述包头中所述片段顺序标识为主包号,所述包顺序标识为子包号。
第四方面,本发明实施例还提供了一种多媒体数据传输装置,应用于多媒体数据播放端,包括:
数据包接收模块,用于接收多媒体数据采集端发送的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
包体数据存储模块,用于根据所述主包号和所述子包号存储所述数据包中的包体数据;
包体数据发送模块,用于在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。
可选的,包体数据存储模块包括:
解析子模块,用于针对接收到的每个数据包,解析所述数据包获得包头中的主包号和子包号;
第一判断子模块,用于判断多个缓存区域中是否存储有主包号与接收到的数据包的主包号相同的包体数据;
第一存储子模块,用于在确定多个缓存区域中存储有主包号与接收到的数据包的主包号相同的包体数据时,将接收到的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中;
第二存储子模块,用于在确定多个缓存区域中没有存储有主包号与接收到的数据包的主包号相同的包体数据时,将接收到的数据包的包体数据存储到空闲的缓存区域中。
可选的,第一存储子模块包括:
第一存储单元,用于将所述数据包的包体数据存储到所述缓存区域中所述子包号对应的子区域中;
累加单元,用于将所述缓存区域的已存储包体数据的数量累加1。
可选的,第二存储子模块包括:
状态信息获取单元,用于获取多个缓存区域的状态信息;
判断单元,用于判断多个缓存区域中是否存在状态信息为空闲状态的缓存区域;
第二存储单元,用于在确定多个缓存区域中存在状态信息为空闲状态的缓存区域时,将所述数据包的包体数据存储到空闲的缓存区域中;
清空单元,用于在确定多个缓存区域中不存在状态信息为空闲状态的缓存区域时,清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态;
第三存储单元,用于将所述数据包的包体数据存储到清空后的缓存区域中,并更新所述缓存区域存储的包体数据的主包号以及更新所述缓存区域的状态信息为占用状态。
可选的,所述缓存区域设置有已存储包体数据的数量和已存储包体数据的主包号,包体数据发送模块包括:
第二判断子模块,用于判断主包号为最小值的缓存区域的已存储包体数据的数量是否等于指定数值;
发送子模块,用于在确定主包号为最小值的缓存区域的已存储包体数据的数量等于指定数值时,按照所述主包号为最小值的缓存区域中子区域的顺序,将所述主包号为最小值的缓存区域中的包体数据发送至播放区;
时长统计子模块,用于在确定主包号为最小值的缓存区域的已存储包体数据数量不等于指定数值时,统计所述主包号为最小值的缓存区域存储包体数据的总时长;
清空子模块,用于在所述总时长大于预设阈值时,清空所述主包号为最小值的缓存区域。
可选的,包体数据发送模块还包括:
初始化子模块,用于将数据包发送完的缓存区域,以及清空后的缓存区域的状态信息、已存储包体数据的数量和已存储包体数据的主包号初始化。
第五方面,本发明实施例还提供了一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明第一方面提供的多媒体数据传输方法,或实现如本发明第二方面提供的多媒体数据传输方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面提供的多媒体数据传输方法,或实现如本发明第二方面提供的多媒体数据传输方法。
本发明实施例提供的多媒体数据传输方法,应用于多媒体数据采集端,通过将采集到的多媒体数据按照播放时间顺序划分为多个数据片段,将每个数据片段打包为指定数量的数据包,数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识,将数据包发送至多媒体数据播放端。多媒体数据播放端对数据包进行解析,获取数据包中的包头和包体,然后根据主包号和子包号存储数据包中的包体数据。并在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
附图说明
图1为本发明实施例一提供的一种多媒体数据传输方法的流程图;
图2为本发明实施例二提供的一种多媒体数据传输方法的流程图;
图3为本发明实施例三提供的一种多媒体数据传输方法的流程图;
图4为本发明实施例四提供的一种多媒体数据传输方法的流程图;
图5为本发明实施例五提供的一种多媒体数据传输装置的结构示意图;
图6为本发明实施例六提供的一种多媒体数据传输装置的结构示意图;
图7为本发明实施例七提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种多媒体数据传输方法的流程图,本实施例可适用于基于UDP传输协议的多媒体数据传输的情况,该方法可以由本发明实施例提供的多媒体数据传输装置来执行,该装置可采用软件和/或硬件的方式实现,并集成于本发明实施例所提供的多媒体数据采集端中,如图1所示,该方法具体包括如下步骤:
S101、根据采集到的多媒体数据的播放时间顺序将多媒体数据划分为多个数据片段。
具体的,多媒体数据采集端可以是音频采集器,例如麦克风,用于采集音频数据;可以是视频采集器,例如摄像头,用于采集视频数据。在本发明的具体实施例中,以多媒体数据采集端为音频采集器为示例,对本发明实施例进行说明。
多媒体数据采集端持续地、实时地采集多媒体数据,并根据采集到的多媒体数据的播放时间顺序(或者采集时间顺序)将多媒体数据划分为多个数据片段。具体的,在本发明一具体实施例中,多媒体数据采集端在数据采集的过程中,按照预定的时间段(例如1s)进行划分,在采集到预定的时间段的多媒体数据时,将该时间段的多媒体数据定义为一个数据片段,依次类推,直至划分完最后一个数据片段。在本发明的另一具体实施例中,多媒体数据采集端在采集完一段完整的多媒体数据后,再对该段完整的多媒体数据进行划分,从采集的初始时刻开始,以预定的时间间隔(例如1s)进行划分,将该段完整的多媒体数据划分为多个数据片段。
上述实施例中,多媒体数据的播放时间顺序(或采集时间顺序)可以通过在采集过程中或采集完成后在数据中添加的时间戳来确定。
上述实施例中,在多媒体数据进行划分的过程中,当最后播放(或最后采集到)的数据片段的时长小于预定的时间段或小于预定的时间间隔时,对该段数据片段进行零填充。
具体的,上述实施例中,在按照播放时间顺序划分多媒体数据时,每个数据片段设置有片段顺序标识,片段顺序标识用于标识该数据片段的顺序。
S102、将每个数据片段打包为指定数量的数据包。
具体的,数据打包是就是把多媒体数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,数据包包括包头和包体两部分。本发明实施例中,将每个数据片段打包为指定数量的数据包。本发明实施例中,数据包的包头包括主包号和子包号,其中,主包号为该数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识,包顺序标识用于标识该数据数据包在数据片段中的顺序。包体为包括该数据包的包体数据,即该数据包中包含的有效数据。
S103、将数据包发送至多媒体数据播放端。
具体的,在将每个数据片段打包为指定数量的数据包后,将数据包通过无线传输媒介发送给多媒体数据播放端。示例性的,在一具体实施例中,多媒体数据采集端按照数据包的包顺序标识依次发送数据包。
多媒体数据播放端可以是音频播放器或视频播放器,多媒体数据播放端用于在接收到数据包后,根据数据包的包头所包含主包号和子包号对所述数据包进行解码,获得多媒体数据。具体的,多媒体数据播放端对数据包进行解析,获取数据包中的包头和包体,然后根据主包号和子包号存储数据包中的包体数据。并在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
本发明实施例提供的多媒体数据传输方法,应用于多媒体数据采集端,通过将采集到的多媒体数据按照播放时间顺序划分为多个数据片段,将每个数据片段打包为指定数量的数据包,数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识,将数据包发送至多媒体数据播放端。多媒体数据播放端对数据包进行解析,获取数据包中的包头和包体,然后根据主包号和子包号存储数据包中的包体数据。并在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
实施例二
图2为本发明实施例二提供的一种多媒体数据传输方法的流程图,本发明实施例以前述实施例一为基础进行优化,详细描述了本发明实施例中数据包的划分的具体过程和数据包的数据结构,具体的,如图2所示,本发明实施例的方法可以包括如下步骤:
S201、按照预设播放时长和多媒体数据的播放时间顺序将多媒体数据划分为多个数据片段。
具体的,多媒体数据采集端在采集完一段预设播放时长的多媒体数据后,按照多媒体数据的播放时间顺序将该段多媒体数据等分为多个数据片段。示例性的,在本发明一具体实施例中,多媒体数据为音频数据,多媒体数据采集端为麦克风。麦克风在采集完一段3s播放时长的音频数据后,将该音频数据按照播放时间顺序依次切分为3个时长为1s的音频片段。
S202、根据数据片段的结束播放时间的先后顺序为数据片段设置片段顺序标识。
具体的,数据片段的结束播放时间为第N秒末,则将该数据片段的片段顺序标识设置为第N。示例性的,在本发明一具体实施例中,将结束播放时间为第1秒末的音频片段的片段标识设置为第1,将结束播放时间为第2秒末的音频片段的片段标识设置为第2,将结束播放时间为第3秒末的音频片段的片段标识设置为第3。
S203、将数据片段划分为指定数量的子数据片段。
具体的,在对数据片段进行打包的过程中,首先将数据片段按照时间先后顺序划分为指定数量的子数据片段。示例性的,在本发明一具体实施例中,将每个时长为1s的音频片段按照时间先后顺序划分为16子音频片段。
S204、确定子数据片段在数据片段中的顺序作为包顺序标识。
具体的,根据划分子数据片段的时间先后顺序,确定子数据片段在数据片段中的顺序作为包顺序标识。示例性的,在本发明一具体实施例中,在将每个时长为1s的音频片段按照时间先后顺序划分为16子音频片段的同时或之后,按照时间先后顺序为每一子音频片段设置包顺序标识,依次分别为第1至第16。
S205、将数据片段的片段顺序标识、包顺序标识作为包头对子数据片段进行编码得到数据包。
具体的,对于每个子数据片段,将该子数据片段所属的数据片段的片段顺序标识、该子数据片段的包顺序标识作为包头,将该子数据片段的数据作为包体进行编码,形成数据包。在数据包的包头中片段顺序标识为主包号,包顺序标识为子包号。示例性的,表1示出了本发明实施例提供的一种数据包的数据结构,数据包包括包头和包体,包头包括主包号和子包号,包体为该数据包的有效数据,即子音频片段的数据。
表1
在本实施例中,包头中还包括帧头,一帧数据即为一个数据包。帧头为一数据类型标识符,用于标识数据的类型,例如用于标示该数据为音频数据或视频数据。
示例性的,在本发明一具体实施例中,一个3s时长的音频片段的数据结构如表2所示。
表2
数据描述说明 | 音频标识符 | 主包号 | 子包号 | 音频数据 |
第1秒音频片段的第1个数据包 | 帧头 | 1 | 1 | XXXXXX |
第1秒音频片段的第2个数据包 | 帧头 | 1 | 2 | XXXXXX |
… | … | … | … | … |
第1秒音频片段的第16个数据包 | 帧头 | 1 | 16 | XXXXXX |
第2秒音频片段的第1个数据包 | 帧头 | 2 | 1 | XXXXXX |
第2秒音频片段的第2个数据包 | 帧头 | 2 | 2 | XXXXXX |
… | … | … | … | … |
第2秒音频片段的第16个数据包 | 帧头 | 2 | 16 | XXXXXX |
第3秒音频片段的第1个数据包 | 帧头 | 3 | 1 | XXXXXX |
第3秒音频片段的第2个数据包 | 帧头 | 3 | 2 | XXXXXX |
… | … | … | … | … |
第3秒音频片段的第16个数据包 | 帧头 | 3 | 16 | XXXXXX |
如表2所示,每个时长为1s的音频片段按照时间先后顺序划分为16子音频片段,每个子音频片段形成一个数据包,数据包由包头和包体组成。包体即为该子音频片段的有效音频数据,包头包括主包号和子包号,主包号为该子音频片段所属的音频片段的片段顺序标识,子包号为所述数据包的包顺序标识,也即子音频片段在所属音频片段中的顺序标识。
需要说明的是,上述表2中,为了便于理解,主包号和子包号用十进制表示,在实际的数据包中,主包号和子包号为计算机语言表示,例如二进制或十六进制的字符串。
S206、将数据包发送至多媒体数据播放端。
具体的,在将每个数据片段打包为指定数量的数据包后,将数据包通过无线传输媒介发送给多媒体数据播放端。示例性的,在一具体实施例中,多媒体数据采集端按照数据包的包顺序标识依次发送数据包。
本发明实施例提供的多媒体数据传输方法,应用于多媒体数据采集端,通过将采集到的多媒体数据按照播放时间顺序划分为多个数据片段,将每个数据片段打包为指定数量的数据包,数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识,将数据包发送至多媒体数据播放端。多媒体数据播放端对数据包进行解析,获取数据包中的包头和包体,然后根据主包号和子包号存储数据包中的包体数据。并在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
实施例三
图3为本发明实施例三提供的一种多媒体数据传输方法的流程图,本实施例可适用于基于UDP传输协议的多媒体数据传输的情况,该方法可以由本发明实施例提供的多媒体数据传输装置来执行,该装置可采用软件和/或硬件的方式实现,并集成于本发明实施例所提供的多媒体数据播放端中,如图3所示,该方法具体包括如下步骤:
S301、接收多媒体数据采集端发送的数据包。
具体的,多媒体数据播放端通过无线传输媒介接收多媒体数据采集端发送的数据包。数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识。
具体的,多媒体数据采集端根据采集到的多媒体数据的播放时间顺序将多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识,接着将每个数据片段打包为指定数量的数据包,数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在所述数据片段中的包顺序标识,然后,将数据包发送至多媒体数据播放端。具体的,将多媒体数据划分为多个数据片段的过程,以及将每个数据片段打包为指定数量的数据包的过程在前述实施例中已有详细记载,本发明实施例在此不再赘述。
S302、根据主包号和子包号存储数据包中的包体数据。
具体的,多媒体数据播放端对数据包进行解析,获取数据包中的包头和包体,然后根据主包号和子包号存储数据包中的包体数据。示例性,在本发明一具体实施例中,将主包号相同的数据包中的包体数据存储到同一个缓存区域。
S303、在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。
具体的,当某一相同主包号的数据包中的指定数量的包体数据全部存储完成后,将该相同主包号的数据包中的包体数据按照子包号的顺序发送到播放区,从而多媒体数据播放端按照各个数据包的子包号的顺序播放相同主包号的包体数据,即按照播放区接收到的包体数据的时间顺序依次播放包体数据。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
本发明实施例提供的多媒体数据传输方法,应用于多媒体数据播放端,通过接收多媒体数据采集端发送的数据包,根据数据包中的主包号和子包号存储数据包中的包体数据,在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。其中,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。
实施例四
图4为本发明实施例四提供的一种多媒体数据传输方法的流程图,本发明实施例以前述实施例三为基础进行优化,详细描述了本发明实施例中包体数据的存储过程,具体的,如图4所示,本发明实施例的方法可以包括如下步骤:
S401、接收多媒体数据采集端发送的数据包。
具体的,多媒体数据播放端通过无线传输媒介接收多媒体数据采集端发送的数据包。数据包的包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识。
示例性的,在本发明一具体实施例中,多媒体数据为音频数据,多媒体数据采集端为麦克风。麦克风在采集完一段3s播放时长的音频数据后,将该音频数据按照播放时间顺序依次切分为3个时长为1s的音频片段。每个时长为1s的音频片段按照时间先后顺序划分为16子音频片段,按照时间先后顺序为每一子音频片段设置包顺序标识,依次分别为第1至第16。
数据包包括包头和包体,包头包括主包号和子包号,包体为该数据包的有效数据,即子音频片段的数据。具体的,数据结构在前述实施例中已有详细记载,本发明实施例在此不再赘述。
S402、针对接收到的每个数据包,解析数据包获得包头中的主包号和子包号。
具体的,多媒体数据播放端对数据包进行解析,获取数据包中的包头和包体,包头包括主包号和子包号,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识。示例性的,以第1s音频片段的第1个数据包为例,经解析后,获得包头中的主包号为1,子包号为1,以及包体数据(即该数据包中的有效音频数据)。
S403、判断多个缓存区域中是否存储有主包号与接收到的数据包的主包号相同的包体数据。
具体的,多媒体播放端设置有存储器,用于存储接收到的多媒体数据。存储器设置有多个缓存区域,一个缓存区域可以存储一个主包号对应的所有数据包中的包体数据。在接收到一个数据包,并对该数据包进行解析获取到包头和包体数据后,判断存储器中是否存储有主包号与接收到的数据包的主包号相同的包体数据。示例性的,缓存区域设置有已存储包体数据的主包号,当缓存区域存储第一包体数据时,自动更新已存储包体数据的主包号为该包体数据所属的主包号。因此,可以通过将缓存区域的各主包号与接收到数据包的主包号进行比对,判断存储器中是否存储有主包号与接收到的数据包的主包号相同的包体数据。
在步骤S403中,若多个缓存区域中存储有主包号与接收到的数据包的主包号相同的包体数据,则执行步骤S404、将接收到的数据包的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中。
具体的,当确定存储器中已经存储有主包号与接收到的数据包的主包号相同的包体数据时,将接收到的数据包的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中。示例性的,如果当前接收到的数据包为第1s音频片段的第8个数据包,即主包号为1。此时,如果存储器中存在主包号为1的任一数据包,即存储器中存在主包号为1的缓存区域,则将接收到的数据包中的包体数据存储到主包号为1的缓存区域中。
具体的,步骤S404可以包括:
将数据包的包体数据存储到缓存区域中子包号对应的子区域中;
将缓存区域的已存储包体数据的数量累加1。
具体的,每个缓存区域包括指定数量的子区域,在本发明一具体实施例中,每个缓存区域包括16的子区域,且各子区域依次进行编号,分别为1-16号,1-16号子区域分别用于存储第1至第16子数据包中的包体数据。
缓存区域设置有已存储包体数据的数量,在将包体数据存储到缓存区域中子包号对应的子区域中后,将缓存区域的已存储包体数据的数量累加1。
在步骤S403中,若多个缓存区域中没有存储有主包号与接收到的数据包的主包号相同的包体数据,则执行步骤S405、获取多个缓存区域的状态信息。
具体的,缓存区域设置有状态信息,状态信息可以包括占用状态和空闲状态,分别用于表示该缓存区域已经存储有包体数据和该缓存区域还没有存储包体数据。通过获取各缓存区域的状态信息,可以知道各缓存区域处于占用状态或空闲状态。
S406、判断多个缓存区域中是否存在状态信息为空闲状态的缓存区域。
具体的,通过缓存区域的状态信息,判断多个缓存区域中是否存在状态信息为空闲状态的缓存区域。
若是,则执行步骤S407、将数据包的包体数据存储到空闲的缓存区域中。
具体的,如果存在状态信息为空闲状态的缓存区域,则将接收到的数据包的包体数据存储到空闲的缓存区域中,并更新该缓存区域的状态信息为占用状态,更新该缓存区域的主包号为该数据包的主包号,以及将缓存区域的已存储包体数据的数量累加1。在本发明实施例中,将缓存区域的状态信息、缓存区域的主包号和缓存区域的已存储包体数据的数量这三个属性称之为区域属性。
若否,则执行步骤S408、清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态。
具体的,如果不存在状态信息为空闲状态的缓存区域,即存储器中所有缓存区域均被占用,则根据各缓存区域的主包号,确定当前主包号最小的缓存区域,并清空该缓存区域,然后更新清空后的缓存区域的状态信息。在本发明实施例中,当修改缓存区域的状态信息,该缓存区域的主包号和缓存区域的已存储包体数据的数量被初始化。
示例性的,以存储器包括3个缓存区域为例,3个缓存区域分别存储有主包号为1的包体数据(即第1s的音频数据)、主包号为2(即第2s的音频数据)的包体数据和主包号为3的包体数据(即第3s的音频数据)。即3个缓存区域当前都处于占用状态,若此时接收到的数据包的主包号与当前各缓存区域的主包号均不相同,则清空存储主包号为1的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态。
S409、将数据包的包体数据存储到清空后的缓存区域中,并更新缓存区域存储的包体数据的主包号以及更新缓存区域的状态信息为占用状态。
具体的,在步骤S408之后,将数据包的包体数据存储到清空后的缓存区域中,并更新缓存区域存储的包体数据的主包号以及更新缓存区域的状态信息为占用状态。具体的,将数据包的包体数据存储到缓存区域中子包号对应的子区域中,然后更新该缓存区域的区域属性,即将该缓存区域的状态信息修改为占用状态、将该缓存区域的主包号更新为该数据包的主包号,以及将缓存区域的已存储包体数据的数量累加1。
本发明实施例中,在确定多个缓存区域的状态信息均为占用状态,且接收到的数据包的主包号与当前各缓存区域的主包号均不相同时,清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态,然后将据包的包体数据存储到清空后的缓存区域中,并更新缓存区域存储的包体数据的主包号以及更新缓存区域的状态信息为占用状态。当接收到的数据包的主包号与当前各缓存区域的主包号均不相同,且主包号最小的包体数据的缓存区域没有发送出去时,说明主包号最小的包体数据存在丢失或延迟过长,此时,清空存储主包号最小的包体数据的缓存区域(即主动丢弃主包号最小的包体数据的缓存区域的数据),并更新清空后的缓存区域的状态信息为空闲状态,为接收到的数据包腾出存储空间,避免后续的数据出现混乱。
S410、判断主包号为最小值的缓存区域的已存储包体数据的数量是否等于指定数值。
具体的,在上述步骤S404、步骤S407和步骤S409之后,判断主包号为最小值的缓存区域的已存储包体数据的数量是否等于指定数值。其中,主包号为最小值的缓存区域即为当前时刻存储器中存储的最早的一个数据片段的缓存区域。3个缓存区域分别存储有主包号为1的包体数据(即第1s的音频数据)、主包号为2(即第2s的音频数据)的包体数据和主包号为3的包体数据(即第3s的音频数据)。且在步骤S404、步骤S407和步骤S409之后,判断主包号为1的缓存区域的已存储包体数据的数量是否等于16。
若是,则执行步骤S411、按照主包号为最小值的缓存区域中子区域的顺序,将主包号为最小值的缓存区域中的包体数据发送至播放区。
具体的,若主包号为最小值的缓存区域的已存储包体数据的数量等于指定数值,则将该存储区域的包体数据该区域中子区域的顺序发送至播放区。示例性的,本发明实施例中,如上所述,缓存区域中各子区域具有1-16的编号,分别用于存储子包号为1-16的数据包的包体数据。按照子区域的顺序发送包体数据也即是按照子包号发送包体数据。播放区按照子包号依次接收并顺序播放包体数据。
若否,则执行步骤S412、统计主包号为最小值的缓存区域存储包体数据的总时长。
具体的,若主包号为最小值的缓存区域的已存储包体数据的数量不等于指定数值(即小于指定数量),则统计主包号为最小值的缓存区域存储包体数据的总时长。
S413、在总时长大于预设阈值时,清空主包号为最小值的缓存区域。
具体的,预设阈值为可以根据本发明实施例中缓存区域的数量确定,预设阈值(秒)等于缓存区域的数量减1。示例性的,在本发明一具体实施例中,缓存区域的数量为3个,则预设阈值为2s。即在本发明实施例中,若主包号为最小值的缓存区域延迟2s还没有发送出去,说明主包号最小的包体数据存在丢失或延迟过长,此时,清空存储主包号最小的包体数据的缓存区域(即主动丢弃主包号最小的包体数据的缓存区域的数据),并更新清空后的缓存区域的状态信息为空闲状态,为接收到的数据包腾出存储空间,避免后续的数据出现混乱。
S414、将包体数据发送完的缓存区域,以及清空后的缓存区域的状态信息、已存储包体数据的数量和已存储包体数据的主包号初始化。
具体的,在步骤S411和步骤S413之后,将包体数据发送完的缓存区域,以及清空后的缓存区域的状态信息、已存储包体数据的数量和已存储包体数据的主包号初始化。即将缓存区域的状态信息修改为空闲状态,将已存储包体数据的数量初始化为零,将已存储包体数据的主包号初始化为无,进而为后续接收到的数据包腾出存储空间。在本发明实施例中,当修改缓存区域的状态信息,该缓存区域的主包号和缓存区域的已存储包体数据的数量被初始化。
本发明实施例提供的多媒体数据传输方法,应用于多媒体数据播放端,通过接收多媒体数据采集端发送的数据包,根据数据包中的主包号和子包号存储数据包中的包体数据,在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。其中,主包号为数据包所属的数据片段的片段顺序标识,子包号为数据包在数据片段中的包顺序标识。如此,即使在数据包的传输过程中存在先发后到或后发先到的情况,也需要等待相同主包号的指定数量的包体数据全部存储完才会将该相同主包号的包体数据按照子包号的顺序发送到播放区,避免多媒体数据出现混乱,多媒体数据播放端不能解码出完整的多媒体数据的问题,提高了多媒体数据的传输质量。此外,当接收到的数据包的主包号与当前各缓存区域的主包号均不相同,且主包号最小的包体数据的缓存区域没有发送出去时,说明主包号最小的包体数据存在丢失或延迟过长,此时,清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态,为接收到的数据包腾出存储空间,避免后续的数据出现混乱。
实施例五
图5为本发明实施例五提供的一种多媒体数据传输装置的结构示意图,应用于多媒体数据采集端,如图5所示,该装置包括:
数据片段划分模块501,用于根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识;
数据打包模块502,用于将每个数据片段打包为指定数量的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
数据包发送模块503,用于将所述数据包发送至多媒体数据播放端,所多媒体数据播放端用于在接收到所述数据包后,根据所述数据包的包头所包含主包号和所述子包号对所述数据包进行解码,获得所述多媒体数据。
在本发明的一些实施例中,数据片段划分模块501包括:
数据片段划分子模块,用于按照预设播放时长和所述多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段;
片段顺序标识设置子模块,用于根据所述数据片段的结束播放时间的先后顺序为所述数据片段设置片段顺序标识。
在本发明的一些实施例中,数据打包模块502包括:
子数据片段划分子模块,用于将所述数据片段划分为指定数量的子数据片段;
包顺序标识确定子模块,用于确定所述子数据片段在所述数据片段中的顺序作为包顺序标识;
编码子模块,用于将所述数据片段的片段顺序标识、所述包顺序标识作为包头对所述子数据片段进行编码得到数据包,在所述包头中所述片段顺序标识为主包号,所述包顺序标识为子包号。
上述装置可执行本发明实施例一或实施例二所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的一种多媒体数据传输装置的结构示意图,应用于多媒体数据播放端,如图6所示,该装置包括:
数据包接收模块601,用于接收多媒体数据采集端发送的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
包体数据存储模块602,用于根据所述主包号和所述子包号存储所述数据包中的包体数据;
包体数据发送模块603,用于在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。
在本发明的一些实施例中,包体数据存储模块602包括:
解析子模块,用于针对接收到的每个数据包,解析所述数据包获得包头中的主包号和子包号;
第一判断子模块,用于判断多个缓存区域中是否存储有主包号与接收到的数据包的主包号相同的包体数据;
第一存储子模块,用于在确定多个缓存区域中存储有主包号与接收到的数据包的主包号相同的包体数据时,将接收到的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中;
第二存储子模块,用于在确定多个缓存区域中没有存储有主包号与接收到的数据包的主包号相同的包体数据时,将接收到的数据包的包体数据存储到空闲的缓存区域中。
在本发明的一些实施例中,第一存储子模块包括:
第一存储单元,用于将所述数据包的包体数据存储到所述缓存区域中所述子包号对应的子区域中;
累加单元,用于将所述缓存区域的已存储包体数据的数量累加1。
在本发明的一些实施例中,第二存储子模块包括:
状态信息获取单元,用于获取多个缓存区域的状态信息;
判断单元,用于判断多个缓存区域中是否存在状态信息为空闲状态的缓存区域;
第二存储单元,用于在确定多个缓存区域中存在状态信息为空闲状态的缓存区域时,将所述数据包的包体数据存储到空闲的缓存区域中;
清空单元,用于在确定多个缓存区域中不存在状态信息为空闲状态的缓存区域时,清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态;
第三存储单元,用于将所述数据包的包体数据存储到清空后的缓存区域中,并更新所述缓存区域存储的包体数据的主包号以及更新所述缓存区域的状态信息为占用状态。
在本发明的一些实施例中,所述缓存区域设置有已存储包体数据的数量和已存储包体数据的主包号,包体数据发送模块603包括:
第二判断子模块,用于判断主包号为最小值的缓存区域的已存储包体数据的数量是否等于指定数值;
发送子模块,用于在确定主包号为最小值的缓存区域的已存储包体数据的数量等于指定数值时,按照所述主包号为最小值的缓存区域中子区域的顺序,将所述主包号为最小值的缓存区域中的包体数据发送至播放区;
时长统计子模块,用于在确定主包号为最小值的缓存区域的已存储包体数据数量不等于指定数值时,统计所述主包号为最小值的缓存区域存储包体数据的总时长;
清空子模块,用于在所述总时长大于预设阈值时,清空所述主包号为最小值的缓存区域。
在本发明的一些实施例中,包体数据发送模块603还包括:
初始化子模块,用于将数据包发送完的缓存区域,以及清空后的缓存区域的状态信息、已存储包体数据的数量和已存储包体数据的主包号初始化。
上述装置可执行本发明实施例三或实施例四所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例七
本发明实施例七提供了一种计算机设备,图7为本发明实施例七提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:
处理器701、存储器702、通信模块703、输入装置704和输出装置705;计算机设备中处理器701的数量可以是一个或多个,图7中以一个处理器701为例;计算机设备中的处理器701、存储器702、通信模块703、输入装置704和输出装置705可以通过总线或其他方式连接,图7中以通过总线连接为例。上述处理器701、存储器702、通信模块703、输入装置704和输出装置705可以集成在计算机设备上。
存储器702作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如上述实施例中的多媒体数据传输方法对应的模块。处理器701通过运行存储在存储器702中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的多媒体数据传输方法。
存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据微型计算机的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器702可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块703,用于与外界设备(例如智能终端)建立连接,并实现与外界设备的数据交互。输入装置704可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的计算机设备,可执行本发明实施例一、二、三和四提供的多媒体数据传输方法,具有相应的功能和有益效果。
实施例八
本发明实施例八提供了一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明上述任意实施例提供的多媒体数据传输方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明实施例所提供的多媒体数据传输方法中的相关操作。
需要说明的是,对于装置、设备和存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的多媒体数据传输方法。
值得注意的是,上述装置中,所包括的各个模块和单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (13)
1.一种多媒体数据传输方法,其特征在于,应用于多媒体数据采集端,包括:
根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识;
将每个数据片段打包为指定数量的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
将所述数据包发送至多媒体数据播放端,所述多媒体数据播放端用于在接收到所述数据包后,根据所述数据包的包头所包含主包号和所述子包号对所述数据包进行解码,获得所述多媒体数据。
2.根据权利要求1所述的多媒体数据传输方法,其特征在于,所述根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,包括:
按照预设播放时长和所述多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段;
根据所述数据片段的结束播放时间的先后顺序为所述数据片段设置片段顺序标识。
3.根据权利要求1所述的多媒体数据传输方法,其特征在于,所述将每个数据片段打包为指定数量的数据包,包括:
将所述数据片段划分为指定数量的子数据片段;
确定所述子数据片段在所述数据片段中的顺序作为包顺序标识;
将所述数据片段的片段顺序标识、所述包顺序标识作为包头对所述子数据片段进行编码得到数据包,在所述包头中所述片段顺序标识为主包号,所述包顺序标识为子包号。
4.一种多媒体数据传输方法,其特征在于,应用于多媒体数据播放端,包括:
接收多媒体数据采集端发送的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
根据所述主包号和所述子包号存储所述数据包中的包体数据;
在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。
5.根据权利要求4所述的多媒体数据传输方法,其特征在于,所述根据所述主包号和所述子包号存储所述包体数据,包括:
针对接收到的每个数据包,解析所述数据包获得包头中的主包号和子包号;
判断多个缓存区域中是否存储有主包号与接收到的数据包的主包号相同的包体数据;
若是,则将接收到的数据包的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中;
若否,则将接收到的数据包的包体数据存储到空闲的缓存区域中。
6.根据权利要求5所述的多媒体数据传输方法,其特征在于,所述缓存区域包括指定数量的子区域,所述将接收到的数据包的包体数据存储到已存储的、主包号相同的包体数据所在的缓存区域中,包括:
将所述数据包的包体数据存储到所述缓存区域中所述子包号对应的子区域中;
将所述缓存区域的已存储包体数据的数量累加1。
7.根据权利要求5所述的多媒体数据传输方法,其特征在于,所述将接收到的数据包的包体数据存储到空闲的缓存区域中,包括:
获取多个缓存区域的状态信息;
判断多个缓存区域中是否存在状态信息为空闲状态的缓存区域;
若是,则将所述数据包的包体数据存储到空闲的缓存区域中;
若否,则清空存储主包号最小的包体数据的缓存区域,并更新清空后的缓存区域的状态信息为空闲状态;
将所述数据包的包体数据存储到清空后的缓存区域中,并更新所述缓存区域存储的包体数据的主包号以及更新所述缓存区域的状态信息为占用状态。
8.根据权利要求5-7任一所述的多媒体数据传输方法,其特征在于,所述缓存区域设置有已存储包体数据的数量和已存储包体数据的主包号,所述在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,包括:
判断主包号为最小值的缓存区域的已存储包体数据的数量是否等于指定数值;
若是,则按照所述主包号为最小值的缓存区域中子区域的顺序,将所述主包号为最小值的缓存区域中的包体数据发送至播放区;
若否,则统计所述主包号为最小值的缓存区域存储包体数据的总时长;
在所述总时长大于预设阈值时,清空所述主包号为最小值的缓存区域。
9.根据权利要求8所述的多媒体数据传输方法,其特征在于,所述在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,还包括:
将包体数据发送完的缓存区域,以及清空后的缓存区域的状态信息、已存储包体数据的数量和已存储包体数据的主包号初始化。
10.一种多媒体数据传输装置,其特征在于,应用于多媒体数据采集端,包括:
数据片段划分模块,用于根据采集到的多媒体数据的播放时间顺序将所述多媒体数据划分为多个数据片段,每个数据片段设置有片段顺序标识;
数据打包模块,用于将每个数据片段打包为指定数量的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
数据包发送模块,用于将所述数据包发送至多媒体数据播放端,所述多媒体数据播放端用于在接收到所述数据包后,根据所述数据包的包头所包含主包号和所述子包号对所述数据包进行解码,获得所述多媒体数据。
11.一种多媒体数据传输装置,其特征在于,应用于多媒体数据播放端,包括:
数据包接收模块,用于接收多媒体数据采集端发送的数据包,所述数据包的包头包括主包号和子包号,所述主包号为所述数据包所属的数据片段的片段顺序标识,所述子包号为所述数据包在所述数据片段中的包顺序标识;
包体数据存储模块,用于根据所述主包号和所述子包号存储所述数据包中的包体数据;
包体数据发送模块,用于在存储完相同主包号的指定数量的包体数据时,将相同主包号的包体数据按照子包号的顺序发送到播放区,以按照各个数据包的子包号的顺序播放相同主包号的包体数据。
12.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3任一所述的多媒体数据传输方法,或实现如权利要求4-9任一所述的多媒体数据传输方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3任一所述的多媒体数据传输方法,或实现如权利要求4-9任一所述的多媒体数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010833893.3A CN111988674A (zh) | 2020-08-18 | 2020-08-18 | 一种多媒体数据传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010833893.3A CN111988674A (zh) | 2020-08-18 | 2020-08-18 | 一种多媒体数据传输方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111988674A true CN111988674A (zh) | 2020-11-24 |
Family
ID=73435603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010833893.3A Pending CN111988674A (zh) | 2020-08-18 | 2020-08-18 | 一种多媒体数据传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111988674A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138196A (zh) * | 2021-11-26 | 2022-03-04 | 南方电网大数据服务有限公司 | 电力***数据存储方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926205A (en) * | 1994-10-19 | 1999-07-20 | Imedia Corporation | Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program |
CN103546662A (zh) * | 2013-09-23 | 2014-01-29 | 浙江工业大学 | 一种网络监控***中音视频同步方法 |
JP2016140089A (ja) * | 2013-04-19 | 2016-08-04 | サムスン エレクトロニクス カンパニー リミテッド | マルチメディア伝送システムにおけるメディアデータを受信する方法 |
CN109889543A (zh) * | 2019-03-26 | 2019-06-14 | 广州华多网络科技有限公司 | 视频传输的方法、根节点、子节点、p2p服务器和*** |
US20190200029A1 (en) * | 2016-09-08 | 2019-06-27 | Koninklijke Kpn N.V. | Partial Video Decoding Method, Device and System |
US20190206443A1 (en) * | 2005-08-10 | 2019-07-04 | Mitsubishi Electric Corporation | Recording medium, reproducing apparatus, and reproducing method |
CN111263221A (zh) * | 2018-11-30 | 2020-06-09 | 南京超聚通信科技有限公司 | 视频信息轮播方法及装置、视频信息接收方法及装置 |
-
2020
- 2020-08-18 CN CN202010833893.3A patent/CN111988674A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926205A (en) * | 1994-10-19 | 1999-07-20 | Imedia Corporation | Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program |
US20190206443A1 (en) * | 2005-08-10 | 2019-07-04 | Mitsubishi Electric Corporation | Recording medium, reproducing apparatus, and reproducing method |
JP2016140089A (ja) * | 2013-04-19 | 2016-08-04 | サムスン エレクトロニクス カンパニー リミテッド | マルチメディア伝送システムにおけるメディアデータを受信する方法 |
CN103546662A (zh) * | 2013-09-23 | 2014-01-29 | 浙江工业大学 | 一种网络监控***中音视频同步方法 |
US20190200029A1 (en) * | 2016-09-08 | 2019-06-27 | Koninklijke Kpn N.V. | Partial Video Decoding Method, Device and System |
CN111263221A (zh) * | 2018-11-30 | 2020-06-09 | 南京超聚通信科技有限公司 | 视频信息轮播方法及装置、视频信息接收方法及装置 |
CN109889543A (zh) * | 2019-03-26 | 2019-06-14 | 广州华多网络科技有限公司 | 视频传输的方法、根节点、子节点、p2p服务器和*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138196A (zh) * | 2021-11-26 | 2022-03-04 | 南方电网大数据服务有限公司 | 电力***数据存储方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002538725A (ja) | 初期のランダムなパケット廃棄方法および装置 | |
CN111385221B (zh) | 一种数据处理方法和通信设备 | |
CN102427446A (zh) | 分组合并 | |
CN101485152A (zh) | 用于高性能捆绑重排序的方法、***及计算机程序产品 | |
EP3232630A1 (en) | Method and device for data packet extraction | |
CN1662896B (zh) | 用于过滤数据的方法和装置 | |
CN110087140B (zh) | 一种传输流媒体数据的方法、装置、介质及设备 | |
WO2022022229A1 (zh) | 一种处理报文的方法及装置 | |
CN114584560B (zh) | 一种分片帧重组方法及装置 | |
KR20220006606A (ko) | 메시지 처리 방법 및 관련 장치 | |
CN110958331A (zh) | 一种数据传输方法及终端 | |
CN112787902B (zh) | 报文封装方法及装置、报文解封装方法及装置 | |
CN111988674A (zh) | 一种多媒体数据传输方法、装置、设备及存储介质 | |
JP2002538721A (ja) | 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置 | |
CN111404872A (zh) | 一种报文处理方法、装置及*** | |
CN111193966A (zh) | 音频数据传输方法、装置、计算机设备及存储介质 | |
CN113316028A (zh) | 投屏方法、投屏设备及存储介质 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
US11057312B2 (en) | Apparatus and method for configuring MMT payload header | |
US7372864B1 (en) | Reassembly of data fragments in fixed size buffers | |
EP3480696A1 (en) | Adaptive event aggregation | |
CN103856445B (zh) | 基于udp的语音数据业务的数据传输方法、装置和*** | |
CN116017564A (zh) | 一种卫星反向链路高效传输方法、***、设备及存储介质 | |
CN114531332A (zh) | 数据传输方法、数据处理方法、设备及存储介质 | |
KR20160123562A (ko) | 데이터 패킷 처리를 위한 수신기 장치 및 수신기 장치에서의 데이터 패킷 처리 방법 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 510000 Block C, 115 Gaopu Road, Tianhe District, Guangzhou City, Guangdong Province Applicant after: Guangzhou Jifei Technology Co.,Ltd. Address before: 510000 Block C, 115 Gaopu Road, Tianhe District, Guangzhou City, Guangdong Province Applicant before: Guangzhou Xaircraft Technology Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201124 |