← 博客

录制视频损坏或无法播放时:分步修复指南

展示修复损坏录制视频过程的画面
Photo · Pexels
核心摘要
  • 录制视频损坏最常见的原因,是录制途中被强制关闭,导致 mp4 文件没有写到结尾完成收尾。
  • 只要体积正常,用重新封装(remux)或修复工具大多能抢救回来。
  • 下次请以 mkv 录制后再转换为 mp4,并把可变帧率改为 CFR(固定帧率)。
  • DOR 会自动收尾并保存录制,这类文件损坏的风险较小。

先说结论,录制视频损坏或无法播放的大多数情况,并不是文件本身消失了,而是录制没能写到结尾完成收尾。视频录制文件会在录制正常结束的那一刻,把索引(目录)信息写在最末尾。但如果录制途中程序被强制关闭或 PC 断电,这个收尾步骤就缺失了,播放器不知道该如何读取文件,于是拒绝播放。

因此修复的核心有两点。第一是把正常部分重新打包、重建索引的重新封装(remux);第二是重新封装不行时,用专用修复工具提取数据。按下面的顺序操作即可。

先确认:这是能救的文件吗

正式开始修复前,先确认文件体积。这能最快地告诉你修复的可能性。

  • 如果体积只有 0KB 或几 KB:说明几乎没有写入实际视频数据,修复较困难。
  • 如果体积有几十 MB 以上、在正常范围:视频数据已经存在,只是没收尾的情况居多,抢救的可能性较高。
  • 如果文件很大但显示为 0 秒、或缩略图预览出不来:这是典型的索引缺失症状,属于重新封装的对象。
尝试修复前请务必复制原文件做备份。如果修复过程中覆盖了原文件,就无法进行第二次尝试。

第 1 步:先用其他播放器打开试试

在进入修复操作前,先用 VLC 媒体播放器打开文件。VLC 有直接播放略有损坏的文件、或自动修正损坏部分的功能。在 VLC 中进入[工具] → [偏好设置] → [输入/编解码器],把‘损坏或不完整的 AVI 文件’选项改为‘总是修复’,能提高播放成功率。

如果在 VLC 中能播放,就用同一菜单的‘转换/保存’功能另存为新文件。仅凭这一步就能变成正常文件的情况意外地多。像无畏契约片段(无畏契约录制)或一局绝地求生(绝地求生录制)这样仅此一次的场面,在这一步抢救成功就已足够。

第 2 步:用重新封装(remux)重建索引

重新封装是在保持视频、音频数据不变的前提下,重新套上容器(包装纸)以重建索引的操作。没有画质损失、速度也快,是修复未收尾文件的首选方法。如果是用 OBS 录制的,OBS 本身就有这个功能。

  • 打开 OBS Studio,选择顶部[文件] → [重新封装录像(Remux Recordings)]。
  • 载入损坏的文件,把输出格式指定为 mp4,然后点击‘重新封装’。
  • 如果是 mkv 文件,成功率尤其高。因为 mkv 即使中途中断,也能原样读出到中断前的数据。

如果没有 OBS 或想更强力一些,可以用免费工具 ffmpeg。在命令行中输入 ffmpeg -i 损坏文件.mkv -c copy 修复.mp4 一行,就能原样复制数据并重新封装为新 mp4。多亏 -c copy 选项,无需重新编码即可保持原始画质。

录制设置
OBS Studio · Wikimedia Commons (GPL, OBS Project)

第 3 步:使用专用修复工具

如果重新封装也打不开,就轮到损坏视频专用修复工具了。这些工具会以一个正常文件作为‘参考样本’,把缺失的头部、编解码器信息填进损坏文件。所以只要有一个用相同程序、相同设置录制的完好视频,成功率就会大幅提高。

  • BandiFix(반디픽스):免费修复因异常结束损坏的 mp4、avi。也可以对 Bandicam 以外其他程序的录像尝试。
  • Wondershare Recoverit:分析损坏原因并恢复数据的付费修复程序,高级修复模式会利用样本视频。
  • 在线修复服务(Clever Online Video Repair 等):无需安装,可上传 mp4、mov 尝试修复。
放进修复工具的‘样本视频’最好是与损坏文件用相同程序、相同分辨率、帧率、编解码器录制的正常文件,效果才好。平时保留一个简短的正常录像,紧急时会有大帮助。

预防 1:以 mkv 录制,之后再转换为 mp4

与其抢救已经损坏的文件,从一开始就让它不损坏要可靠得多。最有效的习惯就是一开始不用 mp4 而用 mkv 录制。mp4 会在录制正常结束时把索引在最后一次性写入,所以在那之前被强制关闭就会整段报废。相反,mkv 的结构是在录制途中不断安全地写入数据,即使中途中断,到那个时间点为止的内容也能完好保留。

录制用 mkv 即可,只在需要剪辑或上传时用上面的重新封装转换为 mp4。在 OBS 设置中开启[设置] → [高级] → 录制的‘录制后自动重新封装为 mp4’项,这个过程就会自动处理。

预防 2:把可变帧率(VFR)固定为 CFR

如果能播放但画面与声音对不上、或在剪辑软件里视频错位,多半是可变帧率(VFR)造成的。当每秒帧数随游戏负载忽高忽低地记录时,转换为 mp4 时时间戳就会错位,导致同步被打乱。这时强制改为固定帧率(CFR,恒定的每秒帧数)即可解决。

  • 在 OBS [设置] → [高级] → 视频中确认‘色彩格式、帧’相关项,把输出帧率固定为 60 这样的整数。
  • 如果是已转换的文件,可以用 ffmpeg -i 输入.mkv -fps_mode cfr -r 60 输出.mp4 这样的 -fps_mode cfr -r 60 选项制作固定帧率的 mp4。
  • 用于剪辑、上传的视频尽量设为 CFR,能最确切地防止同步问题。

DOR 的文件损坏风险较小

到目前为止的修复与预防方法,最终都汇聚到‘让录制安全地写到结尾完成收尾’这一个目标上。DOR 把这部分交给程序自己处理。它的设计是录制结束后文件自动收尾、保存,即使在强制关闭或 PC 突发问题的情况下,文件整段损坏的风险也较小。即使用户不逐一操心 mkv、CFR 这类设置,也能留下安全的成品。

DOR 安全保存
DOR 录制会自动收尾,文件损坏风险较小

尤其对于一次性精彩场面很重要的游戏,这种稳定性感受更深。像无畏契约的关键残局(无畏契约录制)或绝地求生吃鸡瞬间(绝地求生录制)这种不会再现的场面,与其指望修复的可能性,不如从一开始就处于安全保存的环境里更让人安心。

总结

录制视频损坏时,按 (1) 用体积判断修复可能性 → (2) 用 VLC 打开试试 → (3) 重新封装 → (4) 专用修复工具的顺序尝试,大多能抢救回来。而且下次只要养成 mkv 录制后转换 mp4、固定 CFR 这两个习惯,损坏本身就几乎消失了。如果懒得再操这份心,那么使用像 DOR 这样自动安全处理录制收尾的工具,是最省事的解法。

FAQ

常见问题

录制文件体积很大却显示 0 秒、无法播放。能救吗?

能,抢救可能性较高。体积正常却显示 0 秒,是典型的未收尾状态,即视频数据已存在、只是最后的索引(目录)没写入。用 OBS 的‘重新封装录像’,或 ffmpeg -i 文件 -c copy 新文件.mp4 命令重新封装,大多能修复。

mp4 和 mkv 中用哪种格式录制更安全?

mkv 安全得多。mp4 在录制正常结束时一次性写入索引,中途中断就整段报废;而 mkv 在录制途中不断写入数据,即使被强制关闭,到那个时间点为止的内容也能完好保留。推荐以 mkv 录制后,需要时再转换为 mp4。

做重新封装(remux)会让画质下降吗?

不会下降。重新封装是在保持视频、音频数据不变的前提下,只重新套上容器(包装纸)的操作,没有重新编码。ffmpeg 的 -c copy 选项正是‘原样复制数据’的意思,原始画质会原样保持。

视频能播放,但声音和画面对不上。为什么?

很可能是转换以可变帧率(VFR)录制的视频时,时间戳错位导致的同步问题。像 ffmpeg -i 输入 -fps_mode cfr -r 60 输出.mp4 这样以固定帧率(CFR)重做即可解决。下次请在录制设置中把输出帧率固定为整数。

用了修复工具也打不开的文件,是不是永远救不回来了?

如果体积只有 0KB 或几 KB,说明数据本身没记录下来,修复较困难。但如果体积正常却仍打不开,请用相同程序、相同设置录制的正常视频作为‘样本’再试一次修复工具。有样本会大幅提高成功率。从一开始就用像 DOR 这样自动安全收尾录制的工具,能减少这类情况本身的发生。

Games

录制这些游戏

继续阅读

相关文章

立即开始使用 DOR

安装后只需启动游戏,精彩瞬间就会自动生成为剪辑