[发明专利]一种修复MP4损坏文件的方法有效

专利信息
申请号: 201911050367.3 申请日: 2019-10-31
公开(公告)号: CN110740391B 公开(公告)日: 2021-10-26
发明(设计)人: 许超明;梁效宁;韩勇 申请(专利权)人: 四川效率源信息安全技术股份有限公司
主分类号: H04N21/854 分类号: H04N21/854
代理公司: 暂无信息 代理人: 暂无信息
地址: 641000 四*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 修复 mp4 损坏 文件 方法
【权利要求书】:

1.一种修复MP4损坏文件的方法,其特征在于包括以下步骤:

S100:获取任一MP4正常文件,解析所述MP4正常文件以获取数据流的编码方式、sample数据的封装模式及时间流的交错模式,其中,所述MP4正常文件与所述MP4损坏文件由相同的MP4制作装置和/或制作软件所生成且具有相同的编码方式及交错模式,所述步骤S100包括以下步骤:

S101:获取数据流的编码方式,包括以下步骤:

S1011:获取sample描述信息,所述sample描述信息包含atom大小、类型、版本、标志、条目数及sample描述表,其中,所述类型储存于stsd中;

S1012:读取所述sample描述表中的数据格式作为所述编码方式,所述编码方式包括avc1、mp4a、mp4v、alac、samr、Twos、apcn、in24、sowt及sawb;

S102:获取时间流的交错模式,包括以下步骤:

S1021:获取所述MP4正常文件中各个音/视频序列的区块偏移表并获取各个音/视频序列的偏移量,所述偏移量是相对于媒体数据区域的起始地址的相对偏移地址;

S1022:将各个音/视频序列的偏移量并入同一集合并按升序排列;

S1023:查找各个偏移量所属的音/视频序列在所述集合中出现的规律,用以确定各个音/视频序列的交错模式;

S1024:去除所述集合中重复循环的音/视频序列,用以获取时间流的交错模式;

S103:获取sample数据的封装模式,包括以下步骤:

S1031:获取所述MP4正常文件中sample-区块对应关系表并读取第一区块的序号、每区块的sample数及sample的描述识别号;

S1032:根据所获取的音/视频序列的交错模式及所述MP4正常文件中sample-区块对应关系表,获取sample数据的封装模式;

S200:根据所述编码方式及所述交错模式,扫描所述MP4损坏文件的媒体数据区域并获取所述媒体数据区域中的sample大小及sample的偏移量并记录在音/视频序列容器中;

S300:根据所述音/视频序列容器中sample大小及sample的偏移位置,修改所述MP4正常文件中moov的区块偏移表的偏移量,用以重新构建所述MP4正常文件的moov;

S400:采用所述MP4损坏文件的媒体数据区域替换步骤S300中所重新构建的所述MP4正常文件的媒体数据区域,生成正常播放的MP4文件,完成所述MP4损坏文件的修复。

2.根据权利要求1所述的一种修复MP4损坏文件的方法,其特征在于,所述步骤S200包括以下步骤:

S201:读取所述MP4损坏文件的媒体数据容器的数据,查找媒体数据的标识,所述媒体数据的标识为媒体数据的起始地址;

S202:根据所述MP4正常文件的交错模式,选取要匹配的音/视频序列;

S203:根据所述MP4正常文件的每区块的sample数获取要匹配的sample个数;

S204:根据音/视频序列的编码方式来扫描媒体数据中的sample,用以匹配所读取的sample;

S205:判断所读取的sample是否与音/视频序列的编码方式匹配,如果是,执行步骤S207,否则,执行步骤S206;

S206:寻址下一所需读取的sample,执行步骤S204;

S207:记录当前sample的字节长度和偏移量,并将当前sample的偏移量记录在音/视频序列容器中。

3.根据权利要求2所述的一种修复MP4损坏文件的方法,其特征在于,针对不同的音/视频序列的编码方式,获取sample的字节长度的方法如下:

编码方式为avc1:以当前sample的起始地址为首地址,向后偏移0x5字节并读取字节的内容,与0x1f进行逻辑与运算,所得结果表示sample的类型且小于十进制数21,当前sample的前4字节的内容表示sample的字节长度;

编码方式为mp4a:以当前sample的起始地址为首地址,向后偏移0x5字节、0x06字节并分别读取字节的内容且所读取的内容分别为0xee、0x1b,或者,

以当前sample的起始地址为首地址,向后偏移0x5字节、0x06字节并分别读取字节的内容,所读取的内容分别为0x3e、0x64且当前sample的首字节内容不为零;

采用ffpeg的untr_decode_audio4函数获得sample的字节长度;

编码方式为mp4v:以当前sample的起始地址为首地址,前两个字节的内容为0x1b3或0x1b6,采用ffpeg的avcodec_decode_video2函数获得sample的字节长度;

编码方式为alac:以当前sample的起始地址为首地址,向后偏移0x5字节并读取连续4字节的内容的整数t,当前sample的前4字节的内容为0x00时,t的值为0x00130000,或,

当前sample的前4字节的内容为0x1000时,t的值为0x001a0000,采用ffpeg的untr_decode_audio4函数获得sample的字节长度;

编码方式为samr:当前sample的首字节内容为0x3c,sample的字节长度为32字节。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川效率源信息安全技术股份有限公司,未经四川效率源信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911050367.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top