我有一个 .avi 文件,大约 110mb。当我尝试使用 VLC Media Player 播放它时,它提示“此文件已损坏。尝试修复吗?”,修复完成后仍然无法播放。
有没有其他软件可以播放视频?也许有专门做这方面工作的软件?我不太抱太大希望,因为我觉得如果能播放视频的话,VLC 应该也能做到,但我想我还是会试一试……
答案1
答案2
以下一些程序可能会有所帮助:
这里有关于修复损坏的 AVI 文件的详细教程:修复损坏的 AVI 文件 - AfterDawn:指南
您还可以尝试通过使用以下方法进行比特流复制来重建容器FFmpeg:
ffmpeg -i input.avi -c copy output.avi
答案3
虚拟配音可以对损坏的 AVI 文件执行相当神奇的操作。只需在 VirtualDub 中打开文件,让它保存,然后如果成功打开,将其重新保存为新的 AVI 文件。通常,您甚至不需要更改压缩设置。
答案4
关于如何修复损坏的 AVI 索引的所有好主意(我偏爱的是ffmpeg
),但在这里贡献一种方法来寻找avi 文件,这些文件有损坏的索引,可以对其进行测试并主动修复。在尝试使用mediainfo
ffprobe
和其他工具检测 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
。