如何修复损坏的AVI文件?


24

我有一个大约110mb的.avi文件。当我尝试使用VLC Media Player播放时,它显示类似“此文件已损坏。试图修复吗?”之类的内容。在完成它的事情后,它仍然无法播放。

是否有其他软件可以从中获得任何视频?也许是专门从事这类事情的人?我不是很抱有希望,因为我认为如果VLC可以发挥任何作用,我还是会尝试一下...

Answers:


12

过去我很幸运,因为使用DivFix出现了很多损坏/不完整的AVI ,但是不确定在Windows XP之后的版本上是否能正常运行。

较新的版本是DivFix ++

DivXFix ++旨在通过重建文件的索引部分来修复损坏的AVI文件流。当尝试预览没有索引部分的电影时,这非常有用,例如当前正在从ed2k或bittorent网络下载某些文件。DivFix ++完全重写了“ DivFix”程序,因为它存在错误且性能低下。


2
太棒了 我为一个799 MB的视频文件执行了此操作,它的工作就像一个魅力。实际上,使用VLC播放此AVI文件时会出现相同的错误。它从未在Windows Media Player上播放过。现在,它在Windows Media Player中也可以完美播放。尼克-非常感谢!
卡尼尼2009年

@Kanini,很高兴DivFix有所帮助:)
Nick Josevski 09年

14

以下一些程序可能会有所帮助:

  • 打开文件时,VLC应该为您提供修复损坏的AVI文件索引的功能。
  • DivFix ++
  • AviFiXP(仅在Windows上运行)

此处提供了有关修复损坏的AVI文件的详细教程:修复损坏或损坏的AVI文件-AfterDawn:指南

您还可以尝试通过使用FFmpeg进行位流复制来重建容器:

ffmpeg -i input.avi -c copy output.avi

1
对于ffmpeg 0.6.2,请使用-vcodec copy -acodec copy代替-c copy。我使用(对于Windows)此版本。我有一堆文件要修复。DivFix ++崩溃了。ffmpeg很棒。谢谢。
sinelaw

ffmpeg修复了我的视频avi文件的损坏索引
Elias Estatistics

3

VirtualDub可以使用损坏的AVI文件来完成惊人的工作。只需在VirtualDub中打开文件,使其煮熟,然后如果成功打开它,则将其重新保存为新的AVI文件。通常,您甚至不需要更改压缩设置。


嗯,VirtualDub是一个不错的建议,但不能蹲下来。
Paolo Bergantino,

老兄,很遗憾听到这个消息。希望您能找到有用的东西-注意比不能使用的100兆文件更令人沮丧!
Electrons_Ahoy

2

有一个叫SuperDecoder的播放

能够播放混乱的文件和CD / DVD。您可以试一试。


2

我有一些AVI,VLC甚至都没有尝试修复,而DivFix ++给了我一些错误。通过ffmpeg传递它们不起作用,但是起作用mencoder了(非常快):

mencoder -idx input.avi -ovc copy -oac copy -o output.avi

mplayer在大多数系统上,例如brew install mplayer在Homebrew 上,mencoder是软件包的一部分。)

另请参阅:如何检查avi文件的完整性并在Linux中自动修复?


1

有关如何修复损坏的AVI索引的所有好主意(我的偏爱是ffmpeg),但是在这里提供了一种方法来查找具有损坏的索引的avi文件以对其进行测试并主动进行修复。在尝试使用mediainfo ffprobevlc和其他工具未能成功检测到vlc会抱怨的文件之后,我最终决定使用,vlc因为它是抱怨的文件。这是一个片段,可用作扫描和自动修复脚本的一部分。

if grep -q "avi demux error" \
    <(cvlc --vout null --aout null --stop-time 2 "${VIDFILE}" vlc://quit 2>&1 )
    # alternate ways to stop after two seconds
    #<(timeout 2 cvlc --vout null --aout null "${VIDFILE}" 2>&1)
    #<(cvlc --vout null --aout null "${VIDFILE}"  2>&1 & sleep 2; kill $!)
then
    echo "avi demux error: ${VIDFILE}"
    exit 1
fi

注意:由于其他版本的VLC 在--stop-time时存在错误,而其他系统可能没有,因此包含了其他停止方法(因此退出前不会播放整个视频)timeout


-1

到目前为止,我在Media Player Classic和The KMPlayer方面拥有丰富的经验。他们可以播放已部分下载或分解为一部分的文件(例如,通过hjsplit)。

我认为他们也许可以扮演您的角色。

虽然,这也取决于编解码器的类型,所以...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.