0

我有三个示例视频,good.avidamaged1.avidamaged2.avi。第一个将在 VLC 中播放,但后两个都错误并显示相同的“损坏或丢失 AVI 索引”消息。

我有数千个需要在 MATLAB 中处理的视频,所以我尝试使用 FFmpeg 进行错误检查,如下所示:ffmpeg -v error -i vidname.avi -f null - 2>&1

现在这是我不明白的部分:
good.avi它完成时没有输出 -OK
damaged1.avi它输出[mjpeg @ 0x7fc1dd813800] overread 1-OK
damaged2.avi它完成时没有输出,如good.avi-?????

请有视频编解码器/FFmpeg 经验的人帮助我了解这里发生了什么,以便我可以开发更强大的错误检查?

它们在 VLC 中也有相同的编解码器细节: 在此处输入图像描述

4

1 回答 1

2

这是一个长镜头,但我怀疑其中一个 JPEG 图像已损坏(由于overread 1错误消息)。

尝试从中提取图像damaged1.avi

ffmpeg -i damage1.avi -vcodec copy image%d.jpg

然后mogrify在提取的图像上运行:

for i in image*.jpg; do mogrify "$i"; done

最后,重新制作视频:

cat image*.jpg | ffmpeg -f image2pipe -c:v mjpeg -i - output.avi

如果这可行,那么您可以从damage1.avi 中提取音频并将其复用到output.avi 中。

于 2017-04-18T16:16:21.433 回答