FFmpeg错误检查

问题描述:

我有三个示例视频,good.avi,damaged1.avidamaged2.avi。第一个将在VLC中播放,但第二个两个都会出现与“AVI索引损坏或丢失”消息相同的错误。FFmpeg错误检查

我有成千上万的这些影片,我需要在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: enter image description here

+1

ffplay是否会播放damaged2.avi? – Mulvya

+0

排序,大约一半的时间冻结,没有错误信息。另一方面,对于damaged1.avi,它会在大约2/3处冻结并显示一条错误消息。 – Austin

+1

如果你重新包装,会发生什么情况:'ffmpeg -i damaged2.avi -c copy test2.avi' – Mulvya

这是一个长镜头,但我怀疑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中提取音频并将其复用到o中utput.avi。

+0

谢谢,但主要问题是能够自动识别这些损坏的文件。我真的不需要这一个特定的视频,但如果我尝试将它读入Matlab,程序崩溃,并且我有大约50,000个这样的视频需要处理,所以如果我让它运行一整夜,并且其中一个被读入会崩溃并停止我的进展。所以主要我需要一种方法来检查这种损害。例如在damaged1.avi中,我可以正确检查它,但在damaged2.avi中,我无法。 – Austin