CN108881958B - 一种多媒体数据流封装方法和装置 - Google Patents
一种多媒体数据流封装方法和装置 Download PDFInfo
- Publication number
- CN108881958B CN108881958B CN201711239807.0A CN201711239807A CN108881958B CN 108881958 B CN108881958 B CN 108881958B CN 201711239807 A CN201711239807 A CN 201711239807A CN 108881958 B CN108881958 B CN 108881958B
- Authority
- CN
- China
- Prior art keywords
- data packet
- time stamp
- video
- multimedia
- frame rate
- 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.)
- Active
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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2368—Multiplexing of audio and video streams
-
- 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/2389—Multiplex stream processing, e.g. multiplex stream encrypting
-
- 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/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- 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
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种多媒体数据流封装的方法所述方法应用于视联网,所述视联网包括视联网多媒体终端,所述的方法包括:接收来自视联网多媒体终端的多媒体数据流;根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS;根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件。实现了将多个视联网多媒体数据封装为一个完整多媒体文件的目的。
Description
技术领域
本发明涉及视联网技术领域,特别是涉及一种多媒体数据流封装方法和一种多媒体数据流封装装置。
背景技术
随着网络科技的快速发展,视频会议、视频教学等双向通信在用户的生活、工作、学习等方面广泛普及,并且在生活工作应用中发挥了积极的作用,进一步的,在用户通过视联网视频或者音频互动时,多个多媒体设备产生多个多媒体数据流,此时无法使用一台多媒体设备生成一个多媒体文件,例如,通过音频设备以及视频设备分别获取音频数据和视频数据,在传输后播出可能出现不同步的现象,导致用户使用体验差的问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种多媒体数据流封装方法和相应的一种多媒体数据流封装装置。
为了解决上述问题,本发明实施例公开了一种多媒体数据流封装的方法,所述方法应用于视联网,所述方法应用于视联网,所述视联网包括视联网多媒体终端,所述的方法包括:
接收来自视联网多媒体终端的多媒体数据流;
根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;
采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS;
根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件。
本发明实施例还公开了一种多媒体数据流封装装置,所述装置应用于视联网,所述视联网包括视联网多媒体终端,所述的装置包括:
多媒体数据流接收模块,用于接收来自视联网多媒体终端的多媒体数据流;
打包模块,用于根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;
时间戳获取模块,用于采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS;
封装模块,用于根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件。
本发明实施例包括以下优点:
本发明实施例应用视联网的特性,在视联网系统通信过程中接收来自视联网多媒体终端的多媒体数据流后,根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包,其中,视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式,再采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS,并根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件。实现了在视联网用户通信过程中,将音视频数据封装为一个完整的符合视联网传输协议多媒体文件的过程,解决了由于音视频数据通过不同设备获取以及传输,导致的音视频文件不能同步传输,降低用户使用体验的问题。
附图说明
图1是本发明的一种视联网的组网示意图;
图2是本发明的一种节点服务器的硬件结构示意图;
图3是本发明的一种接入交换机的硬件结构示意图;
图4是本发明的一种以太网协转网关的硬件结构示意图;
图5是本发明的一种多媒体数据流封装方法实施例的步骤流程图;
图6是本发明的一种多媒体数据流封装的操作示例图;
图7是本发明的一种多媒体数据流封装装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
音视频封装:将单独的音频流或文件和单独的视频流或文件合成一个音视频文件。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块208是由CPU模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
基于视联网的上述特性,提出了本发明实施例的核心构思之一,遵循视联网的协议,当接收到视联网多媒体终端的多媒体数据流,根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS;根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件,实现利用视联网协议的目的。
参照图5,示出了本发明的一种多媒体数据流封装方法实施例的步骤流程图,该方法可以应用于视联网,所述视联网包括视联网多媒体终端,具体可以包括如下步骤:
步骤501,接收来自视联网多媒体终端的多媒体数据流。
本发明实施例中,根据上述描述的视联网的主要设备之一的终端,不仅可以包括各种机顶盒,编码板,存储器等,还可以包括遵循视联网传输协议的多媒体终端,例如,视频录入设备和音频录入设备,在接入视联网时,进行音频数据和视频数据的采集。所以,由视联网中负责处理多媒体数据的服务器接收到上述设备采集的多媒体数据,并进行进一步的处理。
步骤502,根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式。
本发明实施例中,当接收到的多媒体数据,按照视联网实时传输协议进行打包成若干个含有视频帧信息或者音频帧信息的视频包或者音频包,每个视频包或音频包的视频帧信息或者音频帧信息包括文件偏移信息、文件大小信息、解码时间戳(DTS,DecodingTime Stamp,)和显示时间戳(PTS,Presentation Time Stamp)信息。
进一步地,为每个多媒体数据包添加标识媒体文件类型和长度的信息,以形成每个视频包或音频包的头部,按照视联网传输协议,接入网的数据还包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
在经过上述处理的多媒体数据包在传输时,以便被视联网节点服务器识别并接收。
步骤503,采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS。
本发明实施例中,由于经过视联网多媒体设备采集的多媒体数据,通常都是符合视联网传输协议而生成的多媒体数据,所以当接收视联网数据帧中的解码时间戳DTS和显示时间戳PTS,解码时间戳DTS和显示时间戳PTS通常都包含在每一个视频帧信息或音频帧信息中。
步骤504,根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件。
本发明实施例中,在获取多媒体数据的解码时间戳DTS和显示时间戳PTS后,根据DTS和PTS可以获得视频包或者音频包的解码时间顺序,根据该顺序,将接收到的音频包和视频包进行交错排列,进而形成符合视联网传输格式的多媒体文件。封装的具体内容如下:
优选地,步骤504具体包括,子步骤C11-C12;
子步骤C11,根据解码时间戳DTS和显示时间戳PTS,将所述数据包进行交错排列。
本发明实施例中,交错排列有两种方式,一种是根据每个视频包的头部信息和每个音频包的头部信息,以每个视频包的视频帧和每个音频包的音频帧为粒度,以解码时间戳递增的顺序进行交错排列;另一种是根据每个视频包的头部信息和每个音频包的头部信息,以每个视频包和每个音频包为粒度,以解码时间戳递增的顺序进行交错排列。
子步骤C12,将所述交错排列后的数据包与数据包元信息文件结合,封装为视联网传输格式的多媒体文件;所述数据包元信息文件为依据所述视联网协议建立的所述数据包的编码信息文件。
本发明实施例中,将交错排列后的视频包和音频包结合元信息文件,生成符合视联网传输格式的多媒体文件。其中,元信息文件用于保存多媒体数据中与音视频编码(音频编码和视频编码)相关的关键信息,元信息文件中主要包括H.264(视频解码器标准)的SPS(Sequence Parameter Set,序列参数集)信息和PPS(Picture Parameter Set,图像参数集)信息。元文件信息是在多媒体文件生成视频帧或者音频帧的时候生成地。
当然,本发明实施例中的元信息文件中包括H.264(视频解码器标准)的SPS(Sequence Parameter Set,序列参数集)信息和PPS(Picture Parameter Set,图像参数集)信息符合视联网传输协议。
具体地,如图6所示的流程图,描述了在音频流或视频流数据后,通过打包处理,再经过封装,最后通过预设的算法形成音视频多媒体文件的过程,也是步骤501-步骤505的概括描述。
优选地,还包括:
步骤A505,若提取所述数据包中解码时间戳DTS和显示时间戳PTS失败,则通过帧率稳定算法获取所述数据包中解码时间戳DTS和显示时间戳PTS。
本发明实施例中,当从视频帧信息或音频帧信息中获取解码时间戳DTS和显示时间戳PTS失败,那么就利用帧率稳定算法获取多媒体数据包的解码时间戳DTS和显示时间戳PTS。具体如下:
优选地,步骤A505具体包括,子步骤A11-A14;
子步骤A11,每隔预设时间获取所述数据包的传输总量。
本发明实施例中,在音频数据包或视频数据包的传输过程中,每隔预设时间段,例如一秒,统计传输数据包的总量,在经过若干次统计后,可以计算出多媒体数据包的传输率。其中预设时间可以根据系统参数和需求,由相关技术人员进行具体设定,本发明实施例对此不加以限制。
子步骤A12,根据所述传输量与所述预设时间的比值,获取所述数据包的帧率。
本发明实施例中,根据上述步骤的描述,在得到多媒体数据包在单位时间内的传输总量后,用总量除以时间,求出单位时间的包数量即帧率。类似地,音频包的帧率可以同样方法计算得到。
子步骤A13,若所述帧率稳定,根据所述数据包述帧率关系的索引,获取所述数据包的解码时间戳DTS和显示时间戳PTS。
本发明实施例中,当得到多媒体数据包的帧率后,对于稳定帧率的视频包,根据1000/帧率*包的索引,计算每个包的解码时间戳DTS和显示时间戳PTS,再进行下一步骤。
子步骤A14,若所述帧率不稳定,则通过系统时间的偏移量来获取所述数据包的解码时间戳DTS和显示时间戳PTS。
本发明实施例中,对于不稳定帧率的视频包,有两种解决方案,第一种方案是通过系统时间的偏移量来计算视频包的PTS。具体地,通过系统时间偏移量可以得到时间戳在一个时间基到另一个时间基之间的差量,而经过多次通过系统时间的偏移量计算该差量后和多媒体数据包的采样频率,可以获得多媒体数据包的解码时间戳DTS和显示时间戳PTS。
例如,当程序启动后,接收到第一个视频包的时候记录一下当前的系统时间A(微秒级别),此时第一个视频包的PTS为0,当下一个视频包到来时,获取当前的系统时间B,此时第二个视频包的PTS为B-A,当第三个视频包到来时,同样获取当前的系统时间C,则三个视频包的PTS为C-A,以此类推。
优选地,还包括,子步骤A13之后,还包括:子步骤B14。
子步骤B15,若所述帧率不稳定,则对所述数据包进行插帧或去帧处理,以使所述数据包帧率稳定,并进入根据所述数据包述帧率关系的索引,获取所述数据包的解码时间戳DTS和显示时间戳PTS的步骤。
本发明实施例中,第二种方案是通过对多媒体数据包中帧率不稳定的地方,进行插帧或去帧的方式,使得多媒体数据包帧率变成稳定帧率,进而再通过子步骤A13的方法,计算多媒体数据包的解码时间戳DTS和显示时间戳PTS。
例如,首先需要预设一个队列,假如说当前的帧率不稳定,徘徊在30帧,而目前需要的帧率为30帧,则需要等待5秒,等视频包加入队列后,获取当前的队列数量,若当前数量为150,则不做处理,直接按照平均的方法计算PTS,若当前的帧数小于150时,则采取添加非关键帧的方法,使其数量等于150;若帧数大于150帧,将采取丢弃非关键帧的方法,使其数量等于150,以此使单位时间内传输的帧数稳定,从而使帧率稳定。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明的一种多媒体数据流封装装置实施例的结构框图,该装置可以应用于视联网中,所述视联网包括视联网多媒体终端,所述装置具体可以包括如下模块:
多媒体数据流接收模块601,用于接收来自视联网多媒体终端的多媒体数据流;
打包模块602,用于根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;
时间戳获取模块603,用于采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS;
封装模块604,用于根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件。
优选地,所述封装模块604,具体包括:
数据包排列子模块,用于根据解码时间戳DTS和显示时间戳PTS,将所述数据包进行交错排列;
封装子模块,用于将所述交错排列后的数据包与数据包元信息文件结合,封装为视联网传输格式的多媒体文件;所述数据包元信息文件为依据所述视联网协议建立的所述数据包的编码信息文件。
帧率稳定算法获取时间戳模块605,用于若提取所述数据包中解码时间戳DTS和显示时间戳PTS失败,则通过帧率稳定算法获取所述数据包中解码时间戳DTS和显示时间戳PTS。
优选地,所述帧率稳定算法获取时间戳模块605,具体包括:
传输总量获取子模块6051,用于每隔预设时间获取所述数据包的传输总量;
帧率获取子模块6052,用于根据所述传输量与所述预设时间的比值,获取所述数据包的帧率;
帧率稳定时间戳获取子模块6053,用于若所述帧率稳定,根据所述数据包述帧率关系的索引,获取所述数据包的解码时间戳DTS和显示时间戳PTS;
帧率不稳定时间戳获取子模块6054,用于若所述帧率不稳定,则通过系统时间的偏移量来获取所述数据包的解码时间戳DTS和显示时间戳PTS。
优选地,所述帧率稳定算法获取时间戳模块605,还包括:
稳定帧率子模块6055,用于若所述帧率不稳定,则对所述数据包进行插帧或去帧处理,以使所述数据包帧率稳定,并调用帧率稳定时间戳获取子模块。
在本发明实施例中,在视联网的环境下,接收来自视联网多媒体设备的获取的一路音频数据和一路视频数据,然后将接收到的数据识别成连续的音频包和视频包,之后经过一定的算法处理识别出来的每一个音视频数据包,计算出其PTS和DTS,以保证封装后的音视频文件的音视频同步,最后将音频和视频封装为符合视联网传输协议的多媒体文件。实现了在视联网用户通信过程中,将音视频数据封装为一个完整的符合视联网传输协议多媒体文件的过程,解决了由于音视频数据通过不同设备获取以及传输,导致的音视频文件不能同步传输,降低用户使用体验的问题。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种多媒体数据流封装方法和一种多媒体数据流封装装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种多媒体数据流封装的方法,其特征在于,所述方法应用于视联网,所述视联网包括视联网多媒体终端,所述的方法包括:
接收来自视联网多媒体终端的多媒体数据流;根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;
采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS,若提取所述数据包中解码时间戳DTS和显示时间戳PTS失败,则通过帧率稳定算法获取所述数据包中解码时间戳DTS和显示时间戳PTS;根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件;
其中,通过帧率稳定算法获取所述数据包中解码时间戳DTS和显示时间戳PTS,包括:
每隔预设时间获取所述数据包的传输总量;
根据所述传输总量与所述预设时间的比值,获取所述数据包的帧率;
若所述帧率稳定,根据所述数据包帧率关系的索引,获取所述数据包的解码时间戳DTS和显示时间戳PTS;
若所述帧率不稳定,则通过系统时间的偏移量来获取所述数据包的解码时间戳DTS和显示时间戳PTS。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述帧率不稳定,则对所述数据包进行插帧或去帧处理,以使所述数据包帧率稳定,并进入根据所述数据包述帧率关系的索引,获取所述数据包的解码时间戳DTS和显示时间戳PTS的步骤。
3.根据权利要求1所述的方法,其特征在于,所述根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件的步骤,包括:
根据解码时间戳DTS和显示时间戳PTS,将所述数据包进行交错排列;
将所述交错排列后的数据包与数据包元信息文件结合,封装为视联网传输格式的多媒体文件;所述数据包元信息文件为依据所述视联网协议建立的所述数据包的编码信息文件。
4.一种多媒体数据流封装装置,其特征在于,所述装置应用于视联网,所述视联网包括视联网多媒体终端,所述的装置包括:
多媒体数据流接收模块,用于接收来自视联网多媒体终端的多媒体数据流;
打包模块,用于根据视联网协议将所述多媒体数据流打包成包含多个多媒体数据帧的数据包;所述视联网协议包括视联网多媒体数据解码格式和视联网多媒体数据文件传输格式;
时间戳获取模块,用于采用所述视联网多媒体数据解码格式,提取所述数据包中的解码时间戳DTS和显示时间戳PTS;
帧率稳定算法获取时间戳模块,用于若提取所述数据包中解码时间戳DTS和显示时间戳PTS失败,则通过帧率稳定算法获取所述数据包中解码时间戳DTS和显示时间戳PTS;
封装模块,用于根据所述解码时间戳DTS和所述显示时间戳PTS将所述数据包封装为视联网传输格式的多媒体文件;
其中,帧率稳定算法获取时间戳模块包括:
传输总量获取子模块,用于每隔预设时间获取所述数据包的传输总量;
帧率获取子模块,用于根据所述传输总量与所述预设时间的比值,获取所述数据包的帧率;
帧率稳定时间戳获取子模块,用于若所述帧率稳定,根据所述数据包述帧率关系的索引,获取所述数据包的解码时间戳DTS和显示时间戳PTS;
帧率不稳定时间戳获取子模块,用于若所述帧率不稳定,则通过系统时间的偏移量来获取所述数据包的解码时间戳DTS和显示时间戳PTS。
5.根据权利要求4所述的装置,其特征在于,还包括:
稳定帧率子模块,用于若所述帧率不稳定,则对所述数据包进行插帧或去帧处理,以使所述数据包帧率稳定,并调用帧率稳定时间戳获取子模块。
6.根据权利要求4所述的装置,其特征在于,所述封装模块,包括:
数据包排列子模块,用于根据解码时间戳DTS和显示时间戳PTS,将所述数据包进行交错排列;
封装子模块,用于将所述交错排列后的数据包与数据包元信息文件结合,封装为视联网传输格式的多媒体文件;所述数据包元信息文件为依据所述视联网协议建立的所述数据包的编码信息文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239807.0A CN108881958B (zh) | 2017-11-30 | 2017-11-30 | 一种多媒体数据流封装方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239807.0A CN108881958B (zh) | 2017-11-30 | 2017-11-30 | 一种多媒体数据流封装方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108881958A CN108881958A (zh) | 2018-11-23 |
CN108881958B true CN108881958B (zh) | 2020-02-21 |
Family
ID=64325562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711239807.0A Active CN108881958B (zh) | 2017-11-30 | 2017-11-30 | 一种多媒体数据流封装方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108881958B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401707A (zh) * | 2019-07-22 | 2019-11-01 | 北京奇艺世纪科技有限公司 | 流数据处理方法、装置、电子设备及存储介质 |
CN111669364B (zh) * | 2020-04-26 | 2023-09-12 | 视联动力信息技术股份有限公司 | 一种数据传输的方法、装置、电子设备及介质 |
CN114390346B (zh) * | 2020-10-20 | 2024-04-12 | 京东方科技集团股份有限公司 | Rtsp转rtmp协议的媒体资源处理方法及装置 |
CN113824965A (zh) * | 2021-09-22 | 2021-12-21 | 北京百度网讯科技有限公司 | 一种视频编码方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8705395B2 (en) * | 2010-06-15 | 2014-04-22 | Jds Uniphase Corporation | Method for time aware inline remote mirroring |
CN102665103A (zh) * | 2012-04-13 | 2012-09-12 | 烽火通信科技股份有限公司 | 一种适用于流媒体服务的音频视频封装方法 |
CN102917276B (zh) * | 2012-11-12 | 2016-02-24 | 武汉市烽视威科技有限公司 | 一种应用于流媒体服务的音视频交错封装方法 |
CN106210764A (zh) * | 2015-04-29 | 2016-12-07 | 北京视联动力国际信息技术有限公司 | 一种多路多媒体流的合屏处理方法和系统 |
-
2017
- 2017-11-30 CN CN201711239807.0A patent/CN108881958B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108881958A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881927B (zh) | 一种视频数据合成方法和装置 | |
CN108737768B (zh) | 一种基于监控系统的监控方法和监控装置 | |
CN109194982B (zh) | 一种传输大文件流的方法和装置 | |
CN108877820B (zh) | 一种音频数据混合方法和装置 | |
CN108881815B (zh) | 一种视频数据的传输方法和装置 | |
CN110166433B (zh) | 一种视频数据获取的方法和系统 | |
CN108881958B (zh) | 一种多媒体数据流封装方法和装置 | |
CN109547163B (zh) | 一种数据传输速率的控制方法和装置 | |
CN111147859A (zh) | 一种视频处理方法和装置 | |
CN108965930B (zh) | 一种视频数据处理的方法和装置 | |
CN110602542B (zh) | 音视频同步的方法、音视频同步系统、设备及存储介质 | |
CN110138729B (zh) | 一种数据获取方法和视联网系统 | |
CN109743284B (zh) | 一种基于视联网的视频处理方法及系统 | |
CN110650147A (zh) | 数据获取方法和系统 | |
CN110769179B (zh) | 一种音视频数据流的处理方法和系统 | |
CN110769297A (zh) | 一种音视频数据的处理方法和系统 | |
CN110086773B (zh) | 一种音视频数据的处理方法和系统 | |
CN110830762B (zh) | 一种音视频数据的处理方法和系统 | |
CN111447396A (zh) | 一种音视频传输方法、装置、电子设备及存储介质 | |
CN111212255A (zh) | 监控资源获取方法、装置及计算机可读存储介质 | |
CN110677315A (zh) | 一种状态监控的方法和系统 | |
CN109714641B (zh) | 一种基于视联网的数据处理方法和装置 | |
CN110572367B (zh) | 修改终端名称的方法、系统、服务器、设备及存储介质 | |
CN110769192B (zh) | 监控录制方法和装置 | |
CN110708598B (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 | ||
CB02 | Change of applicant information |
Address after: 100000 Dongcheng District, Beijing, Qinglong Hutong 1, 1103 house of Ge Hua building. Applicant after: Video Link Power Information Technology Co., Ltd. Address before: 100000 Beijing Dongcheng District Qinglong Hutong 1 Song Hua Building A1103-1113 Applicant before: BEIJING VISIONVERA INTERNATIONAL INFORMATION TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |