2013-08-13 3 views
1

Я выполняю проект, в котором у меня есть видео. Я делю видео на фреймы, а затем стеганография изображений применяется к кадрам и генерируются закодированные кадры. Затем закодированные кадры должны быть снова преобразованы в видео. Все методы применяются успешно, но единственная проблема заключается в том, что я получаю кодированное видео, которое очень велико, чем исходное видео. Я использую функцию movie2avi для генерации видео.Создание меньшего размера видеофайла из фреймов

Может кто-нибудь предложить любой способ генерировать видео, которое не очень велико по сравнению с оригинальным видео?

+1

Стеганографическое содержание, скорее всего, будет стерто любой схемой сжатия с потерями. Это то, что вы действительно хотите делать? – John

+1

@John: OP не указывает, какой кодек используется. 'movie2avi' включает опцию' 'None''. И это зависит от того, что такое стеганографический контент. Я представляю, что есть методы, которые работают со сжатым видео без манипуляции с самим кодеком. – horchler

+0

@horchler Поскольку OP беспокоился о размере видео, я предположил, что он не использовал «None», но ваш момент является самым прекрасным. – John

ответ

1

Это полностью зависит от того, что вы пытаетесь скрыть в исходном видео. Помните, что исходное видео использует кодек сжатия, который может использовать минимальный кадр изменения для фрейма и различные другие вещи, но если вы пойдете и попытаетесь скрыть что-то в этом видео с помощью стеганографии, вы усложняете алгоритм сжатия для этого, что, безусловно, приведет к большему файлу. Поэтому вам нужно быть осторожным, что вы пытаетесь сделать, и как вы пытаетесь его закодировать.

2

Во-первых, если вы используете movie2avi, у вас ограниченный набор очень слабых кодеков (форматов сжатия). Если у вас есть достаточно новая версия Matlab (R2009b +, я думаю), вы должны использовать класс VideoWriter. Выбор кодеков по-прежнему не очень хорош, но они имеют гораздо лучшее качество. Вы не указали, какой кодек (или ОС) вы используете, поэтому я не могу рекомендовать альтернативу.

Во-вторых, даже в идеальных условиях вы должны ожидать, что ваш файл фильма станет больше с тем, что вы делаете, если не применить дополнительное сжатие. Добавление стеганографического контента связано с добавлением шума, поэтому вы усложняете сжатие данных. В movie2avi и VideoWriter вы можете отрегулировать уровень сжатия или качество в зависимости от кодека. Кроме того, по умолчанию кодек movie2avi под Linux и OS X не использует сжатие, поэтому файл будет огромным, если вы его не изменили.

Если VideoWriter не соответствует вашим потребностям (или если ваша версия его не имеет), вы можете попробовать мой класс QTWriter на GitHub, который позволяет экспортировать фильмы QuickTime в Matlab. Он очень похож на VideoWriter, но позволяет создавать высококачественные фильмы QuickTime с использованием нескольких кодеков на основе изображений. Не используется межкадровое сжатие, а форматы PNG и TIFF без потерь (это может быть важно для вашего стеганографического приложения), будучи очень эффективным при кодировании контента, который часто генерируется в Matlab. Также есть формат JPEG, который лучше подходит для общих изображений. Затем файлы QuickTime могут быть преобразованы в другие форматы. Вы можете read more and see examples here и скачать single M-file here.

+0

У меня ИСПОЛЬЗОВАНИЕ ЭТОГО И ЭТО ГЕНЕРАТОРА ФАЙЛА, НО ДРУГИЕ ПРОБЛЕМЫ ВОЗНИКАЮТ, ЧТО НА ПОЛУЧЕНИИ РАЗМЕРОВ Я ТОЛЬКО ВИДЕО, И ИХ Я ИМЕЮ, ЧТОБЫ ВЫПОЛНИТЬ ДЕКОДИРОВАНИЕ И ДЛЯ ЭТОГО НАЗНАЧЕНИЯ, Я ПЕРВЫЙ Я ДОЛЖЕН РАЗДЕЛИТЬ ВИДЕО В РАМКАХ, НО ЕГО МОВЫЙ ФАЙЛ НЕ МОЖЕТ БЫВАТЬСЯ В РАМЫ, ТОГДА КАК ПОЛУЧИТЬ ФАРЫ ИЗ ФАЙЛА MOV – user2678163

+0

ПОЖАЛУЙСТА, НЕ ЗАПИВАЙТЕ прописными буквами. Вы использовали «это» - который «это»? 'VideoWriter' или мой' QTWriter'? Что вы делали раньше, когда вы использовали 'movie2avi' для создания файла? Вы посмотрели на «VideoReader»? Может, это другой вопрос, который вы задали здесь? – horchler