AskCleanAskClean问净

先看清视频坏在哪,再修

选一个视频,这一页会把整条码流走一遍,找出画面数据坏掉的帧,并在时间轴上标出它们的位置。修复会导出一个只含能正常解码的帧的新文件,播放时不会卡在损坏处。全程在你的设备上完成,不上传。

这一页到底在检查什么

在 MP4 或 MOV 里,每个 H.264 / HEVC 帧是这样存的:一个长度数字,紧跟着那么多字节的画面数据,然后是下一个长度,依此类推,首尾相接直到这一帧的数据用完。这条链必须严丝合缝地落在末尾。如果某个长度是 0,或者指到数据结束之后,那这一帧的字节就不是文件声称的那些东西。

这一页从头到尾逐帧量的,就是这一件事。这也是它能告诉你损坏**在哪**、而不只是「视频播不了」的原因:每个坏帧都有位置和时间戳,所以损坏可以画在时间轴上。

如果你曾经把一个坏视频喂给 ffmpeg、看见 `Invalid NAL unit size (0 > 1241)` 一行行滚过,那报的就是同一件事。播放器碰上它通常是卡住、跳过,或者糊成一片色块 —— 因为对着不存在的字节,它们也只能做到这些。

这项检查不需要视频解码器,所以它对你的浏览器压根播不了的文件同样有效。它读的是字节,不是画面。

两种「坏」,长得完全不一样

**画面数据被写坏的帧。** 有什么东西写错了字节 —— 拷到 U 盘时中断、存储卡开始出问题、同步跑到一半死掉。文件的长度和索引都完好,视频也能正常打开,但里面某些帧已经不可用。在时间轴上,它们是散落在损坏发生处的标记。

**被截断的视频。** 下载或传输提前停了。文件头仍然声称原来的时长,所以播放器显示的是完整长度的进度条,但画面数据到中途就没了。这一页靠「文件声称的时长」与「实际能读到的最后一帧」之差把它认出来 —— 在时间轴上是末尾一整块灰色。

把两者分开说是有必要的,因为它们对应的预期完全不同。散落的损坏往往只让你这里少一秒、那里少一秒。而一个在 40% 处被截断的文件缺的是整整 60% 的视频,任何工具都造不出从未被写下来的东西。

为什么修完会变短

视频帧不是各自独立的。关键帧能单独成立,但它后面的帧是以「与它的差异」的形式存着的 —— 所以一旦关键帧的数据坏了,所有依赖它的帧同样不可用,哪怕这些帧自己的字节完全没问题。这就是为什么一个只有十个坏帧的文件,可能丢掉远多于十帧。

修复只保留真正能解出来的帧,并把空洞合上,让产物能一口气播完、而不是在损坏处冻住。代价是产物比原片短,短多少取决于丢了多少。这个数字在你决定之前就会显示,产物页上还会再说一次。

不重新编码。留下来的帧是逐字节拷贝的,所以剩下这部分的画质就是原画质 —— 而整件事在几秒内完成,不是几分钟。

**声音会保留,而且保持同步。** 合上空洞意味着画面不再对得上原始长度的声音,所以音轨会沿着完全相同的边界裁开 —— 每一段保留下来的画面都带着它自己那一段声音,平移量也一样。段内两者是锁死的;只有段与段的接缝处音频可能有偏差,而且不会超过半个音频包、约十毫秒。这比任何人能察觉到的口型不同步小一个数量级。

这一页做不到的事

**压根打不开的文件不在射程内。** 每个 MP4 都带一份索引,说明每一帧在什么位置。如果这份索引坏了或者丢了 —— 录制没有正常收尾时很常见 —— 就没有可以走的地图,这一页会直接说清楚,而不是转着圈假装在忙。要救这种文件,得靠原始来源,或者靠一个能通过猜测帧边界来重建索引的工具。

**音轨的损坏检查不出来。** 声音会被带过去并保持同步,但它从来没有被**检查**过 —— 要找出一个坏掉的音频包,得把它送进解码器,那是和读长度前缀完全不同、也慢得多的活。一个画面完好、声音坏掉的视频,在这项扫描里会显示为「完整」。

**只支持 H.264 与 HEVC。** 只有这两种编码是用长度前缀存帧的,而那正是这项检查读的东西。MJPEG、MPEG-4 Part 2 之类的编码用别的方式排布帧,拿这把尺子量会全部显示为损坏,所以这一页选择拒绝。

常见问题

我的视频会被上传到什么地方吗?

不会。文件由你自己设备上的浏览器读取,修复副本也写在本机。没有任何东西发往服务器 —— 你可以在扫描时打开浏览器的网络面板确认,或者先断网再试。

修复会让画质变差吗?

不会。留下来的帧是原样拷贝的,不做任何重新编码,所以剩下的部分逐比特就是原始画面。你损失的是时长,不是画质。

修复后的文件还有声音吗?

有,而且是同步的。音轨沿着与画面完全相同的边界裁开、平移量也一样,所以在每一段保留下来的内容里两者是锁死的。只有段与段的接缝处可能略有偏差,最多半个音频包 —— 大约十毫秒,远低于可察觉的程度。拿不回来的是那些被丢掉的段落对应的声音,因为它们配套的画面也没了。

扫描说文件是完整的,但它还是播不了。为什么?

这项检查覆盖的是 H.264 与 HEVC 视频的画面数据。一个文件可以通过检查却仍然播不了,原因可以是别的:播放器不支持这个编码、音轨损坏,或者容器本身有古怪之处。这里的「干净」结论是把问题范围缩小,而不是把问题关掉。

扫描要多久?

每一帧都要读,所以耗时随文件体积而不是随时长变化。在一台普通机器上,扫描速度是每秒几百兆字节,一个 1 GB 的文件大约几秒。任何时候都可以取消。

视频里从来没下载下来的那部分,能恢复吗?

不能。如果传输提前停了,缺失的画面数据从来没有被写到你的磁盘上 —— 你的设备上没有可供恢复的东西。这一页能做的是告诉你到底缺了多少,并把确实到达了的那部分导出成一个干净、能播的副本。

我的文件连打开都打不开。现在怎么办?

那指向的是文件的索引而不是它的帧,也正是这一页唯一帮不上忙的情形。如果还有机会,尽量重新获取原始文件。做不到的话,下一步是找一个专门的恢复工具,靠扫描帧边界重建索引 —— Mac 版也能绕开浏览器处理不了的损坏重新编码。

更多视频工具

AskClean 团队 · 更新于 2026-08-21