FileFix Ultimate
简体中文

如何修复损坏的 AVI 文件并重建索引

AVI 文件能从头播放却无法跳到中间、时长显示为 0,或者要先弹出警告才能打开,通常是索引缺失或损坏造成的。在传统 AVI 中,记录每一帧位置的列表叫 idx1,会在录制或复制结束时写到文件最末尾。即使这一步没有完成,帧数据仍在文件里,可以据此重新生成索引。

最后更新:

现在该怎么做

  1. 用副本操作,原始 AVI 保持不动。
  2. 在损坏文件修复中打开副本,让它检查文件结构。
  3. 如果 idx1 索引缺失或错误,就执行修复,软件会保存一个重建了索引、修正了大小的新 AVI。
  4. 超过 1 GB 的 OpenDML AVI 只做检查和说明,不做修复。

操作步骤

  1. 先复制文件

    把相机存储卡、旧硬盘或下载文件夹里的 AVI 复制到另一块磁盘上的工作文件夹。之后所有步骤都用副本,以后想换别的办法时原文件仍然在。

  2. 记下症状

    看看播放器里是什么情况:能播放但进度条不动、一拖就回到开头;时长为 0 或明显偏短;播放器提示索引损坏;或者完全打不开。有声音但画面全黑,多半是缺少解码器,而不是文件损坏。

  3. 在损坏文件修复中检查

    打开 FileFix Ultimate,进入损坏文件修复并选择副本。检查会读取 RIFF 头、流头和 movi 数据列表,然后告诉你 idx1 是否存在、是否与数据一致,以及声明的大小是否与实际文件长度相符。

  4. 执行修复

    如果索引缺失或不一致,就开始修复。软件会逐个遍历 movi 列表中的音频和视频块,按实际找到的内容生成新的 idx1,修正 RIFF 和列表大小,并在副本旁边另存为新的 AVI。副本本身不会被改动。

  5. 检查修复结果

    用常用的播放器打开新文件,试着拖到中间和接近结尾的位置。如果录制是中途断掉的,中断前的最后片刻可能缺失,最后一帧也可能显示异常。结果会显示验证状态,让你知道是否通过了结构检查。

为什么缺了索引 AVI 就坏了

AVI 是一种 RIFF 容器:开头是描述各条流的头部,接着是很长的 movi 列表,里面 00dc 这类视频块和 01wb 这类音频块交替排列,最后是 idx1,一张记录每个数据块位置和大小的表。播放器靠这张表来拖动进度、显示时长、保持音画同步。

相机、摄像头和录屏软件通常只有在正常停止录制时才写入 idx1。电池耗尽、程序崩溃或过早拔卡,都会留下有帧数据却没有索引表的文件。中途停止的下载或复制也一样。有的播放器能从头播放这类文件但无法拖动,有的则直接拒绝打开。

重建索引能解决什么、不能解决什么

重建 idx1 后,拖动进度和正确时长都会恢复,多数文件在原先拒绝它的播放器里也能正常播放。但从未写入或已被覆盖的帧无法找回,中途断掉的录像仍会比实际拍摄时间短。如果帧数据本身受损,比如存储卡上有坏区,修复后的文件在那些位置仍可能出现马赛克或卡顿。

VLC 等部分播放器在打开时会询问是否修复损坏的 AVI 索引,但这种修复通常只在文件打开期间有效。保存一份修复好的副本,所有播放器和剪辑软件都能直接使用,也不必每次重复操作。

超过 1 GB 的 OpenDML 文件

原始 AVI 格式在约 1 GB 时达到上限。更大的录像使用 OpenDML 扩展,也常被称为 AVI 2.0,它把数据分成多个 RIFF 段,并使用另一种多级索引。FileFix Ultimate 能识别这类文件并报告结构,但不会改写它们。这时,用 ffmpeg 之类的工具做不重新编码、只把流复制到新容器的重新封装,是常见的替代办法;具体参数因文件而异,请先确认结果再删除任何文件。

无法修复的情况

  • 从未写入的帧,例如中断录像的最后几秒,无法重新生成。
  • 超过 1 GB 的 OpenDML AVI 只检查不修复。
  • 如果文件大部分是零或其他文件的数据(从碎片化的存储卡恢复后可能出现),就没有可索引的帧。
  • 有声音但画面黑屏的解码器问题不属于损坏,换一个支持该编码的播放器即可。

FileFix Ultimate 能做什么

  • 检查 RIFF 结构、流头、movi 列表和 idx1,并用通俗的话说明问题所在。
  • 根据实际存在的数据块重建缺失或损坏的 idx1,并修正声明的大小。
  • 修复后的 AVI 一律另存为新文件,绝不修改你打开的文件。
  • 可以先用签名搜索从存储卡或硬盘恢复已删除的 AVI,再修复其中丢了索引的文件。
  • 完全离线运行,个人使用免费,不限修复次数。

FileFix Ultimate 个人使用免费、可离线使用,并且不会向你正在恢复的驱动器写入数据。工作或商业用途需为每台电脑购买一年期许可。运行前请检查签名。

常见问题

VLC 提示 AVI 文件已损坏或索引损坏,是什么意思?

意思是 VLC 在文件末尾找不到可用的 idx1 索引。帧数据通常还在。在修复后的副本里重建索引,所有播放器就都能拖动了。

为什么修复后的 AVI 只能播放一部分?

修复只会为实际存在的数据建立索引。如果录制提前停止,或文件的一部分被覆盖,那些片段已经不存在,无法恢复。

修复会重新编码、降低画质吗?

不会。帧数据原样复制,只改写索引和大小,所以画质不变。

大于 1 GB 的 AVI 能修复吗?

如果是传统 AVI 可以。大多数超过 1 GB 的录像使用 OpenDML 扩展,这类文件只检查和说明,不做修复。

分享此页面