Я использую Computer Vision System Toolbox в Matlab (R2015a, Windows7) для маскировки кадров в видеофайле и записи их в новый видеофайл. По маскирования, я заменить около 80% изображения с 0 и 1:Matlab vision.VideoFileWriter output is too large
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 х 1920 х 3) и формат (один) из исходных и модифицированных кадров остаются неизменными. Однако видео в маске намного больше, чем оригинальные, например. 1GB оригинальное видео превращается в почти 4 ГБ после маскировки. Эти большие новые файлы не могут быть открыты (Windows 7, VLC media). Handbrake не распознает их как законный видеофайл.
Когда я маскирую только около 20% изображения, замаскированное видео по-прежнему выходит большое (до 2,5 ГБ), но у меня нет проблем с их открытием.
Я попытался добавить «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.
У нас есть ТВ-данные видеоданных, чтобы идентифицировать, поэтому любое предложение было бы высоко оценено. Спасибо!
Вы маскируете все рамки равномерно? С маской вы получаете локальное сжатие, но вы можете потерять некоторую корреляцию между кадрами по краям маски. – Navan
@Navan - Согласен. – rayryeng
Я применяю тот же алгоритм ко всем кадрам, который считается однородным? Маскированные части - 0/1, но есть небольшие изменения от кадра к кадру в замаскированных областях. – Larissa