使用十六进制编辑器将索尼相机损坏.rsv文件修复为MP4
修复索尼RSV转MP4的尾部缺失问题
核心背景
已通过HxD对比确认:索尼相机生成的.rsv文件仅包含MP4的mdat数据区,正常MP4文件由ftyp头部、mdat数据区、moov元数据尾部三部分组成。目前已成功添加ftyp头部(内容如下),但缺失moov尾部导致文件无法播放:
....ftypXAVC....
XAVCmp42iso2....
uuidPROF!.O...i
...@............
FPRF.... .......
...,APRF........
手动定位并添加moov尾部步骤
- 打开参考MP4文件:用HxD打开正常可用的MP4,从文件末尾向前搜索十六进制值
6D 6F 6F 76(对应ASCII的moov) - 确定尾部起始点:找到
moov标识后,向前数4字节,这4字节是moov块的总长度(大端字节序,比如00 00 1A 3F表示长度为0x1A3F字节) - 复制完整尾部:从上述4字节长度的位置开始,选中到文件末尾的所有内容并复制
- 拼接生成新文件:将复制的
moov尾部粘贴到已添加头部的RSV文件末尾,保存为新的MP4文件
用Scalpel自动提取moov尾部的方法
如果手动搜索效率低,可通过文件雕刻工具Scalpel自动提取:
- 创建自定义规则文件:新建
mp4_moov.conf,写入规则:
说明:mp4_moov y 5000000 \x6D\x6F\x6F\x76y表示匹配文件尾部内容,5000000是最大提取字节数(可根据视频时长调整),\x6D\x6F\x6F\x76是moov的十六进制标识 - 执行提取命令:在命令行运行:
scalpel -c mp4_moov.conf 参考MP4文件路径 -o 输出文件夹 - 验证并拼接:打开输出文件夹中的提取文件,确认开头为
moov后,将其粘贴到已加头部的RSV文件末尾
后续修复(若仍无法播放)
如果拼接后文件仍无法播放,用MP4Box工具修复索引:
MP4Box -interleave 新生成的MP4文件路径
或执行深度修复:
MP4Box -repair 新生成的MP4文件路径
内容的提问来源于stack exchange,提问作者stronghold051
相关产品推荐
相关产品推荐

