核心要点
- 先看文件大小,这一步决定后面所有动作。有体积(几百 MB 到几个 GB)=数据都在,只是缺索引,救回概率很高;0 字节=基本没救,别再浪费时间试工具。
- 为什么会打不开:MP4 的索引(
moov)要等你按下停止才写到文件末尾。崩在那之前,文件就是「有肉没骨头」——数据一帧不少,播放器却读不懂。所以报错通常是moov atom not found。 - 动手前必须做的一件事:把坏文件原样复制一份到另一块盘,所有操作都在副本上做。别重启、别在原盘继续录——覆盖写入是唯一会让「可救」变成「没救」的操作。
- 四条路线按顺序试:软件自带修复(Bandicam
bdfix.exe/ EV录屏快照修复 / OBS 转封装)→ untrunc + 参考文件(最有效)→ ffmpeg 重封装 → 翻临时目录和自动保存。 - untrunc 的关键在「参考文件」:用同一台电脑、同一个软件、同一套设置现录 10 秒正常视频,命令就一句
untrunc 好的.mp4 坏的.mp4。参考文件对不上,修出来就是花屏或没声音。 - 治本只要三个设置:录制格式改 MKV 或 OBS 的 Hybrid MP4(随时砍断都能播)、开自动分段(一讲一文件)、目标盘留 20GB 余量。1080p/30fps/8Mbps 一小时约 3.6GB,写满的瞬间文件必坏。
「三节课连着录了两个半小时,最后关软件的时候它没响应了,强制退出——文件在,2.3 GB,双击打不开,剪辑软件也导不进去。」这是录课排障里最要命的一类问题,因为损失不是十分钟,是一整天。
好消息是:绝大多数这类文件其实是完整的。2.3 GB 的画面和声音一帧不少地躺在里面,缺的只是文件末尾那份「目录」。坏消息是:你接下来做的头几件事,直接决定它还能不能救回来。这篇按「先止血、再分类、再对症修」的顺序讲,最后给一份下次不会再发生的设置清单。
.bfix 索引文件说明引自 Bandicam 官网 BandiFix 页面。Camtasia 崩溃恢复引自 TechSmith 官方支持文档。各软件的菜单名称、目录路径随版本变动较大,正文中给的是常见版本的位置,找不到时按关键词在对应目录里搜。
先做三件事,别做五件事
这一节没有技术含量,但它比后面所有内容都重要。文件损坏之后,「还能不能修」是一个会随时间变化的量——你在那块盘上每写一次东西,可能性就少一分。
立刻做的三件事
| 动作 | 具体怎么做 | 为什么 |
|---|---|---|
| ① 原样复制一份 | 把坏文件复制(不是剪切)到另一块物理硬盘或另一台电脑上,改名加个 _原始备份 | 后面所有修复工具都可能写出半成品、覆盖原文件。原始文件只有一份,试错机会却需要很多次 |
| ② 记下参数 | 趁还记得,写下:什么软件录的、分辨率、帧率、编码器(H.264 还是 H.265)、有没有麦克风轨、有没有摄像头画中画 | 修复要靠「参考文件」,参考文件必须和坏文件参数完全一致。等你排查两小时后再回想,多半想不起来了 |
| ③ 先录一段参考文件 | 用同一个软件、同一套设置,对着桌面录 10 到 30 秒,正常按停止,存到别的盘 | 这是 untrunc 那条路线的必需品。现在录只要一分钟;等你把软件设置改乱了、或者重装了,就补不出一模一样的了 |
千万别做的五件事
- 别重启电脑。尤其是 Windows 崩溃后弹出「正在修复驱动器」的时候——这个过程会把「正在写入、元数据未提交」的文件回滚成 0 字节。能不重启就先把文件拷出来。
- 别在同一块盘上继续录课。新写入的数据可能占用坏文件曾经占用的簇,一旦覆盖,连数据恢复软件都无能为力。要接着录,换一块盘或者换台电脑。
- 别用录屏软件「打开」它然后另存为。有些软件打开损坏文件时会尝试自动重建索引并直接写回原文件,写坏了就没有回头路。
- 别急着装数据恢复软件到那块盘上。装软件本身就是往盘里写几百 MB,正好可能盖掉你要救的东西。
- 别先去重录。先花二十分钟走完下面的路线,救回来的概率比你想的高得多——尤其是有体积的 MP4,成功率很可观。
三分钟分类:你的文件属于哪一种坏
「打不开」是同一个症状,背后是几种完全不同的病。先对照下表把自己归类,直接跳到对应那一节,别挨个试工具。
| 你看到的现象 | 病因 | 救回概率 | 去哪一节 |
|---|---|---|---|
文件有几百 MB / 几个 GB,双击提示「无法播放」「文件损坏」,ffmpeg 报 moov atom not found | 缺索引(最常见,约占八九成) | 高 | 软件自带修复 → untrunc |
| 文件是 0 字节,或只有几 KB | 系统崩溃时文件系统回滚,数据未落盘 | 极低 | 止损、防下一次 |
| 能播,但播到某个时间点就卡死 / 直接跳到结尾;进度条长度不对 | 索引部分写入,或中段有脏数据 | 中(多能救回大部分) | ffmpeg 重封装 → untrunc |
| VLC 能播、别的播放器和剪辑软件打不开 | 容器结构不规范,VLC 容错强、别人不认 | 很高 | ffmpeg 重封装 |
文件后缀是 .mkv / .flv / .ts,打不开或平台不收 | 多半没坏,只是格式不被接受 | 几乎必成 | 转封装即可 |
目录里有 .tmp / .part / .trec / .bfix 之类怪后缀的大文件 | 软件的中间产物还在 | 高 | 软件自带修复、临时文件 |
| 录制目录里什么都没有 | 软件在临时目录里录,成片时才搬过来 | 中 | 翻临时目录 |
两条最快的判断命令
装了 ffmpeg 的话,先跑这一句看它到底在抱怨什么(Windows 在 PowerShell 或 CMD 里跑,Mac 在终端里跑,都一样):
ffmpeg -i 坏文件.mp4
看输出最后一行:报 moov atom not found 就是典型的缺索引,去 untrunc 那一节;能正常列出 Stream #0:0 Video / Stream #0:1 Audio,说明结构基本完好,多半只要重封装一下。
还有个更土但很好用的判断(Mac / Linux 终端)——直接搜文件里有没有 moov 这四个字节:
grep -abo moov 坏文件.mp4 | head
什么都没输出=索引确实没写进去;能输出一个靠近文件开头或末尾的偏移量=索引在,问题在别处。
为什么「录到一半崩了」就打不开
理解这一点,后面所有工具的行为就都讲得通了,也能明白为什么「换个格式录」就能一劳永逸。
MP4 文件不是一条从头播到尾的流,它是一堆盒子(atom / box)。其中两个最大:mdat 装的是真正的音视频数据——压缩后的一帧帧画面和一段段声音,一大坨二进制,本身不带任何位置信息;moov 装的是索引——第几帧在第几个字节、有多长、用什么编码参数解、音轨视轨怎么对时间。播放器必须先读 moov 才知道怎么解释 mdat。
录屏的时候,软件是边录边往 mdat 里追加的。但 moov 写不了——总共多少帧、总时长多少、每一帧多大,这些要等你按下停止才知道。所以绝大多数录屏软件的做法是:录制全程只写 mdat,停止录制的那一刻才把 moov 算出来、追加到文件末尾。
于是崩溃的后果就非常好理解了:你录了两个半小时的画面全都在文件里,一帧不少,但没有那份目录,播放器面对 2.3 GB 的二进制完全不知道从哪儿下嘴。这就是 moov atom not found 的字面意思,也是为什么这类文件的救回概率很高——修复的本质不是「补数据」,而是重建目录。
路线一:录屏软件自带的修复功能
先试这条,因为软件最了解自己写出来的文件长什么样。很多老师不知道自己天天用的软件里就藏着一个修复工具。
Bandicam(班迪录屏):bdfix.exe + .bfix 索引文件
Bandicam 的方案是所有录屏软件里做得最扎实的:它在录 MP4 的同时,单独在旁边维护一个 .bfix 索引文件——相当于把「目录」实时另存了一份。所以崩溃后修复不用猜,直接拿这份索引就能重建。
- 打开 Bandicam 安装目录(默认
C:\Program Files\Bandicam),运行bdfix.exe(官方叫 BandiFix); - 点【Open】选中损坏的 AVI / MP4,工具会自动修复并让你直接播放确认;
- 如果录制目录里能看到同名的
.bfix文件,别删,它就是那份救命索引。
Bandicam 官方还提到一个值得注意的成因:部分机器上用硬件编码器(Intel Quick Sync、NVIDIA NVENC)录制时会异常中断,这类机器建议改用 CPU 编码(AVI - H264 (CPU))录,或者先更新显卡驱动。这条对所有录屏软件都适用,不止 Bandicam。
EV录屏:会员功能里的「快照修复」
EV录屏在会员功能中提供了视频修复,其中「快照修复」针对的正是录制中途异常导致的损坏,官方宣称成功率很高(这个数字是厂商自述,按参考看待即可)。要注意的限制是:快照修复只对 4.2.2 及以上版本录制的异常文件有效;更老版本录的、或者别的软件录的,只能走常规的视频修复功能,成功率会低一截。EV录屏的常规用法见站内的 EV录屏使用教程。
OBS:转封装(Remux Recordings)
OBS 没有真正意义上的「修复」功能,但有两个动作值得试:
- 文件 → 转封装录像(Remux Recordings):把 MKV / MOV 换壳成 MP4。这条对「MKV 录完还没转就崩了」的场景是万能解,对缺索引的 MP4 则通常无效。
- 转封装失败时常见的两个原因:一是音频编码不被 MP4 容器接受(MP4 只能装有限的编解码组合,MKV 什么都能装,所以录制时用 H.264 + AAC 这个标准组合最保险);二是大文件转封装时内存不够导致进程本身崩掉,换台内存大的机器或先用 ffmpeg 命令行做。
OBS 的完整录制设置见站内的 OBS 录屏完整教程。
Camtasia:崩溃后重开会问你要不要恢复
Camtasia Recorder 崩溃后再次启动时会弹出恢复提示,选择恢复即可拿回上次的录制。没弹提示的话去自动保存目录翻:C:\Users\你的用户名\AppData\Local\TechSmith\Camtasia Studio\版本号\Auto-Saves。
这里有个坑必须知道:Camtasia 的自动保存文件会在你手动保存或正常退出时被删掉——也就是说,如果崩溃之后你又打开 Camtasia 随便点了几下、正常退出了,那份自动保存可能已经没了。所以崩溃后第一件事是先去这个目录把文件拷出来,再去折腾软件。
路线二:untrunc + 一段参考文件(最有效)
这是对付「有体积但缺索引」最靠谱的通用方案,免费、开源、不上传云端(对录了学生信息的课件视频尤其重要,参见站内的 录课脱敏那篇)。
它是怎么工作的
untrunc 干的事是「借骨架」:先读一个健康参考文件的 moov,学会「这个软件产出的 H.264 关键帧长什么样、AAC 帧头是什么样」;然后拿着这个模板去逐字节扫描坏文件,把一帧帧数据认出来、量出长度、重新编目,最后生成一个带完整索引的新文件。
所以参考文件的质量直接决定成败。它的要求是硬性的:
| 参考文件必须一致的项 | 不一致的后果 |
|---|---|
| 同一个录屏软件、同一个大版本 | 封装细节不同,扫描直接失败 |
| 同样的分辨率、帧率 | 修出来花屏、画面撕裂 |
| 同样的视频编码器(H.264 / H.265,硬编还是软编) | 认不出帧,输出接近 0 字节 |
| 同样的音频采样率、声道数 | 典型症状:修出来只有画面没声音 |
| 同样的轨道数(有没有摄像头轨、有没有第二条音轨) | 轨道对不上,时间轴错乱 |
最省事的做法:把当时的设置一个都不动,现录 10 到 30 秒,正常按停止。时长不重要,参数一致才重要。
怎么用
Windows 用户建议用 anthwlock 分支(github.com/anthwlock/untrunc):它提供预编译的免安装压缩包,解压后既有命令行的 untrunc.exe,也有图形界面的 untrunc-gui.exe,不想敲命令就用后者。这个分支支持 H.264 / H.265(HEVC) / AAC,覆盖了绝大多数录屏软件的输出。
命令行只有一句,顺序是「好的在前、坏的在后」,别写反:
untrunc 参考文件.mp4 坏文件.mp4
跑完会在坏文件旁边生成 坏文件_fixed.mp4。分支版本还有几种不同的扫描模式,输出文件名带 _fixed-s1、_fixed-dyn 之类的后缀——第一次没成功别急着放弃,把几种模式都跑一遍挑能用的。
结果不理想时怎么办
- 只有画面没声音 → 参考文件的音频参数对不上。回去确认坏文件当时用的采样率和声道数(48kHz 立体声 / 44.1kHz 单声道差别很大),重录一段再试。
- 只恢复了前面一部分 → 坏文件中段有真正损坏的数据块(磁盘写入错误、编码器写了脏数据),扫描到那里停了。先接受这个半成品,它比全丢强得多,缺的部分按止损那一节补录接上。
- 输出文件几乎是 0 字节 → 编码器对不上(最常见是坏文件用硬件编码器录的、参考文件用了软件编码器,或者反过来),换编码器重录参考文件。
- 提示不认识的编码 → 你的文件可能是 H.265 或更新的编码,确认用的是 anthwlock 分支而不是原版。
路线三:ffmpeg 能做什么、不能做什么
ffmpeg 是万能的转码工具,但在「修复」这件事上有明确的能力边界,先说清楚省得白试。
| 场景 | ffmpeg 行不行 |
|---|---|
| MKV / FLV / TS 换壳成 MP4 | 行,几乎必成 |
| 结构不规范(VLC 能播、别的打不开) | 行,重封装一遍就规范了 |
| 播到一半卡死、时长不对 | 多半行,加容错参数重封装 |
完全没有 moov(报 moov atom not found) | 不行——ffmpeg 读不到索引就没法开工,这种要用 untrunc |
| 0 字节文件 | 不行,没有任何工具行 |
三条可以直接抄的命令
① 换壳(MKV / MOV / FLV / TS → MP4),不重新编码、画质零损失:
ffmpeg -i 录像.mkv -c copy 录像.mp4
② 带容错的重封装,用于「能播一半」「时长不对」「剪辑软件导不进」这几类:
ffmpeg -err_detect ignore_err -i 坏文件.mp4 -c copy -movflags +faststart 修复后.mp4
-err_detect ignore_err 让它遇到坏数据别停下、继续往下读;+faststart 把索引挪到文件开头,顺便解决「网页里要下完才能播」的问题。
③ 上面那条还不行、只想把能救的部分导出来——重新编码一遍,让 ffmpeg 有机会跳过坏帧(慢,但成功率更高):
ffmpeg -err_detect ignore_err -i 坏文件.mp4 -c:v libx264 -crf 18 -preset medium -c:a aac -b:a 192k 抢救.mp4
如果修出来的文件音画对不上(很常见,因为时间戳被重建过),别急着重录,那是另一个可解的问题,做法见站内的 录屏音画不同步怎么修。
路线四:翻临时文件和自动保存
如果录制目录里压根没有文件,或者文件小得离谱,那多半是软件在临时目录里干活、成片时才搬到你指定的位置——崩溃时半成品还留在临时目录里。这一步要趁早做:临时目录的内容可能在下次重启、或系统清理时被清掉。
| 系统 / 软件 | 去哪里找 | 找什么 |
|---|---|---|
| Windows 通用 | Win + R 输入 %temp% 回车 | 按「大小」排序,几百 MB 以上的文件基本就是它,不管后缀是什么 |
| macOS 通用 | 终端输入 open $TMPDIR,重点看 TemporaryItems 子目录 | 同上,按大小排序找大文件 |
| QuickTime(Mac) | ~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Autosave Information | Unsaved QuickTime Player Document.qtpxcomposition,右键「显示包内容」,里面有 Screen Recording.mov,拖出来即可 |
| Camtasia(Win) | %LOCALAPPDATA%\TechSmith\Camtasia Studio\版本号\Auto-Saves | 自动保存的工程;先拷出来再打开软件,否则可能被清 |
| Bandicam | 你设置的录制输出目录 | 同名的 .bfix 索引文件,配合 bdfix.exe 用 |
找到的大文件多半没有正确后缀(可能是 .tmp、一串乱码、甚至没有后缀)。先复制出来,然后手动加上 .mp4 或 .mkv 试着打开;打不开也别丢,它正是前面 untrunc 那条路线的原料。
顺带一提:如果你是用会议软件录的课(腾讯会议、钉钉、Zoom),「录完之后本地转码中断」是另一类高频事故,各平台的原始文件位置和补救办法见站内专文 会议软件录的课怎么导出成 MP4。
花钱的「视频修复」值不值?
搜「视频修复」会出来一堆付费软件和「专业修复服务」,按文件收费,几十到几百不等。该不该花这个钱,取决于你走到哪一步了。
- 先把免费路线走完再考虑。付费工具的核心原理和 untrunc 是一样的(借健康文件的结构重建索引),并没有什么独家魔法。你自己跑一遍 untrunc 只花二十分钟。
- 警惕「预览能看、付费才能导出」。这是这个品类的通用套路,本身不算欺诈——但预览画面清晰不等于导出的完整文件没问题。付费前尽量确认预览覆盖了片尾那一段(最容易丢的就是末尾),而不只是片头几秒。
- 数据敏感的课别外传。「上传到网站帮你修」意味着把整节课交给第三方。录了学生姓名、学号、答卷的视频,坚持用本地工具。
- 什么时候值得花钱:这是一节没法重录的课(公开课实录、评职称的课堂实录、有学生在场的真实课堂),而且免费路线全试过了。这种情况下几百块换回一天工作量,是划算的。
修不回来的止损:怎么少重录
假设最坏情况——文件是 0 字节,或者只修回来了前 40 分钟。接下来的目标不是「修文件」,是「用最少的重录补齐这节课」。
- 先确认到底缺了什么。把修回来的部分完整看一遍,记下缺的是哪几分钟、讲的是哪几页 PPT。很多时候你以为丢了半节课,实际只丢了最后 6 分钟的总结。
- 只补录缺的那一段,不要从头重录。保持机位、灯光、麦克风位置、衣服都不变(这就是为什么第一节要你把参数记下来),补录完在剪辑软件里接上。观众几乎看不出接口。
- 接口处理有技巧。在切换点插入一张 PPT 翻页、一个转场、或者一句「我们来看下一部分」,声音和画面的细微差异就被自然掩盖了。具体做法见站内的 录课说错了不用重录的 6 种补救方法。
- 音频往往还能单独救。如果你当时同时开了会议软件、或者手机在旁边录了音,音轨可能是完好的——那就只补录画面(重新过一遍 PPT 和板书),拿旧音轨对着配,工作量比整节重录小得多。
- 实在要重录,先把设置改对。别在还没解决根因的情况下重录一遍,然后又崩一次。直接跳到下一节。
下次不再发生:9 条设置
前三条能解决九成问题,剩下六条是保险。
| # | 做什么 | 具体设置 / 数字 |
|---|---|---|
| 1 | 换一个抗崩溃的录制格式 | OBS 30.2 及以上:录像格式选 Hybrid MP4(内部分片写、停止时整理成标准 MP4,兼具抗崩溃和兼容性)。老版本或别的软件:录 MKV,录完转封装成 MP4 |
| 2 | 开自动分段 / 一讲一文件 | OBS 高级输出模式的录像页里有「自动分割文件」,可按时间或大小切。人工版本更简单:单个文件不超过 30 到 40 分钟,一讲录完就停、就命名。崩了最多丢一讲 |
| 3 | 目标盘留够空间 | 1080p / 30fps / 8Mbps 约 3.6 GB 一小时(含摄像头画中画和多音轨还要更多)。录课盘至少留 20 GB 余量——盘写满的那一刻,文件必坏 |
| 4 | 别录到会「动」的目录 | 不要录到 U 盘、移动硬盘、网络盘,尤其不要录到 OneDrive / iCloud / 坚果云同步目录里——同步进程会一边读一边传,抢占 IO 还可能锁文件 |
| 5 | 断掉睡眠和意外中断 | 笔记本插电;关掉睡眠 / 休眠 / 硬盘自动关闭;关掉系统自动更新重启。这些和录课前的其它准备一起做,见 开录前 3 分钟准备清单 |
| 6 | 编码器不稳就换 | 反复出现录制中断 / 文件损坏的机器,先更新显卡驱动;还不行就把硬件编码(NVENC / Quick Sync)改成 CPU 编码(x264)。慢一点,但稳 |
| 7 | 录制期间别折腾电脑 | 不开新的大型程序、不装软件、不跑杀毒全盘扫描。杀毒软件实时监控偶尔会锁住正在写入的视频文件 |
| 8 | 录完先播一遍再关机 | 停止录制后,拖到最后 30 秒播一下确认能播、时长对。这一步花 20 秒,能把「第二天才发现」变成「当场重录 5 分钟」 |
| 9 | 确认完立刻备份 | 复制到第二个位置(另一块盘 / 网盘 / U 盘)再关电脑。多录几讲就更要这样,做法见 批量录课流程 |
常见问题
录屏录到一半软件崩溃了,视频文件打不开怎么办?
先别重录、别重启、别在同一块硬盘上继续写东西。把坏文件原样复制一份到别的盘,之后所有操作都在副本上做。然后看文件大小:0 字节基本救不回来;有几百 MB 到几个 GB 的体积,说明画面数据都在、只是缺索引,救回概率很高。按顺序试四条路线:软件自带修复(bdfix.exe / EV录屏快照修复 / OBS 转封装)→ untrunc + 参考文件 → ffmpeg 重封装 → 翻临时目录和自动保存。多数情况前两条就能解决。
MP4 提示 moov atom not found 是什么意思?还能修吗?
能修,而且这是成功率最高的一类。mdat 装真正的音视频数据,moov 装索引,而 moov 要等按下停止才能算出来、写到文件末尾。崩在那之前,文件就是「有肉没骨头」——数据一帧不少,播放器读不懂。修复的本质是重建索引,不是补数据,所以 untrunc 这类工具才管用。
untrunc 怎么用?为什么一定要一个参考文件?
命令只有一句:untrunc 好的.mp4 坏的.mp4,输出 坏的_fixed.mp4。Windows 用 anthwlock 分支的免安装包,里面有图形界面 untrunc-gui.exe,支持 H.264 / H.265 / AAC。必须要参考文件,是因为坏文件里缺的正是编码参数和索引结构——untrunc 得先从参考文件学会「这个软件产出的帧长什么样」,才能去坏文件里逐字节把帧认出来。参考文件必须同机、同软件、同分辨率帧率、同编码器、同音频参数,现录 10 秒即可。
录屏文件 0 字节,还有救吗?
基本没有。0 字节意味着系统崩溃或断电时,Windows 重启修复文件系统,把那个正在写入、元数据未提交的文件回滚成了空壳,磁盘上没留下可指认的数据块。唯一还值一试的是数据恢复软件对未分配空间做原始扫描(碎片化严重时成功率很低,且必须立刻停止在这块盘上写任何东西,包括别把恢复软件装到这块盘)。更现实的是接受损失,立刻把录制格式改成 MKV 或 Hybrid MP4。
为什么大家都说录屏要用 MKV 格式?
因为 MKV 是流式容器,边写边成型,末尾的索引只用于拖进度条,缺了照样能播——崩溃、断电、蓝屏后通常直接双击就能开,最多丢最后一两秒。代价是兼容性差,所以标准做法是「MKV 录、录完转封装成 MP4」,不重新编码、几秒完成、零画质损失。OBS 30.2 及以上有更省事的选择:录像格式直接选 Hybrid MP4,内部按分片写、停止时整理成标准 MP4,两头的好处都占。
修出来只有画面没声音 / 只恢复了一部分怎么办?
没声音=参考文件的音频参数对不上(48kHz 立体声 vs 44.1kHz 单声道差别很大),重录一段参数一致的再试;untrunc 分支还有多种扫描模式(输出带 _fixed-s1、_fixed-dyn 后缀),都跑一遍挑能用的。只恢复一部分=中段有真正损坏的数据块,扫描到那里停了。先收下这个半成品,把可用段截出来、缺的补录接上。修复工具都是尽力而为,救回九成就是好结果。
录课时怎么设置才不会再出现文件损坏?
三件最关键:①录制格式改 MKV 或 Hybrid MP4;②开自动分段,单文件不超过 30 到 40 分钟;③目标盘留 20 GB 余量(1080p/30fps/8Mbps 约 3.6 GB 一小时,写满的瞬间文件必坏)。剩下六条:别录到 U 盘和网盘同步目录、笔记本插电并关睡眠、录制期间不开大型程序、硬件编码不稳就改 CPU 编码、录完先拖到末尾播一遍、确认完立刻复制到第二个位置。最后两条最像废话,也最能救命——绝大多数惨案的共同点是「录完直接关机,第二天才发现」。
常见问题
录屏录到一半软件崩溃了,视频文件打不开怎么办?
先别重录、别重启、别在同一块硬盘上继续写东西。把那个坏文件原样复制一份到别的盘,之后所有操作都在副本上做。然后看文件大小:如果是 0 字节,说明系统崩溃时文件系统回滚了,数据没落盘,这一类基本救不回来;如果有几百 MB 到几个 GB 的体积,说明画面数据是在的,只是缺索引,救回来的概率很高。按顺序试四条路线:①录屏软件自带的修复工具(Bandicam 装目录里的 bdfix.exe、EV录屏 4.2.2 以上版本的快照修复、OBS 的 File → Remux Recordings);②用同一台电脑、同一个软件、同一套设置再录 10 秒正常视频当参考文件,跑开源工具 untrunc;③用 ffmpeg 尝试重新封装;④去系统临时目录和软件的自动保存目录里翻半成品。多数情况下第一或第二条就能解决。
MP4 提示 moov atom not found 是什么意思?还能修吗?
能修,而且这是最典型、成功率最高的一类。MP4 文件由若干个 atom(盒子)组成:mdat 装的是真正的音视频数据,moov 装的是索引——每一帧在文件的第几个字节、多长、用什么编码参数解。录屏软件是边录边往 mdat 里追加数据的,而 moov 要等所有帧都录完、知道总时长和总帧数之后才能算出来,所以绝大多数软件把它放在文件末尾、按下停止时才写。崩溃发生在写 moov 之前,文件就变成有肉没骨头:播放器读不到索引,直接报 moov atom not found 或者提示文件损坏。数据其实一帧不少地躺在里面。修复的本质就是从一个结构相同的健康文件那里借来骨架,重新给这堆数据建索引,这正是 untrunc 做的事。
untrunc 怎么用?为什么一定要一个参考文件?
untrunc 是开源的 MP4/MOV 截断修复工具,原版是 ponchio/untrunc,anthwlock 的分支提供了 Windows 免安装版和图形界面(untrunc-gui.exe),支持 H.264 / H.265(HEVC) / AAC。命令行用法只有一句:untrunc 好的.mp4 坏的.mp4,跑完会在旁边生成 坏的_fixed.mp4。之所以必须给一个好的参考文件,是因为坏文件里缺的正是编码参数和索引结构,untrunc 需要先从参考文件的 moov 里读出这个软件产出的 H.264 长什么样、AAC 帧头是什么样,再拿着这个模板去逐字节扫描坏文件、把帧一个个认出来重新编目。所以参考文件的要求很硬:同一台电脑、同一个录屏软件、同一套分辨率 / 帧率 / 编码器 / 音频采样率,现录一段 10 到 30 秒的就行,别拿手机拍的或者别的软件录的去凑。参考文件对不上,多半会失败或者修出没声音、花屏的结果。
录屏文件 0 字节,还有救吗?
基本没有。0 字节意味着系统崩溃或断电时,Windows 在重启过程中修复文件系统,把那个正在被写入、尚未提交元数据的文件回滚成了空壳——磁盘上没有留下可指认的数据块。这种情况下任何修复工具都无从下手,因为根本没有数据可修。唯一还值得一试的是数据恢复类软件对未分配空间做原始扫描(碎片化严重时成功率很低,且必须立刻停止在这块盘上写任何东西,包括别装恢复软件到这块盘)。更现实的做法是接受这一段丢了,然后立刻去把录制格式改成 MKV 或 OBS 的 Hybrid MP4——这两种格式的设计目标就是随时被砍断都还能播,能从根上避免下一次。
为什么大家都说录屏要用 MKV 格式?
因为 MKV 是流式容器,它把视频切成一个个 cluster,每个 cluster 自带时间戳和足够的解码信息,边写边成型;文件末尾的 Cues 只是给拖动进度条用的索引,缺了照样能从头播到尾。所以录制中途崩溃、断电、蓝屏,MKV 通常直接就能播,最多丢掉最后一两秒。MP4 恰恰相反,索引集中在末尾,写不完就整个打不开。代价是 MKV 兼容性差一些,很多剪辑软件和上传平台不认,所以标准做法是用 MKV 录、录完转封装成 MP4——OBS 里就是 文件 → 转封装录像(Remux Recordings),这一步不重新编码、几秒钟完成、画质零损失。如果你用的是 OBS 30.2 及以上版本,还有个更省事的选择:录制格式直接选 Hybrid MP4,它内部按分片方式写、停止录制时再整理成标准 MP4,既有 MKV 的抗崩溃能力又直接是 MP4,不用手动转。
修出来的视频只有画面没有声音 / 只恢复了一部分怎么办?
这两种都是修复过程中的常见结果,各有对策。只有画面没声音,通常是参考文件的音频参数和坏文件对不上(比如参考文件是 48kHz 立体声、坏文件录的是 44.1kHz 单声道),重新录一段参数完全一致的参考文件再试一次;untrunc 的分支版本也提供了几种不同的扫描模式,输出文件名带 _fixed-s1、_fixed-dyn 等后缀,都试一遍挑能用的。只恢复了前面一部分,往往是坏文件中段有一块真正损坏的数据(磁盘写入错误、编码器卡死写了脏数据),扫描到那里就停了——这种情况先接受这个半成品,它至少比全丢强,然后用剪辑软件把可用段截出来,缺的部分补录接上。修复类工具几乎都是尽力而为,能救回 90% 就是好结果,别追求 100%。
录课时怎么设置才不会再出现文件损坏?
九件事,前三件最关键:①录制格式改成 MKV 或 OBS 的 Hybrid MP4,别用普通 MP4 直接录长课;②开启自动分段(OBS 高级输出模式的录像页里有自动分割文件,可按时间或大小切),一讲一个文件、单文件不超过 30 到 40 分钟;③目标盘留足空间,1080p / 30fps / 8Mbps 大约一小时 3.6GB,录课盘至少留 20GB 余量,写满的瞬间文件必坏。剩下六件:别录到 U 盘、移动硬盘或 OneDrive / 坚果云这类会边录边同步的目录里;笔记本插电并关掉睡眠和休眠;录制期间不要开新的大型程序或做系统更新;硬件编码器(NVENC / Quick Sync)不稳的机器改用 CPU 编码;录完先完整播一遍确认没问题再关软件、再关机;确认完立刻把成片复制到第二个位置。最后一条听起来最废话,却是真正拉开差距的一条——绝大多数文件打不开的惨案,都是录完直接关机、第二天才发现。