一种MP4格式音视频文件生成方法、系统及计算机储存介质技术方案

技术编号:36289305 阅读:19 留言:0更新日期:2023-01-13 10:01
本发明专利技术涉及一种MP4格式音视频文件生成方法、系统及计算机储存介质,方法包括:获取音视频数据流;音视频数据流包括音视频标识信息、音视频媒体信息、音视频帧数据信息以及对应音视频帧数据信息每一帧的帧索引信息;分别创建ftyp数据块、mdat数据块、Smoovbox数据块及moov box数据块,Smoov box数据块用以储存音视频帧数据信息对应的媒体信息及关键帧索引信息;判断当前写入moov box数据块的对应帧的索引信息是否为关键帧索引信息,若是关键帧索引信息,将当前对应帧的索引信息写入至Smoov box数据块并使当前对应帧的索引信息生效;监测音视频数据流的传输状态,若传输结束,生效moov box数据块以生成MP4格式文件。保证了录像异常终止状况下和正常结束时MP4文件能够正常播放。常播放。

【技术实现步骤摘要】
一种MP4格式音视频文件生成方法、系统及计算机储存介质


[0001]本专利技术涉及音视频领域,特别是涉及一种MP4格式音视频文件生成方法、系统及计算机储存介质。

技术介绍

[0002]MP4格式文件是当前最为通用的音视频录像格式之一。每个格式MP4文件包含了若干个box数据块,MP4里的所有数据,都是以一个个box组装在一起的。一个完整的能被通用播放器正常播放的MP4文件至少包含了三个box数据块,分别是ftyp数据块,mdat box数据块及moov box数据块。其中,ftyp数据块用以储存MP4文件开头的标识信息,mdat box数据块里储存了实际的音视频媒体数据信息,moov box数据块里则存放了音视频流的媒体信息和音视频流数据中每一帧数据的时域空域索引信息,包括时间戳、数据大小和在文件中的索引地址信息。三个box数据块中任何一个缺失或不完整,将倒致整个MP4录像文件无法正常播放。
[0003]监控摄像头、摄像机、手机、机顶盒、计算机桌面、游戏机、医疗手术录像等硬件设备实时录像生成MP4格式文件通常是在音视频流数据写入完成后即录像结束时生成音视频媒体信息和时域空域索引信息并写入文件末尾位置。当设备意外断电、死机、软件崩溃或存储设备意外断开等异常状况时,导致录像过程异常终止,视频文件录制出错,moov box数据块媒体信息和索引信息未能写入文件,因而无法从mdat box数据块中读取媒体数据和索引信息,导致该录像MP4格式文件无法正常播放。

技术实现思路

[0004]基于此,有必要针对录像异常终止,moov box数据块信息缺失MP4录像文件无法正常播放的问题,提供一种MP4格式音视频文件生成方法、系统及计算机储存介质。
[0005]一种MP4格式文件生成方法,所述方法包括:
[0006]创建录像文件,并获取音视频数据流,所述音视频数据流包括音视频标识信息、音视频媒体信息、音视频帧数据信息以及对应所述音视频帧数据信息每一帧的帧索引信息;
[0007]创建ftyp数据块及mdat数据块,所述ftyp数据块用以储存所述音视频标识信息并写入至所述录像文件;所述mdat数据块用以持续接收音视频数据流的音视频帧数据信息并写入至录像文件;
[0008]创建moov box数据块,所述moov box数据块用以储存所述音视频帧数据信息对应的媒体信息及每一帧的索引信息;
[0009]创建Smoov box数据块,判断当前写入moov box数据块的对应帧的索引信息是否为所述关键帧索引信息,若是关键帧索引信息,将当前对应帧的索引信息写入至Smoov box数据块并将储存关键帧索引信息的Smoov box数据块写入所述录像文件,以使Smoov box数据块内的所述关键帧索引信息生效;
[0010]监测所述音视频数据流的传输状态,若传输结束,生效moov box数据块以生成所
述MP4格式文件。
[0011]本专利技术上述实施方式通过引入精简的moov box数据块用以在录像过程中写入关键帧的索引数据,在录像结束时再写入完整moov box,保证了录像异常终止状况下和正常结束时MP4文件能够正常播放。
[0012]在其中一个优选实施方式中,所述将当前对应帧的索引信息写入至Smoov box数据块并将储存关键帧索引信息的Smoov box数据块写入所述录像文件的步骤,包括:
[0013]在当前所述mdat数据块预留储存空间;
[0014]在所述储存空间写入Smoov box数据块,并更新当前所述mdat数据块,以使储存至Smoov box数据块的关键帧索引信息生效。
[0015]在其中一个优选实施方式中,所述在当前所述mdat数据块预留储存空间,包括:
[0016]判断当前mdat数据块的预留空间与Smoov box数据块的大小关系,若Smoov box数据块空间值大于所述当前mdat数据块的预留空间值,将所述mdat数据块的预留空间值更新为Smoov box数据块的空间值;
[0017]将mdat数据块的预留空间值加入至所述mdat数据块原有的空间值,以更新所述mdat数据块的空间值。
[0018]本专利技术上述实施方式中可防止因moov box大小不断增长导致moov box更新频率下降带来的抗录像异常终止能力的降低和写moov box数据卡顿对录像实时性和流畅度的影响,同时,也可避免为防止溢出需预留大的moov box索引信息空间导致的存储空间浪费。
[0019]在其中一个优选实施方式中,所述当前mdat数据块的预留空间的大小初始设定和更新方法包括:
[0020]所述mdat box数据块的预留空间大小取当前最大媒体数据帧大小的整数倍或当前Smoov box数据块空间大小两者中的较大值。
[0021]具体地,在其中一个优选实施方式中,设定mdat box数据块预留空间大小值为N倍(为节省预留存储空间,N可选择一个较小的值,例如N=2)当前最大音视频帧数据大小,特殊的,首次设置时,最大音视频帧数据大小即为第一帧音视频数据大小,并由此预设mdat box数据块的初始空间值,并在录像文件中为mdat数据块预留存储空间。
[0022]接着,随着音视频数据流的持续写入,将mdat数据块预留空间大小更新为当前最大媒体数据帧大小的N倍,并判断当前mdat数据块当前的预留空间与Smoov box数据块所占空间的大小关系,若Smoov box数据块空间值大于所述当前mdat数据块的预留空间,将所述mdat数据块的预留空间值更新为Smoov box数据块的空间值。将mdat数据块的预留空间值加入至所述mdat数据块原有的空间值,以更新所述mdat数据块的空间值。
[0023]在其中一个优选实施方式中,所述方法还包括:
[0024]获取音视频数据流对应的第一帧数据信息;
[0025]将所述的第一帧数据信息写入mdat数据块,将第一帧数据信息对应的媒体信息及索引信息写入Smoov box数据块及moov box数据块。
[0026]在其中一个优选实施方式中,所述获取音视频数据流,还包括:
[0027]对所述音视频数据流进行解码。
[0028]在其中一个优选实施方式中,所述判断当前写入moov box数据块的对应帧的索引信息是否为关键帧索引信息,包括:
[0029]根据音视频编码器的类型及音视频关键帧标志识别判断当前媒体数据帧是否为关键帧索引信息。
[0030]在其中一个优选实施方式中,所述媒体信息包括:所述音视频数据流的分辨率、采样率、时长、编码器类型;所述索引信息包括:数据帧对应的时间戳、数据帧大小和数据帧在文件中的数据索引地址。
[0031]本专利技术上述实施方式通过引入精简的Smoov box数据块用以在录像过程中定期写入关键帧的索引数据,在录像结束时再写入完整Smoov box数据块,保证了录像异常终止状况下和正常结束时MP4文件能够正常播放。本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种MP4格式音视频文件生成方法,其特征在于,所述方法包括:创建录像文件,并获取音视频数据流,所述音视频数据流包括音视频标识信息、音视频媒体信息、音视频帧数据信息以及对应所述音视频帧数据信息每一帧的帧索引信息;创建ftyp数据块及mdat数据块,所述ftyp数据块用以储存所述音视频标识信息并写入至所述录像文件;所述mdat数据块用以持续接收音视频数据流的音视频帧数据信息并写入至录像文件;创建moov box数据块,所述moov box数据块用以储存所述音视频帧数据信息对应的媒体信息及每一帧的索引信息;创建Smoov box数据块,判断当前写入moov box数据块的对应帧的索引信息是否为所述关键帧索引信息,若是关键帧索引信息,将当前对应帧的索引信息写入至Smoov box数据块并将储存关键帧索引信息的Smoov box数据块写入所述录像文件,以使Smoov box数据块内的所述关键帧索引信息生效;

监测所述音视频数据流的传输状态,若传输结束,生效moov box数据块以生成所述MP4格式文件。2.根据权利要求1所述的MP4格式音视频文件生成方法,其特征在于,所述将当前对应帧的索引信息写入至Smoov box数据块并将储存关键帧索引信息的Smoov box数据块写入所述录像文件的步骤,包括:在当前所述mdat数据块预留储存空间;在所述储存空间写入Smoov box数据块,并更新当前所述mdat数据块空间值,以使储存至Smoov box数据块的关键帧索引信息生效。3.根据权利要求2所述的MP4格式音视频文件生成方法,其特征在于,所述在所述储存空间写入Smoov box数据块,并更新当前所述mdat数据块空间值,包括:判断当前mdat数据块的预留空间与Smoov box数据块的大小关系,若Smoov box数据块空间值大于所述当前mdat数据块的预留空间值,将所述mdat数据块的预留空间值更新为Smoov box数据块的空间值;将mdat数据块的预留空间值加入至所述mdat数据块原有的空间值,以更新所述mdat数据块的空间值。4.根据权利要求3所述的MP4格式音视频文件生成方法,其特征在于,所述在当前所述mdat数据块预留储存空间包括:所述mdat box数据块的预留空间大小取当前最大媒体数据帧大小的整数倍或当前Smoov box数据块空间大小两者中的较...

【专利技术属性】
技术研发人员:郭春辉
申请(专利权)人:苏州麦迪斯顿医疗科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1