资讯动态

免费 MP4 视频修复工具 Untrunc:3 条命令救回无法播放的录像

发布时间:2026/8/22 21:29:32 来源:尧图企业网站定制
免费 MP4 视频修复工具 Untrunc3 条命令救回无法播放的录像【免费下载链接】untruncRestore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video.项目地址: https://gitcode.com/gh_mirrors/unt/untrunc刚还能放的视频突然打不开了Untrunc 是一款免费开源的 MP4 视频修复工具你只需递给它一段正常的参考视频它就能重建损坏文件的索引结构让录像重新播放。谁会用得上MP4 视频无法播放的 4 种场景对照一下下面几种情况命中任意一条就值得继续看监控录像因断电打不开存储卡还在相机拍旅行视频拍到一半中断没电、SD 卡满文件拷进硬盘时损坏变成「截断的 MP4 文件」moov 缺失导致视频无法播放播放器直接报文件损坏这四种情况的共同点是画面和声音数据大多还在坏掉的只是文件的「目录」。这正是 Untrunc 修复 MP4 视频要解决的问题而一般的数据恢复软件并不管这个。能力速览Untrunc 能做什么结构重建以参考视频为模板重写字节级索引moov直接产出新的可播放文件多格式覆盖mp4、m4v、mov、3gp 四种容器m4a 纯音频也能用同样思路尝试多定位策略内置 4 种 mdat 数据起始位置查找策略失败后自动换一种重试诊断能力-i查看容器原子结构、-a分析参考视频是否健康修复前先验证零配置运行项目自带 Dockerfile不用手动折腾 libav 依赖从 0 到跑通Untrunc 安装步骤含 Docker 一行命令运行前准备好两个文件一段来自同设备、同设置的正常参考视频和那个损坏的目标文件。拉取源码# 注释下载 untrunc 项目并进入目录 git clone https://gitcode.com/gh_mirrors/unt/untrunc cd untrunc构建镜像这一步把所有依赖一次编译到位产物很小# 注释本地构建 untrunc 镜像 docker build -t untrunc .执行第一次修复把两个视频所在目录挂载进容器参数顺序是好的在前、坏的在后# 注释容器内执行修复输出名为 broken_fixed.mp4 docker run -v /path/to/videos:/files untrunc /files/good.mp4 /files/broken.mp4不想用 Docker 的话需先源码编译 libav 再用 g 链接完整参数见 Dockerfile 与 README.mdmacOS 还要追加 -framework 系列参数。核心操作与参数速查untrunc 命令一览表主命令固定接两个文件参数untrunc good.mp4 broken.mp4顺序不能反。输出默认落在损坏文件旁的xxx_fixed.mp4不指定就不改名。只给一个文件配合-i或-a则是纯分析模式不动原文件。参数作用示例-o指定输出文件名untrunc -o fix.mp4 good.mp4 broken.mp4-i打印编码与原子结构信息untrunc -i good.mp4-a分析参考视频本身是否健康untrunc -a good.mp4-v输出详细日志方便定位卡在哪untrunc -v good.mp4 broken.mp4-M搜索可能的数据包起始位置untrunc -M good.mp4 broken.mp4-d尝试纠正音视频漂移untrunc -d good.mp4 broken.mp4常用组合是先加-v看流程走到哪一步停住再按报错挑对应的策略参数重试。踩坑排查修复失败的 4 种报错应对提示 Failed recovering the file没有输出文件现象命令跑完报这个错目录里没有 _fixed.mp4。 原因没定位到 mdat 内容起点或参考视频与损坏视频不匹配。 解法换同设备同批次的参考视频再试-M搜索包起始位置。修出来了但花屏或音画不同步现象能播放几秒后画面成马赛克或声音对不上嘴。 原因参考视频与损坏视频分辨率、帧率不一致模板对不上。 解法重新挑参数一致的参考视频加-d尝试纠正漂移。本地编译报一堆 undefined reference现象链接阶段报 undefined reference to BZ2_bzDecompressInit 之类。 原因untrunc 依赖 libav 内部头文件系统开发包符号不全。 解法别硬啃本地编译直接用自带 Dockerfile 构建必须编译就按 README 补 -lbz2、-llzma 等参数。修复后只能播放开头几秒现象开头能放随后卡死或成品明显比原文件短。 原因损坏文件首个 mdat 是无效的或尾部数据真的丢了。 解法试-m沿用参考文件相同偏移或拿同设备短片段做参考。它凭什么能行MP4 修复原理一句话讲透把一个 MP4 文件想象成快递包裹里面装的是画面和声音数据叫 mdat外面贴的「面单」是 moov 原子记录着每一帧数据存在哪个位置。截断损坏的 MP4 文件里包裹内容还在面单却没了——播放器找不到入口只好报文件损坏。Untrunc 不拆包裹。它拿完好包裹的面单当模板在损坏文件里扫描内容实际从哪开始再按那个位置重写一份新的面单。修复逻辑 mp4.cpp 里 4 种 mdat 起点查找策略对应的就是取第一个、与参考同偏移、按签名搜索、取最后一个这四种情形。原子层面的解析交给 atom.cpp同目录二十个 codec_*.cpp 分别认识 H.264、HEVC、AAC 等格式。参考视频务必尽量来自同一台设备说白了就是「包装规格」相同模板才能直接套用。项目亮点 社区动态协议、平台与贡献入口协议GPL v2全文见 COPYING商用、修改、再分发都不受限跨平台Linux、macOS 原生可编译有 Docker 的平台含 Windows都能直接跑镜像精简Dockerfile 采用两阶段构建最终镜像里只有可执行文件附加工具moovfirst/ 子目录可把 moov 原子挪到文件开头利于边下边播社区项目已存在十余年更新少但稳定作者明确欢迎把修不好的损坏样本发去做分析这也是门槛最低的贡献入口遇到坏视频时先备份原件再跑一次 Untrunc 的 MP4 视频修复三分钟的事。修成了把结果交给家人修不成把样本反馈给社区也算为下一个人铺了路——数据还在值得抢救一次。【免费下载链接】untruncRestore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video.项目地址: https://gitcode.com/gh_mirrors/unt/untrunc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价