gpt4 book ai didi

MATLAB:VideoReader 错误检查

转载 作者:行者123 更新时间:2023-12-03 15:54:58 29 4
gpt4 key购买 nike

我正在对数千个小的 .avi 文件进行一些图像处理。一小部分文件似乎已损坏。

一种类型的损坏似乎是无法读取视频的特定帧。我为此添加了一个 try-catch block ,它运行良好。

然而,另一种类型的损坏是,根据 VLC,“损坏或丢失 AVI 索引”。当 VideoReader 尝试打开具有此类损坏的文件时,它会使 Matlab 完全崩溃,并出现错误,“MATLAB 遇到内部问题,需要关闭。”以及详细信息,“在 4 月星期三检测到分段违规......”

所以我的问题是,有没有办法检查/跳过会导致崩溃的视频?

最佳答案

您可以使用ffmpeg用于检查视频文件的完整性。

见:How can I check the integrity of a video file (avi, mpeg, mp4…)?
下载 ffmpeg 的静态版本, 并输入 ffmpeg.exe在您的工作目录中。

执行ffmpeg在 Matlab 中使用 system命令,并检查返回状态。
如果状态不为零,则视频文件已损坏。
您还可以解析输出错误消息以获得更精细的逻辑。

这是一个代码示例:

filename = 'input.avi';

if (isunix)
[status, cmdout] = system(['ffmpeg.exe -v error -i ', filename, ' -f null - 2']);
else
[status, cmdout] = system(['ffmpeg.exe -v error -i ', filename, ' -f null - 2>&1']);
end

if (status ~= 0)
%Dispaly cmdout if file is damaged.
disp([filename, ' is corrupted. Error: ', cmdout]);
end

关于MATLAB:VideoReader 错误检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383305/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com