我正在使用 Matlab(R2015a,Windows7)中的计算机视觉系统工具箱来屏蔽视频文件中的帧并将它们写入新的视频文件。通过遮罩,我用 0 和 1 替换了大约 80% 的图像:
videoFileReader = vision.VideoFileReader(fin);
videoFileWriter=vision.VideoFileWriter(fout, ...
'FileFormat', 'MPEG4', 'FrameRate', videoFileReader.info.VideoFrameRate);
frame = step(videoFileReader);
frame_new=mask(frame); %user function
step(videoFileWriter, frame_new);
原始帧和修改帧的大小 (1080 x 1920 x 3) 和格式(单个)保持不变。然而被屏蔽的视频比原始视频大得多,例如1GB的原始视频在屏蔽后变成了近4GB。这些大的新文件无法打开(Windows 7、VLC 媒体)。Handbrake 也不会将它们识别为合法的视频文件。
当我只屏蔽大约 20% 的图像时,被屏蔽的视频仍然很大(高达 2.5Gb),但我打开这些没有问题。
我尝试添加“VideoCompressor”、“MJPEG Compressor”,但这会发出警告。
videoFileWriter=vision.VideoFileWriter(fin, 'FileFormat', 'MPEG4', ...
'FrameRate', videoFileReader.info.VideoFrameRate, 'VideoCompressor', 'MJPEG Compressor');
<...>
Warning: The VideoCompressor property is not relevant in this configuration of the System object.
我们有 TB 的视频数据需要去识别,所以任何建议都将不胜感激。谢谢!