昨日提到, 我的录像因为意外断电变为了RSV文件。经研究, RSV文件内容就是去掉MP4各种头(包括mdat自己的头)的mdat内容, 因此, 只需要自己为它做一个头即可。需要做的头主要包括ftyp和moov, 其中, 整个ftyp头以及moov头中的绝大部分内容都可以直接从同一个相机录制的其他MP4文件中抄袭; moov头中关于每一帧的大小和偏移的信息则需要通过参考同一个相机录制的其他MP4文件分析mdat来重建。
幸运的是, 我找到了一个开源软件来完成上述工作: https://github.com/anthwlock/untrunc , 仅需如下命令即有较大概率成功修复:
untrunc -range : 同相机的完好MP4文件路径 RSV文件路径
其中, 似乎完好的MP4文件越大修复成功概率越高。
此外, 我一开始修复后发现画面变为慢动作, 且每隔一秒画面都会变灰一次, 后来, 经研究, 我提交了一个PR修复了此问题。
发表评论