利用Perl修复MP4文件的终极解决方案:WET Ultimate Solution
是什么?
WET Ultimate Solution是一个开源工具,专为恢复损坏、删除或未完成的h264视频的MP4、MOV、3GP等文件而设计。理论上,它也可用于AVI、MKV、M4V等其他容器,但声音恢复可能更为复杂。
如果你经常用相机、手机、运动相机、屏幕录制或无人机拍摄视频,这个工具可能会派上大用场。即使是高速撞击树干后的无人机残骸中,试图提取最后半秒的视频,也有机会借助此工具。
需要什么?
修复文件,你需要:
- 损坏的文件或卡/闪存盘/硬盘的镜像。
- 一个独立的新磁盘,有足够的空间存放修复结果。
- 运行着Linux或Windows系统的机器,安装了Perl和ffmpeg/ffprobe/ffplay。
- 如需恢复AAC音轨,还需要
faad2
(libfaad-dev包)以及gcc
(编译aacfixer
工具)。 - 一个良好记录的样本文件,与待修复文件在同设备、同设置下录制。
如何使用?
- 如果是已删除、未完成或紧急关机的情况,首先使用WinHex或其他类似工具获取图像或尝试恢复文件。
- 拍摄一个新的视频,确保其录制条件与需要恢复的文件完全相同(包括到屏幕抖动的程度)。
- 运行命令:
perl fixer.pl <good_file.mp4> <bad_file.mp4> <output_prefix>
工作原理?
工具会创建中间文件:
-headers.aac
: 之后用于恢复声音的文件-headers.h264
: 视频文件,用于创建头信息-nals.txt
: 临时文件,记录参考视频包的信息(Windows 7 下可能生成时间较长)-nals-stat.txt
: 我们“学习”的内容。如果出现问题,请提供此文件。-stat.mp4
: 实际上是一个无声且剪裁至20秒的样本文件副本。
最终将生成:
-out-video.h264
: 恢复的视频-out-audio.raw
: 恢复的音频(实际上只是视频之间的部分)
所有文件将在运行脚本的当前目录下创建。
你可以用任何播放器如ffplay来播放-out-video.h264
,但添加声音会稍复杂一些。
声音恢复:
不同的视频摄像机可能以不同方式记录声音:
- 如果声音是mp3格式,只需将
-out-audio.raw
重命名为file.mp3,然后用任何播放器打开。 - 对于PCM格式(例如ULAW),如某些Sony视频摄像机所采用的,可以轻松保存,通过以下命令转换为WAV:
请确保选择适合你的设备的参数。ffmpeg -f s16le -ar 48000 -ac 2 -i somefile-out-audio.raw -c copy output.wav
- 如果音频为AAC格式,最常见的一种,我们将编译附加的
aacfixer
工具:
前提是你已经编译了faad2库并将libfaad.a和neaacdec.h文件放在当前目录下。gcc aac.c -L. -lfaad -lm -o aacfixer
然后运行:
./aacfixer somefile-headers.aac somefile-out-audio.raw
这可能需要一段时间,因为暴力恢复方法被用于解码声音。
出问题怎么办?
记住,代码是为了作者内部需求快速编写,并不保证适用于所有情况。除了写作的三天时间,作者又花了一周来撰写说明。如果不起作用,请创建一个问题报告,提供以下信息:
- 上传一个10到20秒的参考文件,使用GoogleDrive或Dropbox等服务。
- 上传损坏文件样本,大小不超过50MB。
- 描述录制设备型号或该文件创建后使用过的程序。是否进行了恢复还是直接从设备复制。
- 发生了什么(无人机撞树、空间不足、意外关机等)。
- 在哪个系统上运行了此工具,哪里出错了。
代码旨在跨多个平台工作,不依赖二进制文件,尽可能简单,因此效率不是首要目标。作者仅用了3天时间编写代码。
赞助支持:
如果你出于某种原因想要赞助,可以通过比特币或以太坊地址:
- 比特币: 1bU17VMyvxYfCN257AiHrPPca1bszuLna
- 以太坊: 0x39b64f347b7702ddb1f8B06A25575598d624b783
请注意,作者目前失业,非常需要资金。如果转账,他可以用数据恢复技能帮你解决问题,但帮助的程度取决于金额。
最新的GoPro、Xiao / Xiaomi Yi 4k和部分无人机用户:
这些基于Ambarella芯片的视频摄像机几乎都有相同的硬件配置。例如,作者的Xiaomi Yi4k搭载了Ambarella A9SE芯片,与GoPro一样,会同时写入主流的额外预览,供移动应用使用。固件中还有视频编辑器的遗留物,虽然用户看不见,但在未来版本中可能会用到。这导致两个文件在同一张卡上混合,如果作为单一文件恢复,会出现很多断裂片段。不要使用常规的数据恢复软件如R-Studio尝试恢复,它们会破坏文件!
幸运的是,作为这类视频相机的拥有者,作者可以进行大量实验,针对各种录像模式。作者还是一位文件系统专家,计划发布用于低级别操作闪存卡的实用工具。将来,它可以准确地恢复文件。但现在还不是时候。缺乏完成该项目的动力,所以暂时只有小预览。
其他工具:
为了寻找竞争对手,作者还编写了一个简单的脚本,读取文件的随机片断并合并在一起。当然,这样做出来的文件不可用,但能否恢复呢?
令人惊讶的是,许多商业工具对此束手无策,甚至无法解释失败的原因。开源工具如untrunc需要一些努力才能编译,但仍然无法正常工作。不过,也有一些工具能给出一定结果:
- mp4repair.org - 数据恢复服务。能在浏览器中无需参考文件即显示损坏文件的预览,但价格较高。不幸的是,他们告诉作者,恢复测试文件将会很昂贵,这让他感到失望。与技术支持的沟通也未能取得进展,因此无法推荐。
- http://slydiman.me/eng/mmedia/recover_mp4.htm - 结果接近作者的方法,但以mp4容器存储,理论上应更好地恢复音频和视频的同步。作者无法在VLC中播放结果,但ffplay显示了类似的画面。然而,作者似乎决定对项目进行商业化,并未发布新版本,也不是开放源代码。这是作者创建自己项目的原因之一。
如您所见,选择并不多。随着这个项目的发布,选择范围变得更宽!
联系作者
如果你想直接联系作者,可发送邮件至iformp4review@airmail.cc。 这不是作者的主要邮箱,回复可能不会很快。创建带有“检查邮件”文本的问题也是一种方式。
如果你有关于视频制作的一般性问题,建议在Video Stack Exchange提问,这是一个小型但非常棒的视频制作社区。
致谢:
特别感谢StackOverflow上的szatmary、Mulvya、VC.One的参与者。 感谢Slydiman,因为他没有实现我的功能请求并且没有公开源代码。 还要感谢我们的会议中遭受SJCAM折磨的同事,他们激发了我创作这个工具的热情!
许可证:
本程序是自由软件:你可以重新分发和/或修改
它根据Free Software Foundation发布的GNU General Public License第三版条款,
或者根据你的选择,任何后续版本的条款。
开始你的修复之旅吧!
PaddleOCR-VL
PaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00- DDeepSeek-V3.2-ExpDeepSeek-V3.2-Exp是DeepSeek推出的实验性模型,基于V3.1-Terminus架构,创新引入DeepSeek Sparse Attention稀疏注意力机制,在保持模型输出质量的同时,大幅提升长文本场景下的训练与推理效率。该模型在MMLU-Pro、GPQA-Diamond等多领域公开基准测试中表现与V3.1-Terminus相当,支持HuggingFace、SGLang、vLLM等多种本地运行方式,开源内核设计便于研究,采用MIT许可证。【此简介由AI生成】Python00
openPangu-Ultra-MoE-718B-V1.1
昇腾原生的开源盘古 Ultra-MoE-718B-V1.1 语言模型Python00ops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。C++0123AI内容魔方
AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。02Spark-Chemistry-X1-13B
科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile011
- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00
最新内容推荐
项目优选









