一种视音频数据的封装方法及封装装置制造方法
【专利摘要】本发明提供一种视音频数据的封装方法,视音频数据以某种格式存储于存储服务器的存储介质内;客户端进行文件下载时,首先根据要下载的音视频数据的信息和所采用的封装格式信息获取即将要下载的完整视音频数据文件的大小并告知客户端;然后将封装格式的可变头部根据已知的视音频信息预先填好并发送给客户端;在内存中分配一块内存用于保存视频帧和音频帧的帧索引信息;将视频帧和音频帧取出一帧一帧的发送给客户端,同时更新内存中的帧索引信息;等所有视频帧和音频帧数据发送完后,将内存中的帧索引信息发送到客户端,从而完成整个文件下载及封装。本发明还提供了一种视音频数据的封装装置,本发明有利于视频服务器自身数据的管理,也使视频数据的传播更加方便。
【专利说明】一种视音频数据的封装方法及封装装置
【技术领域】
[0001]本发明涉及视频监控产品【技术领域】,尤其涉及一种视音频数据的封装方法及封装
装直。
【背景技术】
[0002]目前很多监控产品的视频存储服务器在存储视频或音频数据的时候都会按自己特定的格式存储,以便于管理。用户一般也只能通过厂家提供的管理工具下载存储于视频服务器上的历史视频数据。下载下来的视频数据也只能用厂家提供的播放器才能播放,或经过厂家提供的转换工具转换后才能用标准的播放器播放,这在一定程度上带来了不便。本专利申请文件目的就是为了省去格式转换过程,使用户通过客户端下载下来的视频文件格式就能用通用播放器播放标准封装格式的文件,如MP4、AVI等。
[0003]现有的视音频封装格式,在写文件时会同时写入视音频数据和它们的索引信息,而且它们的写入并不是顺序的。这种做法的缺点是无法预先知道封装后整个文件的大小,而且数据更新不是顺序的,不适用于下载过程的动态封装。
【发明内容】
[0004]本发明要解决的技术问题之一,在于提供一种视音频数据的封装方法,可以让视频服务器以自己的格式存储音视频,在数据备份或下载时才动态封装成标准的媒体格式,如MP4、AVI等;省去格式转换过程,使用户通过客户端下载下来的视频文件格式就能直接用通用播放器播放通用标准格式的文件。
[0005]本发明问题之一是这样实现的:一种视音频数据的封装方法,
[0006]预先确定要下载的完整视音频数据文件的大小,并通过下载协议告知客户端;
[0007]将封装格式的可变头部根据存储介质中要下载的视频数据信息和音频数据信息预先填好并发送给客户端;
[0008]分配一块内存用于保存要下载的视频帧和音频帧的帧索引信息;
[0009]从存储介质中逐一取出一帧视频帧或音频帧并发送给客户端,同时更新内存中的帧索引信息;
[0010]直至所有帧发送完毕后,再将内存中的帧索引信息发送到客户端,从而完成整个视音频数据文件下载及封装。
[0011]进一步地,根据存储介质中要下载的视频数据信息和音频数据信息以及所采用的封装格式信息计算以确定要下载的完整视音频数据文件的大小。
[0012]进一步地,所述视频数据信息包括:视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息;音频数据的信息包括:音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率;根据要下载的视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值pps信息、音频帧数、音频编码格式信息、音频比特率以及音频采样率,来确定视频和音频的帧索引信息的大小;再根据视频数据大小和音频数据大小以及所采用的封装格式信息大小,来确定整个要下载视音频数据文件的大小。
[0013]本发明要解决的技术问题之二,在于提供一种视音频数据的封装装置,可以让视频服务器以自己的格式存储音视频,在数据备份或下载时才动态封装成标准的媒体格式,如MP4、AVI等;省去格式转换过程,使用户通过客户端下载下来的视频文件格式就能直接用通用播放器播放通用标准格式的文件。
[0014]本发明问题之二是这样实现的:一种视音频数据的封装装置,所述封装装置包括:预处理模块、封装格式头部处理模块、分配模块、读取更新模块以及执行模块;
[0015]所述预处理模块:预先确定要下载的完整视音频数据文件的大小,并通过下载协议告知客户端;
[0016]所述封装格式头部处理模块:将封装格式的可变头部根据存储介质中要下载的视频数据信息和音频数据信息预先填好并发送给客户端;
[0017]所述分配模块:分配一块内存用于保存要下载的视频帧和音频帧的帧索引信息;
[0018]所述读取更新模块:从存储介质中逐一取出一帧视频帧或音频帧并发送给客户端;同时更新内存中的帧索引信息;
[0019]所述执行模块:在所有帧发送完毕后,再将内存中的帧索引信息发送到客户端,从而完成整个视音频数据文件下载及封装。
[0020]进一步地,所述预处理模块包括计算模块,用于根据存储介质中要下载的视频数据和音频数据的信息以及所采用的封装格式信息计算获得要下载的完整视音频数据文件的大小。
[0021]进一步地,所述视频数据信息包括:视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息;音频数据的信息包括:音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率;计算模块包括帧索引信息大小计算模块和累计模块;
[0022]所述帧索引信息大小计算模块:用于根据要下载的视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息、音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率,来确定视频和音频的帧索引信息的大小;
[0023]所述累计模块:用于对帧索引信息大小、视频数据大小、音频数据大小以及所采用的封装格式信息大小进行累加计算,以确定整个下载视音频数据文件的大小。
[0024]本发明具有如下优点:本发明预先确定封装文件的大小,并保证数据写入方式是顺序的,不需要来回跳跃切换。这样可以让视频服务器以自己的格式存储音视频,在数据备份或下载时才动态封装成标准的格式;从而有利于视频服务器自身数据的管理,也使视频数据的传播更加方便;省去客户端将下载的视音频数据格式转换的过程,使用户通过客户端下载下来的视频文件格式就能直接用通用播放器进行播放。
【专利附图】
【附图说明】
[0025]图1为本发明方法的流程示意图。
[0026]图2为用本发明方法封装MP4的流程示意图。
[0027]图3为本发明封装装置的结构框图。【具体实施方式】
[0028]请参阅图1所示,本发明为一种视音频数据的封装方法,
[0029]根据存储介质中要下载的视频数据信息和音频数据信息以及所采用的封装格式信息计算以确定要下载的完整视音频数据文件的大小;具体的:根据要下载的视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值pps信息、音频帧数、音频编码格式信息、音频比特率以及音频采样率,来确定视频和音频的帧索引信息的大小;再根据视频数据大小和音频数据大小以及所采用的封装格式信息大小,来确定整个要下载视音频数据文件的大小;确定要下载的完整文件的大小后,将其通过下载协议告知客户端;
[0030]将封装格式的可变头部根据存储介质中要下载的视频数据信息和音频数据信息预先填好并发送给客户端;
[0031]分配一块内存用于保存要下载的视频帧和音频帧的帧索引信息;
[0032]从存储介质中逐一取出一帧视频帧或音频帧并发送给客户端,同时更新内存中的帧索引信息;
[0033]直至所有帧发送完毕后,再将内存中的帧索引信息发送到客户端,从而完成整个视音频数据文件下载及封装。
[0034]在本发明中,所述帧索引信息在视音频下载过程缓存在系统内存中,而且随着视音频数据帧的发送不断更新,等所有视音频数据发送完成才发送到客户端。
[0035]所述视频数据信息包括:视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息;音频数据的信息包括:音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率。
[0036]下面结合一具体实施例对本发明作进一步说明:
[0037]请参阅图2所示,以MP4封装格式为例,使用本发明的封装方法,包括如下步骤:
[0038]步骤1、客户端向视频存储服务器下载所需的视音频数据时,根据要下载的视音频数据的信息获取MP4的mdat box (复合数据流盒子)大小和MP4的moov box (对象元数据容器盒子)大小;
[0039]步骤2、因moov box相对比较小,文件在下载过程在视频存储服务器内存中根据moov box的大小分配一块内存,来缓存moov box的信息;
[0040]步骤3、将所述整个文件大小的值通过互联网络下载协议告知下载客户端;
[0041]步骤4、客户端进行下载过程中,先将文件封装为MP4格式的ftyp box (文件类型标示盒子)信息发送给客户端,再把填好数据大小的mdat box头部发送给客户端,紧接着将客户端所需的视频或音频数据发送给客户端,且每发送一帧视频或者音频数据同时更新内存中的moov box信息;
[0042]步骤5、在所有视音频帧都发送完毕后,将内存中的moov box信息发送给客户端,从而客户端得到封装好的整个文件。
[0043]另外,在本发明中,所述根据要下载的视音频数据的信息获取要下载的整个文件大小、文件封装为MP4格式的mdat box大小和文件封装为MP4格式的moov box大小;具体为:根据要下载的视频数据的I帧/P帧数(例如是H264格式的视频)、H264格式的视频的序列参数集sps、图像参数值pps信息、音频巾贞数以及音频采样率,来确定视频stbl (元数据样品表)和音频stbl的大小,从而确定moov box的大小;再根据要下载的视频数据大小和音频数据大小来确定mdat box的大小;所述文件封装为MP4格式中的ftyp box的大小是固定的,所述整个文件大小=moov box的大小+mdat box的大小+ftyp box的大小。
[0044]请参阅图3所示,本发明的一种视音频数据的封装装置,
[0045]所述封装装置包括:预处理模块、封装格式头部处理模块、分配模块、读取更新模块以及执行模块;
[0046]所述预处理模块:预先确定要下载的完整视音频数据文件的大小,并通过下载协议告知客户端;
[0047]所述封装格式头部处理模块:将封装格式的可变头部根据存储介质中要下载的视频数据信息和音频数据信息预先填好并发送给客户端;
[0048]所述分配模块:分配一块内存用于保存要下载的视频帧和音频帧的帧索引信息;
[0049]所述读取更新模块:从存储介质中逐一取出一帧视频帧或音频帧并发送给客户端;同时更新内存中的帧索引信息;
[0050]所述执行模块:在所有帧发送完毕后,再将内存中的帧索引信息发送到客户端,从而完成整个视音频数据文件下载及封装。
[0051]其中,所述预处理模块包括计算模块,用于根据存储介质中要下载的视频数据和音频数据的信息以及所采用的封装格式信息计算获得要下载的完整视音频数据文件的大小。
[0052]所述视频数据信息包括:视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息;音频数据的信息包括:音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率;计算模块包括帧索引信息大小计算模块和累计模块;
[0053]所述帧索引信息大小计算模块:用于根据要下载的视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息、音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率,来确定视频和音频的帧索引信息的大小;
[0054]所述累计模块:用于对帧索引信息大小、视频数据大小、音频数据大小以及所采用的封装格式信息大小进行累加计算,以确定整个下载视音频数据文件的大小。
[0055]总之,本发明预先确定封装文件的大小,并保证数据写入方式是顺序的,不需要来回跳跃切换。这样可以让视频服务器以自己的格式存储音视频,在数据备份或下载时才动态封装成标准的格式;从而有利于视频服务器自身数据的管理,也使视频数据的传播更加方便;省去客户端将下载的视音频数据格式转换的过程,使用户通过客户端下载下来的视频文件格式就能直接用通用播放器进行播放。
[0056]以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
【权利要求】
1.一种视音频数据的封装方法,其特征在于: 预先确定要下载的完整视音频数据文件的大小,并通过下载协议告知客户端; 将封装格式的可变头部根据存储介质中要下载的视频数据信息和音频数据信息预先填好并发送给客户端; 分配一块内存用于保存要下载的视频帧和音频帧的帧索引信息; 从存储介质中逐一取出一帧视频帧或音频帧并发送给客户端,同时更新内存中的帧索弓K目息; 直至所有帧发送完毕后,再将内存中的帧索引信息发送到客户端,从而完成整个视音频数据文件下载及封装。
2.根据权利要求1所述的一种视音频数据的封装方法,其特征在于:根据存储介质中要下载的视频数据信息和音频数据信息以及所采用的封装格式信息计算以确定要下载的完整视音频数据文件的大小。
3.根据权利要求2所述的一种视音频数据的封装方法,其特征在于:所述视频数据信息包括:视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息;音频数据的信息包括:音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率;根据要下载的视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息、音频帧数、音频编码格式信息、音频比特率以及音频采样率,来确定视频和音频的帧索引信息的大小;再根据视频数据大小和音频数据大小以及所采用的封装格式信息大小,来确定整个要下载视音频数据文件的大小。
4.一种视音频数据的封装装置,其特征在于:所述封装装置包括:预处理模块、封装格式头部处理模块、分配模块、读取更新模块以及执行模块; 所述预处理模块:预先确定要下载的完整视音频数据文件的大小,并通过下载协议告知客户端; 所述封装格式头部处理模块:将封装格式的可变头部根据存储介质中要下载的视频数据信息和音频数据信息预先填好并发送给客户端; 所述分配模块:分配一块内存用于保存要下载的视频帧和音频帧的帧索引信息; 所述读取更新模块:从存储介质中逐一取出一帧视频帧或音频帧并发送给客户端;同时更新内存中的帧索引信息; 所述执行模块:在所有帧发送完毕后,再将内存中的帧索引信息发送到客户端,从而完成整个视音频数据文件下载及封装。
5.根据权利要求4所述的一种视音频数据的封装装置,其特征在于:所述预处理模块包括计算模块,用于根据存储介质中要下载的视频数据和音频数据的信息以及所采用的封装格式信息计算获得要下载的完整视音频数据文件的大小。
6.根据权利要求5所述的一种视音频数据的封装装置,其特征在于:所述视频数据信息包括:视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息;音频数据的信息包括:音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率;计算模块包括帧索引信息大小计算模块和累计模块; 所述帧索引信息大小计算模块:用于根据要下载的视频数据大小、视频数据的I帧/P帧数、视频的序列参数集sps、图像参数值PPS信息、音频数据大小、音频帧数、音频编码格式信息、音频比特率以及音频采样率,来确定视频和音频的帧索引信息的大小; 所述累计模块:用于对帧索引信息大小、视频数据大小、音频数据大小以及所采用的封装格式信息大小 进行累加计算,以确定整个下载视音频数据文件的大小。
【文档编号】H04N21/266GK103796047SQ201410031904
【公开日】2014年5月14日 申请日期:2014年1月23日 优先权日:2014年1月23日
【发明者】林增昌 申请人:福建星网锐捷安防科技有限公司