
MP4 尾部被截断时用一条命令找回视频Untrunc 视频修复实战【免费下载链接】untruncRestore a truncated mp4/mov. Improved version of ponchio/untrunc项目地址: https://gitcode.com/gh_mirrors/un/untrunc一个常见故障相机电池耗尽或存储卡被拔出MP4 的尾部被截断播放器打开后提示文件已损坏。这类损坏通常集中在文件末尾中间的音视频数据往往还在。Untrunc 视频修复做的事很具体拿一段同源的健康视频当模板重建受损文件的容器索引让数据重新可播放。先说结论损坏文件单独无法修复。播放器找每一帧的位置靠的是容器里的索引结构文件尾部被截断后这份索引往往残缺或丢失。Untrunc 不靠猜测它从参考视频读出完整的结构套到损坏文件上。所以整个流程只有三件事挑一个匹配的参考视频、把工具装好、跑一条命令。文件坏在哪尾部缺失的索引MP4/MOV 文件由一段段原子atom组成解析代码在src/atom.cpp。真正的画面和声音数据放在 mdat 原子里而播放器用来定位每一帧的索引放在 moov 原子里。录制被强行中断时文件尾部的容器结构往往不完整——播放器找不到完整索引或索引指向的数据已不存在于是报损坏。但数据本身多半还在。修复思路由此而来Untrunc 先扫描损坏文件把 mdat 数据找出来再用参考视频的结构重建一套新的 moov。参考视频与损坏文件越接近重建的索引就越准。参考视频怎么选才不白忙这一步最容易白忙。参考视频的质量直接决定成功率判断标准按优先级排同一台设备、同一套录制参数。同一相机拍出的文件容器结构最像修复概率最高相同的编码与容器。损坏文件是 H.264avc1就不要拿 H.265hvc1的做参考视频轨道的代码分别在src/avc1/和src/hvc1/时长和场景相近。接近是加分项不是硬门槛。匹配项要求核对方法设备与参数同一相机相同分辨率与帧率两个文件分别用untrunc -i对比编码视频、音频编码需一致看-i输出的轨道信息时长越接近越好直接比较文件大小核对不需要懂视频知识-i参数会打印参考视频的轨道信息两个文件跑一遍编码和分辨率对得上这个参考就能用。三步命令装好 Untrunc在 Linux 上最短的路径是源码编译共三步装 FFmpeg 开发库、拉取源码、编译。sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev git clone https://gitcode.com/gh_mirrors/un/untrunc cd untrunc makemake跑完没有报错、目录下多出一个untrunc可执行文件即安装完成。这个 fork 相比旧版速度约快 10 倍、内存占用低、支持 2GB 以上文件也能处理部分 Sony 与 GoPro 的视频Windows 用户直接下预编译版即可图形界面在src/gui/非必须。一条命令完成修复把两个文件放在同一目录执行第一个参数是健康参考视频第二个是损坏文件顺序不能反。./untrunc working.mp4 broken.mp4看到输出提示成功、目录里多出一个broken_fixed.mp4修复就算完成打开它验证播放。修复失败时先试的三个选项失败大多逃不出两种参考视频不匹配或损坏文件里有工具认不出的内容。按顺序试加-v拿详细日志先确认流程卡在哪一步./untrunc -v working.mp4 broken.mp4日志若提示找不到 mdat多半是参考视频不匹配若提示遇到未知字节序列再试下一条。加-s让工具跳过认不出的字节继续走而不是直接终止加-a进入纯分析模式只解析参考视频并打印结果不生成修复文件用来确认参考文件本身是否正常。事先要知道的几个边界尾部截断是最好修的场景损坏位于文件中部或数据大面积丢失时成功率会明显下降修出来的文件能播不等于完整结尾可能缺几秒音画也可能轻微错位工具只写出带_fixed后缀的新文件不会改动你的原始损坏文件Sony 的录制中 RSV 文件要加-rsv-ben对应逻辑在src/rsv.cpp。行动清单每台设备留一两段完好样本将来出故障时才有参考可用修复失败时先用-i核对参考视频匹配度再考虑其他参数修完从头播到尾确认不缺帧、音画不同步后再归档【免费下载链接】untruncRestore a truncated mp4/mov. Improved version of ponchio/untrunc项目地址: https://gitcode.com/gh_mirrors/un/untrunc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考