Zip motion block video codec что это

Обновлено: 18.05.2024

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

Чтобы научиться снимать хорошее видео, потребуется приложить определенные усилия, но все становится еще более сложным, когда вы захотите во всей красе продемонстрировать свой шедевр другим людям. Может быть, вам нужно загрузить его на YouTube, может вы собираетесь записать свой Blu-ray или DVD диск, возможно, захотите загрузить видео на мобильный телефон или планшетный компьютер.

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

Какая разница между кодеком и контейнером?

Начинающие пользователи часто бывают озадачены, когда пытаются выяснить разницу между кодеками и контейнерами. Сейчас слово Кодек стало чем-то общеупотребительным, а изначально термин являлся сокращением от понятия КОмпрессор-ДЕКомпрессор. Что же делают кодеки?

Они принимают цифровые медиа данные и либо сжимают их (для передачи и хранения), либо распаковывают для просмотра и перекодирования. Каждый кодек использует определенный метод кодирования и декодирования цифровых данных.


Несжатое (англ. raw означает необработанное или часто говорят « сырое») видео и аудио требует для хранения огромного дискового пространства. Несжатое видео высокой четкости формата 1080i, записываемое со скоростью 50 кадров в секунду, съедает до 410 гигабайт в час. Аудио с CD дисков, довольно устаревшее по современным стандартам, звучит около 74 минут при емкости диска 680 мегабайт. Однако, восьмиканальный звук, кодируемый с 24 битным разрешением, потребует уже 16 мегабит в секунду, или несколько гигабайт в час. Даже возможностей широкополосного соединения с интернет порой не хватит, чтобы послушать музыку в полном аудио разрешении. Вот почему цифровые видео и аудио записи должны быть сжаты для передачи и хранения.

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

Давайте разберемся с типами кодеков.

Общее понятие о кодеках

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


Ввод и архивирование видео

Большинство устройств современной бытовой электроники получает контент в каком-либо уже сжатом формате. Как правило, только профессиональные видеооператоры работают с несжатым HD видео. Конечно в идеале, если это возможно, при наличии очень емкой системы хранения, видеоархивы нужно хранить в оригинальном формате съемки, потому что при этом обеспечивается максимальное качество. Перекодировка видео из одного типа сжатия в другой может привнести едва различимые искажения, которые могут снизить качество изображения. (Подобные погрешности минимизирует хорошее программное транскодирование.) Сегодня предлагается множество кодеков, с определенной специализацией. С большинством из них обычный пользователь может никогда и не столкнуться. Следующий раздел посвящен кодекам, как системам сжатия/декомпрессии, используемым в составе специального программного обеспечения, которое позволяет кодировать или перекодировать видеофайлы.

x.264/ MPEG-4 AVC (Advanced Video Coding). Этот наиболее распространенный кодек используется в современных цифровых видео- и фотокамерах, в которых результаты съемки сохраняются в виде файлов на встроенных жестких дисках, картах памяти, и т.д.

MJPEG (Motion JPEG). Это более старый формат, используемый некоторыми цифровыми камерами и видеотехникой прежнего поколения. Он был разработан теми же специалистами (Joint Picture Experts Group), которые занимались еще ранее разработкой кодека JPEG для сжатия обычных статичных изображений, отсюда и название этого кодека.

DV и HDV. Стандарт DV был разработан консорциумом компаний производителей видеотехники для ленточных систем хранения информации и часто использовался в видеокамерах со слотом для ленточных мини кассет. Некоторые версии DV успешно использовались в профессиональных видеокамерах, была разработана версия HDV для поддержки высокого разрешения с ленточными кассетами.


Дисковые форматы

Перейдем к устаревающим уже DVD или чуть более модным Blu-ray дискам. Несмотря на растущую популярность потокового видео, возможность передачи медиа данных с помощью дисков в обозримом будущем по-прежнему будет востребована. Записанные на диски материалы спокойно можно передавать там, где нет каналов связи и смотреть везде, даже там, где нет возможности подключиться к интернету.

MPEG-2. Необходимо различать кодек MPEG-2, также известный как x.262, от формата контейнера MPEG-2. MPEG-2 используется для сжатия видео на дисках DVD и сигналов телевидения высокой четкости (DVB), передаваемого по эфирным каналам. Первоначально MPEG-2 применяли и для сжатия на Blu-ray дисках, хотя большинство современных Blu-ray фильмов не используют MPEG-2.

x.264/MPEG-4 AVC. x.264 используется при сжатии видео для Blu-ray дисков. По сути это тот же кодек, который применяется для сжатия видео в современных видеокамерах. Данный метод очень масштабируемый и при высоком битрейте сжатое по стандарту x.264видео выглядит просто фантастически.

Microsoft VC-1. Microsoft VC-1 включает три разных по степени сжатия кодека. VC-1 Advanced Profile, также известный как Windows Media Video 9 Advanced Profile или просто WVC1 является одним из трех кодеков, применяемых для кодирования содержимого Blu-ray дисков. VC-1 в качестве альтернативы технологии Adobe Flash используется в интернет-платформе Microsoft Silverlight.


Потоковое и веб видео

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

MPEG-1. Это старый боевой конь для доставки видео в сети интернет. Хотя YouTube, Netflix, и другие поставщики относительно качественного потокового видео уже отказались от MPEG-1, масса видео стандартного разрешения на базе MPEG-1 все еще доступна на других сайтах.

WMV (Windows Media Video). Есть Windows Media Video кодек и контейнерный формат файла. Хотя, этот метод сжатия был и не так используем, как MPEG-1, в сети все еще есть много WMV контента. Но при создании своих видеоматериалов, его очевидно также не стоит применять.

x.264/ MPEG-4 AVC. x.264 обеспечивает при относительно низкой скорости передачи, достаточно высокое качество видео. x.264, вероятно, становится наиболее распространенным кодеком. Adobe поддерживает его во Flash, x.264может использоваться с изображениями HTML 5, на x.264ориентируется YouTube и Apple полностью поддерживает этот метод компрессии. Однако при создании видео сжатого в форматах x.264вы не сможете воспроизводить их на старых устройствах, это ставка на будущее.

Правильный контейнер: гибкий и удобный

Далее кратко рассмотрены наиболее распространенные сегодня контейнерные форматы медиафайлов. У каждого из них есть свои достоинства и недостатки. Выбор зависит от предполагаемой задачи. Контейнерные файлы, кроме сжатого видео, вмещают и цифровой звук, сжатый соответствующими аудио кодеками, а также меню и дополнительную информацию.

Контейнеры для архивирования и ввода

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

Advanced Systems Format (ASF) – разработанный Microsoft контейнерный формат. Встречается несколько расширений, включая .asf, .wma и.wmv. Отметьте, что файл с расширением .wmv, вероятно, сжат кодеком WMV (Windows Media Video), но сам файл помещен в контейнерный файл ASF. Файлы ASF, в теории, могут содержать видео и аудио файлы, сжатые любым кодеком. Однако, практически воспроизведение иногда может стать проблемным, особенно с видео, сжатым кодеками x.264. Если вы планируете пользоваться продуктами Microsoft, ASF прекрасный выбор, но могут быть проблемы с медиа файлами на основе иных кодеков.

Audio Video Interleave (AVI) – один из более старых контейнерных форматов Microsoft. Вероятно, его уже не стоит использовать в новых проектах.


QuickTime: компания Apple продвигает собственный контейнерный формат QuickTime, который поддерживает множество кодеков для аудио и видео. Apple - убежденный сторонник x.264, таким образом, файлы QuickTime (.mov, .qt) могут содержать видео, сжатое кодеком x.264.

MP4. Этот контейнерный формат разработан Motion Pictures Expert Group, известен также как MPEG-4, часть 14. Видео внутри файлов MP4 кодируется кодеком x.264, а аудио – кодеком AAC, но могут использоваться и другие стандарты сжатия звука.

VOB и BDAV MPEG-2. Эти контейнерные форматы используются для упаковки данных на DVD и Blu-ray дисках, соответственно. В файлах Blu-ray дисков (.m2ts) могут содержаться видеозаписи сжатые кодеками x.264и VC-1, звук может быть сжат одним из кодеков Dolby или использоваться несжатый многоканальный сигнал в формате PCM.

AVCHD: Этот стандарт контейнера применен во многих видеокамерах. Снимаемое видео предварительно сжимается кодеком x.264. Аудиосигнал для контейнера кодируется кодеком Dolby Digital (AC3) или используется несжатый – PCM.


Flash: Компания Adobe имеет собственный контейнерный формат Flash, который поддерживает множество кодеков. Большая часть недавно созданного Flash видео кодирована с использование видеокодека x.264и аудиокодека AAC, но не стоит ожидать, что на всех сайтах используются только эти кодеки, особенно для ранее созданного видео.

Прочие контейнеры: Среди прочих форматов контейнеров, широко используемых особенно для доставки видео через интернет, можно упомянуть популярный во многом за счет своей универсальности и открытого кода формат Matroska (.mkv, .mk3d, .mka, .mks), а также OGG и DiVX. Файлы с расширением .divx вмещают видео, ужатое одноименным кодеком с пиратской родословной, который позволяет получить достаточно высокое качество видео при эффективной компрессии видеоматериалов. Долгое время Divx официально не признавался и его использование не приветствовалось. Однако сегодня многие известные производители уже встраивают аппаратные кодеки DiVX в свою видеотехнику.

Какой кодек и контейнер выбрать

Если вы будете размещать свое видео на домашнем сервере, с тем чтобы впоследствии смотреть его на экране телевизора, подключаемого непосредственно к сети или через медиаплеер, необходимо выяснить какие форматы распознают телевизор и плеер. Практически всеми устройствами поддерживается сегодня кодирование в соответствии со стандартом MPEG-2, но в этом случае потребуется достаточно большой объем для хранения видео в HD разрешении. Очевидно, наиболее подходящим в ближайшем будущем можно считать различные варианты кодека x.264, в котором реализован алгоритм сжатия, поддерживаемый всеми популярными контейнерами.


Если больше интересует воспроизведение готового видео, и вы планирует нарезать (ripping) фильмы из своей персональной коллекции DVD дисков для передачи по домашней сети, вас может устроить контейнер MP4, как удачный компромисс между степенью сжатия и качеством.

libavcodec предоставляет возможность простого кодирования в множество интересных видео и аудио форматов. Вы можете кодировать следующими кодеками (более или менее свежий список):

7.3.1. Видео кодеки libavcodec

Название видео кодекаОписание
mjpegMotion JPEG
ljpegJPEG без потери качества
jpeglsJPEG LS
targaTarga рисунок
gifGIF рисунок
bmpBMP рисунок
pngPNG рисунок
h261H.261
h263H.263
h263pH.263+
mpeg4ISO стандарт MPEG-4 (DivX, Xvid совместимый)
msmpeg4вариант пре-стандарта MPEG-4 от MS, v3 (он же DivX3)
msmpeg4v2вариант пре-стандарта MPEG-4 от MS, v2 (используемый в старых ASF файлах)
wmv1Windows Media Video, версия 1 (он же WMV7)
wmv2Windows Media Video, версия 2 (он же WMV8)
rv10RealVideo 1.0
rv20RealVideo 2.0
mpeg1videoMPEG-1 видео
mpeg2videoMPEG-2 видео
huffyuvсжатие без потерь
ffvhuffhuffyuv без потерь, модифицированный FFmpeg
asv1ASUS Видео v1
asv2ASUS Видео v2
ffv1видео кодек без потерь из FFmpeg
svq1Sorenson видео 1
flvSorenson H.263 используемый в Flash Видео
flashsvFlash Screen Video
dvvideoSony Digital Video
snowэкспериментальный кодек FFmpeg, основанный на вейвлетах
zmbvZip Motion Blocks Video
dnxhdAVID DNxHD

Первый столбец содержит названия кодеков, которые следует указывать после vcodec опции, например: -lavcopts vcodec=msmpeg4

Пример с MJPEG сжатием:

7.3.2. Аудио кодеки libavcodec

Название аудио кодекаОписание
ac3Dolby Digital (AC-3)
adpcm_*Форматы Adaptive PCM, смотрите дополнительную таблицу
flacFree Lossless Audio Codec (FLAC)
g726G.726 ADPCM
libamr_nb3GPP Adaptive Multi-Rate (AMR) узкополосный
libamr_wb3GPP Adaptive Multi-Rate (AMR) широкополосный
libfaacAdvanced Audio Coding (AAC) - используя FAAC
libgsmETSI GSM 06.10 full rate
libgsm_msMicrosoft GSM
libmp3lameMPEG-1 audio layer 3 (MP3) - используя LAME
mp2MPEG-1 audio layer 2 (MP2)
pcm_*PCM форматы, смотрите дополнительную таблицу
roq_dpcmId Software RoQ DPCM
sonicэкспериментальный кодек от FFmpeg с потерями (lossy)
soniclsэкспериментальный кодек от FFmpeg без потерь (lossless)
vorbisVorbis
wmav1Windows Media Audio v1
wmav2Windows Media Audio v2

Первый столбец содержит названия кодеков, которые следует указывать после acodec опции, например: -lavcopts acodec=ac3

Пример с AC-3 сжатием:

В отличие от видео кодеков libavcodec , ее аудио кодеки не очень разумно используют отданные им биты, в силу неудачной реализации некоторой минимальной психоакустической модели (если она вообще есть), которая является характерной чертой большинства остальных реализаций кодеков. Однако заметьте, что все эти аудио кодеки очень быстры и работают прямо из коробки везде, где MEncoder скомпилирован с libavcodec (а почти всегда так оно и есть), и не зависят от внешних библиотек.

7.3.2.1. Дополнительная таблица PCM/ADPCM форматов

7.3.3. Опции кодирования libavcodec

В идеале, Вы, наверное, хотели бы иметь возможность просто сказать кодировщику переключиться на "высокое качество" и начать кодирование. Это было бы замечательно, но, к сожалению, трудно реализуемо, поскольку различные опции кодирования, в зависимости от исходного материала, дают в результате различное качество. Так происходит потому, что сжатие зависит от визуальных свойств видео. Например, аниме и живая съемка имеют сильно отличающиеся свойства и, поэтому, требуют разные опции для получения оптимального результата. Хорошая новость состоит в том, что некоторые опции, такие как mbd=2, trell и v4mv, никогда не следует опускать. Детальное описание основных опций кодирования смотрите ниже.

Опции для настройки:

vmax_b_frames : хороши 1 или 2, в зависимости от фильма. Заметьте, если хотите, чтобы Ваш фильм декодировался DivX5, Вы должны активировать поддержку закрытых GOP, используя опцию cgop libavcodec , но также должны деактивировать определение сцен, что не является хорошей идеей, поскольку несколько вредит эффективности.

vb_strategy=1 : помогает в высокодинамичных сценах. Для некоторых видео файлов vmax_b_frames может повредить качеству, но vmax_b_frames=2 вместе с vb_strategy=1 поможет в этом случае.

dia : диапазон поиска движения. Большие значения лучше и медленнее. Отрицательные значения — это совершенно другая шкала. Хорошими значениями являются -1 для быстрого кодирования или 2-4 — для медленного.

predia : предпроход поиска движения. Не так важен, как dia. Хорошими являются значения от 1 (по умолчанию) до 4. Требует preme=2, чтобы быть действительно полезным.

cmp, subcmp, precmp : Функция сравнения для поиска движения. Поэкспериментируйте со значениями 0 (по умолчанию), 2 (hadamard), 3 (dct), и 6 (соотношение сигнал-шум). 0 — самый быстрый и достаточен для precmp. В случае cmp и subcmp, 2 является хорошим для аниме, а 3 для живой съемки. 6 может оказаться лучше, а может и нет, но он медленнее.

last_pred : Количество предсказателей движения, берущихся из предыдущего кадра. 1-3 или около того помогут Вам ценой небольшой потери в скорости. Большие значения медленны и не дают дополнительного улучшения.

cbp, mv0 : Контролирует выбор макроблоков. Незначительное снижение скорости с небольшим приростом в качестве.

qprd : адаптивное квантование, основанное на сложности макроблока. Может сделать лучше или хуже в зависимости от видео и других опций. Она также может привести к появлению артефактов, если Вы не установите vqmax в некоторое разумно малое значение (хорошо — 6, может быть даже 4); vqmin=1 также может помочь.

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

vqcomp : Настраивает управление битпотоком. Какие значения являются хорошими, зависит от фильма. Если хотите, можете без опаски оставить значение по умолчанию. Уменьшение vqcomp отдает больше бит в сцены с низкой сложностью, увеличение его передает биты в очень сложные сцены (по умолчанию: 0.5, диапазон: 0-1. рекомендуемый диапазон: 0.5-0.7).

vlelim, vcelim : Устанавливает порог отбрасывания одиночного коэффициента для яркостной и цветностной плоскостей. Они кодируются независимо во всех MPEG-похожих алгоритмах. Идея этих опций заключается в использованию некоторой хорошей эвристики для определения момента, когда изменения в блоке ниже указанного Вами порога, и что его стоит кодировать как "блок без изменений". Это сохраняет биты и, возможно, ускоряет кодирование. vlelim=-4 и vcelim=9 выглядят неплохими для живой съемки, но, скорее всего, не помогут для аниме; при кодировании анимации Вам, возможно, следует оставить эту опцию неизменной.

qpel : Четверьтпиксельная оценка движения. По-умолчанию, MPEG-4 использует полупиксельную точность для поиска движения, следовательно, эта опция вносит дополнительные накладные расходы, поскольку сохраняет больше информации в закодированном файле. Улучшение/ухудшение степени сжатия зависит от фильма, но обычно эта опция не очень эффективна для аниме. qpel всегда вносит значительный вклад в CPU время декодирования (+25% на практике).

psnr : не влияет на сам процесс кодирования, но выводит в файл тип/размер/качество каждого кадра, а также итоговый PSNR (Peak Signal to Noise Ratio, пиковое отношения сигнала к шуму) в конце процесса.

Опции, с которыми играть не стоит:

vme : Значение по умолчанию является лучшим.

lumi_mask, dark_mask : Психовизуальное адаптивное квантование. Не стоит играть с этими опциями, если заботитесь о качестве. Разумные значения могут быть эффективными в Вашем случае, но имейте в виду, что это весьма субъективно.

scplx_mask : Пытается предотвратить появление квадратиков, но лучше выполнить постобработку.

7.3.4. Примеры настроек кодирования

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

Все настройки кодирования проверялись на тестовом видео 720x448 @30000/1001 fps с целевым битпотоком 900кбит/сек, на машине AMD-64 3400+ с 2400 МГц и 64 битном режиме. Для каждой настройки кодирования указаны измеренная скорость кодирования (в кадрах в секунду) и потеря PSNR (в дБ) по сравнению с настройкой "очень высокое качество". Поймите, пожалуйста, что в зависимости от Вашего материала, типа машины, прогресса разработки Вы можете получить сильно отличающиеся результаты.

ОписаниеОпции кодированияскорость (в fps)Относительная потеря PSNR (в дБ)
Очень высокое качествоvcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=26fps0дБ
Высокое качествоvcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo15fps-0.5дБ
Быстроеvcodec=mpeg4:mbd=2:trell:v4mv:turbo42fps-0.74дБ
Реального времениvcodec=mpeg4:mbd=2:turbo54fps-1.21дБ

7.3.5. Нестандартные inter/intra матрицы

С этой возможностью libavcodec , Вы можете установить нестандартные inter (I-кадры/ключевые) и intra (P-кадры/предсказанные) матрицы. Это поддерживается многими кодеками: В mpeg1video и mpeg2video также заявлена поддержка.

Обычное использовании этой опции — установить матрицы, предпочитаемые спецификациями KVCD.

KVCD Матрица Квантования "Notch":

7.3.6. Пример

Итак, Вы только что купили новенькую, блестящую копию фильма "Гарри Поттер и Тайная Комната" (в широкоэкранном формате, конечно) и хотите сделать рип этого DVD так, чтобы добавить его к Домашнему кинотеатру на PC. Это DVD первого региона, поэтому NTSC. Пример ниже также применим и для PAL, за исключением того, что надо будет опустить -ofps 24000/1001 (поскольку частота кадров на выходе такая же, как и на входе), и, конечно, границы обрезания будут другими.

После запуска mplayer dvd://1 мы следуем процессу, детально описанному в разделе Как работать с телесином и чересстрочностью в NTSC DVD, и выясняем, что это 24000/1001 fps построчное видео, а значит, использовать фильтры обратного телесина, такие как pullup или filmdint не нужно.

Далее, мы хотим определить верные границы обрезания, поэтому используем фильтр cropdetect:

Убедитесь, что переместились к полностью заполненному кадру (например, к светлой сцене после пропущенных начальных титров и логотипов), Вы должны увидеть в консоли MPlayer :

Затем снова воспроизводим фильм с этим фильтром для проверки его корректности:

И убеждаемся, что все выглядит прекрасно. Далее, проверяем, что ширина и высота делятся на 16. С шириной все в порядке, а с высотой — нет. Поскольку мы не заваливали математику в 7-ом классе, то знаем, что ближайшее целое, меньшее 362 и кратное 16, равно 352.

Мы могли бы просто использовать crop=720:352:0:58, но будет лучше отрезать понемногу от верха и низа, чтобы центр остался на месте. Мы уменьшили высоту на 10 пикселов, но не хотим увеличивать смещение по y на 5, поскольку это нечетное число и отрицательно скажется на качестве. Вместо этого, мы увеличим y на 4:

Другая причина, по которой мы урезаем пикселы сверху и снизу, заключаемся в том, что мы хотим убедиться, что удалены все наполовину черные пикселы, если они есть. Если Ваше видео подвержено телесину, убедитесь, что фильтр pullup (или любой другой фильтр обратного телесина, который Вы решили использовать) находится в цепочке до фильтра crop. Если оно чересстрочное, то перед обрезкой проведите деинтерлейсинг. (Если решили сохранить чересстрочность видео, убедитесь, что вертикальный сдвиг обрезания кратен 4.)

Если Вас действительно заботит потеря этих 10 пикселов, Вы можете вместо этого отмасштабировать фильм, уменьшив размерности до ближайших кратных 16 значений. Цепочка фильтров будет выглядеть примерно так:

Подобное уменьшение изображения будет означать потерю небольшого количества деталей, хотя это, возможно, окажется незаметным. Масштабирование изображения в сторону увеличения даст худшее качество (если Вы не увеличиваете битпоток). Обрезка же полностью выбросит те пикселы. Это компромисс, идти на который или нет, придется решать в каждом частном случае. Например, если DVD видео было создано для телевидения, Вы можете захотеть избежать вертикального масштабирования, поскольку дискретизация строк соответствует тому, как содержимое изначально записывалось.

При проверке видим, что наш фильм имеет немного движения и большое количество деталей, так что выбираем для битпотока значение 2400Кбит/сек.

Теперь мы готовы произвести двухпроходное кодирование. Проход первый:

И второй проход с теми же параметрами, за исключением vpass=2:

Опции v4mv:mbd=2:trell значительно улучшат качество ценой времени кодирования. Нет никаких оснований отключать эти опции, когда главным критерием является качество. Опции cmp=3:subcmp=3 выбирают функцию сравнения, дающую лучшее качество, чем стандартная. Вы можете поэкспериментировать с этим параметром (возможные значения смотрите на man странице), поскольку разные функции могут давать разный прирост в качестве в зависимости от исходного материала. Например, если Вы замечаете, что libavcodec производит слишком много блочных артефактов (квадратиков), то можете попытаться выбрать экспериментальный NSSE в качестве функции сравнения при помощи опции *cmp=10.

Для этого фильма полученный AVI будет 138 минут длинной и размером около 3Гб. И, поскольку Вы сказали, что размер файла значения не имеет, это вполне приемлемый результат. Однако, если все-таки хотите получить меньший размер файла, можете попробовать уменьшить битпоток. Увеличение битпотока имеет снижающийся эффект, поэтому, хотя мы можем ясно видеть улучшение от 1800Кбит/сек до 2000Кбит/сек, оно может быть не столь заметно выше 2000Кбит/сек.

Так как мы пропустили исходное видео через фильтр удаления шума, то, возможно, захочется вернуть какую-то его часть во время воспроизведения. Это, совместно с фильтром постобработки spp, существенно улучшит воспринимаемое качество и поможет избежать блочных артефактов в видео. Опцией autoq MPlayer 'а Вы можете изменять величину производимой фильтром spp постобработки в зависимости от доступных ресурсов CPU. Вдобавок, на этом этапе Вы можете захотеть применить коррекцию гаммы и/или цвета для лучшего соответствия Вашему монитору. Например:

Mencoder - свободный кодировщик видео, входящий в состав проекта Mplayer. Информация в этой статье рассчитана не на профессионалов, а, скорее, на обычных пользователей, которым приходится решать задачи по кодированию видео на домашних компьютерах.

Основы

Аудио и видео кодеки, и форматы видео файлов
Для указания аудио кодека в mencoder используется опция -oac, для указания видео кодека - -ovc. Список доступных видео кодеков можно просмотреть командой А список аудио кодеков, соответственно Этот список на разных системах может быть разным. Он зависит от того, с какими опциями собран mplayer.

Некоторые видео кодеки:
Аудио кодеки:

Форматы видеофайлов

Аудио и видео кодеками (такими, как MP3, Wav, Xvid, H264) кодируется аудио и видео содержание соответственно. Все это может быть сохранено в файле - AVI, MKV, OGG, MP4 и т.д. Форматы видеофайлов, например AVI, не являются кодеками, которыми сжимается видео/аудио. AVI (как и другие форматы) - контейнер. Грубо говоря, его можно представить ящиком, в который можно положить, сжатое в DivX видео, звук и еще кое-что. Кстати о AVI - это довольно старый формат и, я считаю, использовать его не рекомендуется. Новые форматы, такие как MKV (Matroska) и OGG/OGM, намного более удобны.


Форматы файлов (контейнеры), поддерживаемых вашим mencoder-ом, можно просмотреть командой Форматы файлов: Форматы файлов, поддерживаемые библиотекой libavformat
Сравнительную таблицу медиаконтейнеров вы можете посмотреть на вики

Libavcodec

Как вы могли заметить, видео и аудио кодеки можно выбирать не только из списка поддерживаемых mencoder-ом, но и из тех, которые поддерживает библиотека libavcodec. Остановимся на этом подробнее.

Libavcodec - качественная библиотека для кодирования и декодирования видео/аудио-файлов, которая является частью проекта ffmpeg.

Видео кодеки, поддерживаемые libavcodec:
Аудио кодеки, поддерживаемые libavcodec:

Несколько простых примеров по кодированию видео с помощью mencoder.

Видео в формате FLV конвертируем в MPEG-4 видео в формате MKV: Определения:
input.flv - исходный файл
опция -o задает имя выходного файла - out.mkv
опция -of указывает формат выходного файла - lavf
lavf - форматы медиа файлов, поддерживаемые библиотекой libavformat (определяется по расширению файла)
опция -oac указывает аудио кодек - mp3lame
mp3lame - MPEG audio layer 3 (MP3 аудио кодек)
опция -ovc указывает видео кодек - lavc
lavc -lavcopts vcodec=mpeg4 - видео кодек, поддерживаемый библиотекой libavformat.
Кодек указывается через -lavcopts vcodec=название-кодека. mpeg4 - DivX, XviD совместимый MPEG-4 стандарт.

В этом примере не указаны опции для самих аудио и видео кодеков, поэтому mencoder определит их сам. В большинстве случаев, размер файла получится больше, чем хотелось бы, а качество - хуже, поэтому, лучше указать хотя бы битрейт для видео. Если вы откроете получившийся файл out.mkv в mplayer в терминале, то увидите, что mplayer определил аудио и видео кодеки, и формат файла (контейнер):
Видео в формате FLV конвертируем в MPEG-4 видео в формате AVI:
В этом примере был указан битрейт для аудио и видео кодеков - усреднненый битрейт для аудио и переменный - для видео.

Битрейт

Битрейт - параметр, определяющий с каким качеством будет кодировано видео/аудио. Напрямую влияет на качество и размер выходного файла. Проще говоря, битрейт 800кбит/с означает, что на одна секунда видео/аудио "весит" 800кбит (100кбайт). Существует три варианта битрейта. Постоянный битрейт. Не меняется по всей длительности файла. Преимущество: что можно точно рассчитать размер конечного файла. Недостаток: размер файла будет всегда больше, чем при использовании VBR или AVR.

Переменный битрейт. Меняется по всей длительности файла. Пользователь задает уровень желаемого качества и кодек на этой основе кодирует файл. Битрейт меняется в зависимости от "сложности" видео/аудио фрагмента. Преимущество: наилучшее качество и размер выходного файла. Недостаток: размер файла трудно предсказать.

Усредненный битрейт. Битрейт задается пользователем в кбит/с, а кодек изменяет его в некоторых пределах. Отличие от VBR в том, что кодек меняет битрейт более "осторожно". Преимущество: качество получается лучше, чем при использовании CBR и примерный размер файла можно предсказать. Недостаток: Качество - хуже, чем при использовании VBR.

Кодирование видео в два этапа (двухпроходное кодирование)

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

Двухпроходное кодирование видео без пересжатия звука:

Изменение размеров видео (не размер файла)

Часто приходится изменять разрешение видео. Это может понадобиться для уменьшения размера файла, ведь для того, чтобы получить хорошую картинку на большом разрешении, нужен больший битрейт, чем для более маленького. Чтобы изменить разрешение у видео, можно использовать фильтр scale: Опция -vf нужна для указания видео фильтра. В этом примере размеры видео будут изменены до 320:240. Будьте осторожны - если не сохраните пропорции, видео картинка может стать сплющенной или растянутой. Чтобы изменить размеры видео с сохранением пропорций, нужно вместо ширины видео указать "-2":
В этом случае разрешение будет изменено пропорционально - mencoder подстроит ширину автоматически.


Уменьшение размера видео-файла

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

Среди форматов медиа-файлов больше всего распространен контейнер AVI. Однако, это довольно старый формат, который содержит много избыточности и мало возможностей. На мой взгляд, контейнер Matroska (*.MKV) имеет большие потенциалы. Matroska - открытый, свободный формат контейнера для видео-файлов, который содержит большое кол-во возможностей, не доступных в таких старых контейнерах, как AVI.

Покажу на примере. У меня имеется видео-запись, размером ровно 700МБ в формате AVI. Я лишь изменил контейнер, не изменяя видео и аудио, и получил размер на 5МБ меньше:

Дополнительные опции кодирования (libavcodec)

Указание расширенных опций кодирования видео при использовании библиотеки libavcodec
Параметры задаются с помощью опции -lavcopts, например:
-lavcopts vcodec=mpeg4:vbitrate=600:mbd=2:trell
Кстати, опции mbd=2, trell и v4mv весьма желательны если вы хотите получить хорошее качество и у вас не MPEG-1/2 видео.

Описание некоторых полезных опций libavcodec:

vb_strategy=1 - пригодится для кодирования высокодинамичного видео. Желательно, использовать в паре с vmax_b_frames=2 , т.к. без этого, vb_strategy=1 в некоторых случаях может навредить качеству.
dia - диапазон поиска движения. Для лучшего качества, но медленного кодирования - от 2 до 4 и значение -1 - для быстрого кодирования, но менее хорошего качества.
last_pred - кол-во предсказателей движения, берущихся из предыдущего кадра. Значения 1-3 улучшат качество ценой небольшой потери скорости кодирования.
cbp,mv0 - контролирует выбор макроблоков. Небольшое снижение скорости и небольшое улучшение качества.

В документации к mencoder приводятся примеры опций для кодирования видео с высоким качеством.
Очень высокое качество:
Высокое качество:
Быстрое кодирование:
От себя я приведу немного упрощенный пример для кодирования с высоким качеством: Если видео не высокодинамичное, то последние два параметра можно опустить. И еще один момент - параметры qpel и v4mv нельзя использовать с MPEG-1/MPEG-2 видео.

Недавно, друг попросил меня сжать 3ГБ видео, записанное на видеокамеру в формате MPEG-2.
Сначала, я пережал его в mpeg4 таким образом: но, качество получилось не на высоте. Уж не знаю, может я сделал что-то не так, но затем я вместо mpeg4 использовал xvid и качество вышло _заметно_ лучше: К сожалению, скриншот выложить не могу, т.к. запись приватная.

Xvid - свободная библиотека для кодирования видео стандарта MPEG-4. Является открытым аналогом и основным конкурентом проприетарного кодека DivX.

Настройки кодирования xvid задаются опцией -xvidencopts.
Наилучшее качество: Высокое качество: Быстрое сжатие:

video

K-Lite Codec Pack — это бесплатный универсальный набор кодеков и утилит для просмотра и обработки аудио- и видеофайлов. В пакет входит большое число тщательно подобранных бесплатных кодеков и утилит.

K-Lite Codec Pack в настоящий момент представлен четырьмя наборами, которые отличаются количеством кодаков:

Заявлена поддержка операционных систем Windows Vista/7/8/8.1/10. Для XP можно скачать старую версию K-Lite Codec Pack.

Ссылки

K-Lite Codec Pack Basic

Версия Basic содержит кодеки для всех основных аудио- и видеоформатов:

  • AVI, MKV, MP4, FLV, MPEG, MOV, TS, M2TS, WMV, RM, RMVB, OGM, WebM
  • MP3, FLAC, M4A, AAC, OGG, 3GP, AMR, APE, MKA, Opus, Wavpack, Musepack
  • DVD и Blu-ray (после дешифровки)
  • .
  • Поддержка субтитров
  • Аппаратное ускорение декодирования видео
  • Потоковое аудио
  • Эскизы видео в проводнике
  • Настройка ассоциаций файлов
  • Обнаружение и удаление сломанных кодеков
  • .

Basic не содержит встроенного проигрывателя.

K-Lite Codec Pack Standard

Версия Standard включает в себя весь функционал Basic, плюс:

  • Проигрыватель Media Player Classic Home Cinema (MPC-HC)
  • MediaInfo Lite — детальная информация о файле

K-Lite Codec Pack Full

Версия Full включает в себя весь функционал Standard, плюс:

  • MadVR — продвинутое средство визуализации видео с высококачественными алгоритмами масштабирования.
  • DC-Bass Source Mod — для декодирования аудиофайлов OptimFrog и Tracker.
  • Плагин для декодирования 3D-видео (H.264 MVC)

K-Lite Codec Pack Mega

Версия Mega включает в себя весь функционал Full, плюс:

  • GraphStudioNext — инструмент для создания и тестирования графиков DirectShow
  • Некоторые кодеки ACM/VFW, такие как x264VFW и Lagarith, для работы некоторых видеоредакторов
  • Дополнительные DirectShow фильтры: ffdshow audio/video processor, ffdshow audio/video decoder, AC3Filter

Дополнительные функции Mega полезны только для небольшой группы людей. Если вас интересует только воспроизведение, то версии Full достаточно.

Сравнение возможностей

Windows Vista/7: работает
Windows 8: требует Media Center Add-On
Windows 10: WMP не поддерживает воспроизведение DVD

DVSD, DV25, DV50, CDVH, DVCP, DV5P, DV5N, DVPP, DVC, DVH1, DVH2, DVH3, DVH4, DVH5, DVH6, DVHQ, DVHP, AVdv, AVd1, CDVC, CDV5, (DVIS, PDVC)

Читайте также: