mp4文件的切片方法及mp4文件的生成方法与流程

文档序号:36003072发布日期:2023-11-16 17:25阅读:72来源:国知局
mp4文件的切片方法及mp4文件的生成方法与流程

本发明涉及互联网视频点播及数字媒体的,更具体地,涉及一种mp4文件的切片方法及mp4文件的生成方法。


背景技术:

1、业务服务器通常同时有网页播放服务以及视频下载的业务,其中,hls格式文件常用于网页播放服务,其与浏览器网路兼容性好,便于实现动态切不同的分辨率,也便于加密播放,而mp4格式文件则常用于视频下载,其通用性好,便于保存。但由于hls格式文件与mp4格式文件不是相同格式的文件,为了满足下载的需要,常规的操作是在本地分别保存两种格式的视频,但这无疑会加大了本地的存储开销。

2、为了解决存储开销大的技术问题,公开号为cn103957469b的专利提出了一种解决方案,该方案中只存储mp4格式的视频,当用户需要hls格式文件时,对mp4格式的视频进行转换,从而做到只存储一种格式文件就能实现两种格式文件输出的效果。然而,在实际的业务里,浏览器访问请求hls的机会更多,而下载mp4的机会则比较少,若采用存储格式mp4格式的视频的话,需要进行转封装的几率也更大,会长期占用cpu资源。


技术实现思路

1、本发明为克服现有技术中转封装次数过多,长期占用cpu资源的技术问题,提供一种mp4文件的切片方法及mp4文件的生成方法,本发明采用的技术方案如下。

2、第一方面,本发明提供一种mp4文件的切片方法,包括:

3、获取源mp4文件;

4、读出源mp4文件中的除mdat外的所有box,并将读取到的除mdat外的所有box保存到虚拟的mp4文件中;

5、按照源mp4文件中的mdat中的音视频编码数据的存储顺序,将源mp4文件中的mdat中的音视频编码数据转封装成ts切片。

6、在一种实施方式中,还包括:每形成一个ts切片时,将该ts切片中最后一帧编码数据在源mp4中的偏移位置写入到转封装位移索引表。

7、在一种实施方式中,还包括:在源mp4文件的moov放在mdat的后面时,对虚拟的mp4文件中的moov进行修改,使得修改后的moov能够置于mdat的前面。

8、在一种实施方式中,所述对虚拟的mp4文件中的moov进行修改的过程,包括:

9、递归分析源mp4文件中各个box的偏移位置和大小,并根据所述偏移位置和大小对stco的box进行修改。

10、第二方面,本发明提供一种mp4文件的生成方法,包括:

11、接收mp4文件的下载请求;

12、根据所述下载请求查找对应的虚拟的mp4文件;

13、根据下载请求中的offset读取所述对应的虚拟的mp4文件中的数据,并将读取到的数据封装成mp4文件格式;

14、其中,所述根据下载请求中的offset读取所述对应的虚拟的mp4文件中的数据的过程,包括:

15、在读取到非mdat位置时,读取所述虚拟的mp4文件中对应的数据;

16、在读取到mdat的开始位置时,根据所述下载请求查找对应的ts文件,按照ts列表顺序对ts文件中的ts切片进行转封装并读取转封装后的音视频编码数据,将读取到的音视频编码数据写入到待生成的mp4文件的mdat中,其中,所述ts文件使用上述任一实施方式的切片方法生成。

17、在一种实施方式中,还包括:

18、查找所述对应的虚拟的mp4文件所对应的转封装位移索引表;

19、所述根据下载请求中的offset读取所述对应的虚拟的mp4文件中的数据的过程,还包括:

20、当由mdat的非开始位置重新读取时,根据当前的offset和转封装位移索引表得到对应的ts序号,从所述ts序号开始按照ts列表顺序对ts切片进行转封装并读取转封装后的音视频编码数据,将读取到的音视频编码数据写入到待生成的mp4文件的mdat中。

21、第三方面,本发明提供一种mp4文件的切片装置,包括:

22、获取模块,用于获取源mp4文件;

23、读取模块,用于读出源mp4文件中的除mdat外的所有box,并将读取到的除mdat外的所有box保存到虚拟的mp4文件中;

24、切片模块,用于按照源mp4文件中的mdat中的音视频编码数据的存储顺序,将源mp4文件中的mdat中的音视频编码数据转封装成ts切片。

25、第四方面,本发明提供一种mp4文件的生成装置,包括:

26、接收模块,用于接收mp4文件的下载请求;

27、查找模块,用于根据所述下载请求查找对应的虚拟的mp4文件;

28、生成模块,用于根据下载请求中的offset读取所述对应的虚拟的mp4文件中的数据,并将读取到的数据封装成mp4文件格式;

29、其中,生成模块在执行根据下载请求中的offset读取所述对应的虚拟的mp4文件中的数据的过程,包括步骤:

30、在读取到非mdat位置时,读取所述虚拟的mp4文件中对应的数据;

31、在读取到mdat的开始位置时,按照ts列表顺序对ts切片进行转封装并读取转封装后的音视频编码数据,将读取到的音视频编码数据写入到待生成的mp4文件的mdat中。

32、第五方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施方式的方法。

33、第六方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任一实施方式的方法。

34、本发明中,在对mp4文件进行切片的过程中,保存源mp4文件中的除mdat外的所有box,按照源mp4文件中的mdat中的音视频编码数据的存储顺序转封装生成ts切片,使得重新生成mp4格式文件逆向转封装成mdat时,让重新生成到mdat的音视频编码数据与源mp4文件中的音视频编码数据的存储顺序相同,从而实现两种格式的文件能够共享相同的编码后的数据帧,在快速为客户端提供两种不同格式的文件的同时,又节省了存储空间。



技术特征:

1.一种mp4文件的切片方法,其特征在于,包括:

2.根据权利要求1所述的mp4文件的切片方法,其特征在于,还包括:

3.根据权利要求1或2所述的mp4文件的切片方法,其特征在于,还包括:

4.根据权利要求3所述的mp4文件的切片方法,其特征在于,所述对虚拟的mp4文件中的moov进行修改的过程,包括:

5.一种mp4文件的生成方法,其特征在于,包括:

6.根据权利要求5所述的mp4文件的生成方法,其特征在于,还包括:

7.一种mp4文件的切片装置,其特征在于,包括:

8.一种mp4文件的生成装置,其特征在于,包括:

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。


技术总结
本发明公开一种mp4文件的切片方法及mp4文件的生成方法。其中,该mp4文件的切片方法,包括:获取源mp4文件;读出源mp4文件中的除mdat外的所有box,并将读取到的除mdat外的所有box保存到虚拟的mp4文件中;按照源mp4文件中的mdat中的音视频编码数据的存储顺序,将源mp4文件中的mdat中的音视频编码数据转封装成ts切片。本发明实现两种格式的文件能够共享相同的编码后的数据帧,在快速为客户端提供两种不同格式的文件的同时,又节省了存储空间。

技术研发人员:邹颖思,胡钊
受保护的技术使用者:广州市奥威亚电子科技有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1