Конвертация видео

Конвертер видеоКонвертация видео — процесс преобразования исходного видеоматериала в формат, подходящий для воспроизведения на определённых устройствах или онлайн-ресурсах. Для конвертации видео используются специальные программы – конвертеры или видеоредакторы.

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

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

Как сжать видеофайл

Конвертация видео Как сжать видеофайл
Язык:Русский
Формат:
Windows / Linux / MacOS X
Обновлено:2018-06-17
Автор:





Как сжать видеофайл

Современные видеокамеры снимают видео порой в избыточном качестве. Эффективно сжать размеры итогового видеофайла без существенной потери качества картинки позволит грамотная конвертация.

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

Как и в случае с фотосъёмкой, в вопросе обработки и сохранения видео есть множество нюансов, которые влияют на итоговый размер и качество видеофайла. Есть пользователи, которые в угоду меньшему размеру сильно "убивают" качество. Есть и наоборот те, кто в погоне за "идеальной картинкой" не задумываются об итоговых объёмах видеофайла и том, что его физически нельзя будет воспроизвести на среднестатистических устройствах.

В общем, чтобы не впадать в крайности, нужно понимать базовые принципы конвертации видео и соблюдать разумный баланс между размером и качеством. Об этом и поговорим...

Теория сжатия видео

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

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

10-кратное уменьшение видеокадра

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

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

При кодировании в один проход параметры видео усредняются на протяжении всего ролика. В первую очередь используется постоянный битрейт (сокр. "CBR" от англ. "Constant Bit Rate"), который может быть избыточным для статических сцен и недостаточным для динамических, что приводит к ухудшению качества последних.

При кодировании в два прохода на первом шаге анализируется динамичность сцен и подбираются параметры их оптимальной конвертации без ущерба для качества. На втором же происходит непосредственное сжатие видео, но теперь уже с переменным битрейтом (сокр. "VBR" от англ. "Variable Bit Rate"), который изменяется в зависимости от динамики движения в кадре. Это даёт возможность получить на выходе гораздо более качественное видео, но требует почти вполовину больше времени на конвертацию.

Однако, мы весьма сильно отклонились в сторону нюансов. Предлагаю разобраться с некоторыми из них подробнее.


Размер видео и разрешение

Одним из основных параметров видео является его размер. Однако, далеко не всегда понятно, о каком размере идёт речь. Дело в том, что под данным термином может подразумеваться как размер итогового видеофайла, так и размер кадра видео. Чтобы избежать путаницы, часто размером называют именно объём файла в мега/гигабайтах, а для обозначения ширины и высоты кадра видео используют термин "разрешение".

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

Стандартных разрешений видео существует на сегодняшний день несколько десятков! Однако, за последние годы наиболее устоявшейся стала их классификация по соотношению сторон кадра. Самые распространённые соотношения связаны с размерами дисплеев для компьютеров, которые чаще всего бывают 4:3 или 16:9. Изначально ширина экрана мониторов относилась к высоте как 4 к 3 (например, 800 на 600 пикселей или 1024 на 768). В современных же мониторах ширина соотносится с высотой как 16 к 9 (например, 1366х768 или 1920x1080).

Соответственно, соотношение 4:3 получило название стандартного, как более раннее, а 16:9 широкоформатного. Отсюда же и часто встречающиеся обозначения SD (от англ. "Standard Definition" – "стандартное разрешение") и HD (от англ. "High Definition" – "высокое разрешение"). Наивысшим расширением видео, которое сейчас только начинает распространятся, является UltraHD 8K (7680x4320 пикселей):

Сравнение видео SD и HD

Кстати, как Вы могли наблюдать на скриншоте выше, у наиболее распространённых размеров кадра имеются и свои названия. Причём названий этих может быть несколько. Наряду с обозначением принадлежности к SD или HD, видео могут называть в соответствии с его высотой. Так, например, разрешение FullHD имеет размеры 1920x1080 пикселей, соответственно, его могут называть 1080p. Аналогично, обычное HD-видео (1280x720) часто называют 720p, а SD (640x480) – 480p.

Наверняка Вы также обратили внимание на то, что в названии разрешения фигурирует ещё и буквенный индекс "p". Он обозначает прогрессивный режим развёртки видео (англ. "progressive"). Существует ещё и более устаревший – чересстрочный с индексом "i" ("interlaced"). В интерлейсном режиме каждый кадр кодируется парой полукадров с пропущенными через одну строчками. То есть, фактически, полезная высота в формате 1080i будет вполовину меньшей – 1080/2=540 пикселей:

Пример чересстрочности (интерлейсинг)

Частота кадров

Думаю, с размерами и разрешениями видео мы разобрались. Однако, часто можно встретить запись, вроде, 1080p60. Понятно, что 1080p – это FullHD-видео с прогрессивной развёрткой. Но, что значит число "60"? А оно означает частоту кадров в секунду в нашем видео (англ. "frame rate" или "fps" – "frames per second"), которая измеряется в Герцах (Гц).

Фактически частота кадров обозначает, сколько изображений будет выдавать наше видео за одну секунду. Чем она выше, тем видео будет казаться плавнее, а его размер будет больше. Экспериментально было установлено, что минимальной частотой, при которой человеческий глаз воспринимает смену последовательности картинок как плавную является 12–18 кадров в секунду. Например, немое кино в начале прошлого века снималось с частотой 16 Гц. Однако, если посмотреть его сейчас, оно может показаться нам немного дёрганным.

Стандартным же (но не максимальным) в наше время значением является 24 кадра. Долгое время бытовало мнение, что человеческое сознание может воспринимать только такое количество кадров в секунду и, если добавить в видеоряд пресловутый 25-й кадр, то он будет оказывать влияние уже на подсознание.

На самом же деле 25-й кадр очень даже видим и при наличии реально раздражает (проверял когда-то на себе лично)! Более того, экспериментальным путём было доказано, что некоторые люди способны различить мелькание даже на частоте 500 fps, а большинство людей улавливает изменения при 90–100 Гц. При частоте выше видеосъёмка начинает восприниматься как реальная жизнь.

Однако, вернёмся к частоте в контексте нашей темы конвертирования видео. Достаточной, как мы могли убедиться, будет частота в 24 кадра в секунду. Однако, современные камеры даже любительского диапазона уже позволяют снимать с частотой до 60 Гц. И, если посмотреть одну и ту же сцену с разным количеством кадров в секунду, Вы и сами, наверняка, заметите разницу:

Смысла искусственно повышать частоту кадров, как и его разрешение, нет. Конвертер, конечно, добавит промежуточные кадры до заданной Вами частоты, но полезной нагрузки они нести не будут. Фактически, там будет иметь место просто дублирование кадров, которое увеличит размер видео вполовину (или даже больше), но не даст никакого прироста качества. Уменьшать же частоту кадров с более высокой до стандартных 24 Гц имеет смысл, если видео нужно сжать.

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

Качество видео

Мы подошли к одной из самых неоднозначных характеристик видео – его качеству. Стоит сразу сказать, что восприятие качества – весьма субъективно. Человек, который особо не искушён в вопросах видеообработки, может посчитать заведомо плохое изображение качественным только из-за того, что оно большое или насыщенное. Знающий же будет обращать внимание на цветопередачу, наличие шумов и прочих артефактов (например, размытия или дизеринга).

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

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

Сравнение кадра с примесью шумов и понижением глубины цвета

В обеих примерах в характеристиках видео мы увидим глубину цвета в 8 бит. Однако, нужно понимать разницу. В первом случае мы имеем дело с кодированием в формате RGB. То есть, по 8 бит будет нести каждая составляющая цвета пикселя (красная, зелёная и синяя). В итоге мы получим общую глубину цвета 24 бита (8х3) с максимальным количеством цветов равным 16 777 216 (256х256х256). Во втором случае мы понижаем общую палитру кадра до 8 бит (то есть всего 256 цветов). Поэтому итоговый размер получится примерно в 3 раза меньшим! Но и качество цветопередачи пострадает на столько же...

Битрейт видео

Рассматривая предыдущие характеристики, мы выяснили, что итоговый размер видео зависит от нескольких факторов. Фактически это произведение его разрешения на частоту кадров и глубину цвета. К примеру, возьмём видео 1080p60 c 8-битной RGB-оптимизацией цветовой палитры. Если теперь всё перемножить (1920х1080х60х24), то мы получим число 2 985 984 000. Оно будет обозначать максимальное количество бит в секунду, которое нужно для передачи видеопотока с указанными нами параметрами. Это и есть битрейт!

Высокие показатели битрейта принято округлять до кило- и мегабитов в секунду (сокр. "кбит/с" и "мбит/с"). Соответственно, для кодирования 1 секунды FullHD-видео с частотой кадров 60 Гц и палитрой TrueColor без потерь нам потребуется примерно 2986 мбит или же 373 мегабайта. Отсюда вычисляем, что на кодирование стандартного фильма длительностью 90 минут потребовалось бы 373х60х90=2014200 мегабайт или же около 2 терабайт дискового пространства!

Почему же тогда в реальном видео битрейт и размеры не такие огромные? Чтобы ответить на этот вопрос вернёмся к нашей формуле выше. Размеры кадра в ней будут всегда константой. Переменными в таком случае остаются частота кадров и глубина цвета. Но, ведь, они являются, вроде как тоже постоянными характеристиками видео? А вот здесь в дело вступает кодек...

Кодеки

Название "кодек" происходит от английского сокращения "codec" – "Coder+Decoder" (рус. "кодировщик-декодировщик"). Фактически именно кодек отвечает за алгоритмы и эффективность сжатия видео, а также его обратную декомпрессию при воспроизведении. Во многом кодеки определяют формат сохраняемого видео, однако, об этом чуть позже. Сейчас нас интересует то, как же при всех, казалось бы, постоянных характеристиках кодеку удаётся уменьшать битрейт и размеры видео.

Здесь есть несколько подходов, которые могут применяться как по отдельности, так и все вместе:

  1. Оптимизация изображения. Как ни крути, а видео – это всего лишь набор быстро меняющихся картинок. А их, как мы уже знаем, можно сжимать, добавляя цифровые шумы или уменьшая цветовую палитру. Если уменьшение количества цветов будет сразу бросаться в глаза, то примесь шумов до определённой степени будет игнорироваться человеческим зрением. Так, при быстрой смене кадров мы не будем воспринимать сильно зашумленными даже изображения с примесью 50% шума. А уже только одно это даёт понижение размера кадра в 4–6 раз без затрагивания глубины цвета!

Оптимизация изображений

  1. Оптимизация цветов. Кроме добавления шумов кадры в видео могут также оптимизироваться по цветовой составляющей. В видео часто цвета кодируются не в RGB-формате, а в цветовой модели, которая используется в телевидении – YUV, где компонента Y отвечает за яркость, а U и V за кодирование RGB-цвета по специальной формуле. А вот здесь вступают в действие математика и особенности физиологии. Дело в том, что человеческий глаз чувствителен к изменению яркости, но менее восприимчив к варьированию цветовой составляющей. Это даёт возможность усреднять цвета соседних пикселей. Обычно усредняются блоки по 4 пикселя, что даёт экономию в 2 раза. Такой процесс носит название цветовой субдискретизации или цветового прореживания.
  2. Оптимизация кадров. Кроме оптимизации изображения, оптимизировать можно и сами кадры. Если Вы знакомы с принципами 3D или флеш-анимации, то наверняка знаете, что кадры бывают ключевыми и промежуточными. Опорные кадры создаёт сам человек-аниматор, а промежуточные создаются программно с учётом разницы положения анимируемого объекта.

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

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

Компенсация движения

Таким образом при использовании всех возможностей кодеков можно добиться сжатия видеопотока в 100 и даже более раз при сохранении всех характеристик исходного видео. И тогда вместо 2 терабайт наш гипотетический 90-минутный фильм в FullHD будет занимать уже 20 гигабайт, что примерно соответствует реальному размеру записи на Blue-Ray-дисках (25 ГБ).

Различных кодеков на сегодняшний день существует довольно много. Они имеют различные алгоритмы сжатия и принципы работы, но их можно условно разделить на группы по поколениям MPEG (сокр. "Moving Pictures Expert Group" – международный комитет по работе с видео), а также на полностью свободные и проприетарные (подлежащие лицензированию):

Поколение кодека Особенности Проприетарные Свободные
MPEG-1 Кодирование видео для CD (VCD) с разрешением от 352x240px MPEG-1, Bandicam GPL MPEG-1/2 DirectShow Decoder Filter
MPEG-2 Кодирование видео для DVD, SuperVCD и цифрового ТВ DVB с разрешением от 176x144px MPEG-2, H.262, Elecard MPEG-2 Video Decoder Pack GPL MPEG-1/2 DirectShow Decoder Filter, Stinky's MPEG-2 Codec
MPEG-4 Наиболее распространённый класс кодеков, созданный в 1998 году DivX, H.264 (AVC), H.265 (HEVC), HDX4 XviD, x264, Daala, VP9

В таблице выше пропущено 3-е поколение MPEG. Оно появилось в 1996 и просуществовало всего около 3-х лет. Представлено было кодеком H.263, который, увы, не обрёл широкого распространения. Изначально стандарт задумывался для кодирования видео под небольшие тогда дисплеи мобильных телефонов в формат 3GP, который давал довольно плохое качество на выходе, хотя и сжимал видео до очень небольших размеров.

Наибольшее распространение на сегодняшний день получили кодеки 4-го поколения, которые сохранили лучшие наработки предыдущих версий MPEG и привнесли много полезных нововведений, позволяющих более эффективно сжимать видео для максимально широкого круга задач, начиная от мелких экранов мобильных телефонов (формат MP4) и кончая современным видео высокой чёткости 8K (формат HEVC).

Форматы видео

Наконец, мы с Вами подошли к финалу всей нашей эпопеи! Нам осталось разобраться с понятием формата видео. Фактически, всё, о чём мы говорили выше – его внутренняя структура. Формат же – это то, что мы можем видеть на примере готового файла на жёстком диске или ином запоминающем устройстве. По сути, формат являет собой эдакую виртуальную коробочку, в которой лежит наше видео. Поэтому его иногда ещё называют контейнером.

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

Формат мы всегда видим в виде расширения видеофайла. Посмотреть же, что лежит внутри, можно при помощи специальных программ. Одной из них является MediaInfo из пакета кодеков K-Lite:

Свойства видео в MediaInfo

Как и кодеков, форматов видео существует весьма много. Поэтому предлагаю рассмотреть только наиболее распространённые из них:

  • AVI (Audio-Video Interleaved) – универсальный контейнер, поддерживающий все поколения кодеков MPEG. Может нести в себе видео, звук, текст (например, субтитры) и MIDI-данные. Воспроизводится на большинстве устройств и пригоден для выгрузки на онлайн-ресурсы, вроде YouTube;
  • MP4 (Moving Pictures 4) – контейнер, совместимый с кодеками MPEG4 (обычно использует DivX/XviD или H.264). Изначально был разработан для сжатия DVD-видео с 4 ГБ до размеров, пригодных для записи на компакт-диски (700 МБ). В современном виде может нести в себе как видео малого разрешения для воспроизведения на мобильных устройствах, так и высокой чёткости, поэтому в данном направлении его можно считать универсальным. Позволяет заливать видеофайл на YouTube без предварительной конвертации;
  • WMV (Windows Media Video) – специализированный контейнер, разработанный корпорацией MicroSoft. Может содержать видео, звук и субтитры и работает только с кодеками WMV2 или MSMPEG-4. Его поддержка изначально встроена в Windows и ряд приложений от MicroSoft (например, программу для создания презентаций MicroSoft Office Power Point). Пригоден для выгрузки онлайн;
  • MKV (Matröška – Матрёшка) – универсальный кроссплатформенный контейнер с открытым кодом. Позволяет включать в себя любые вложения. Фактически формат был разработан как свободный аналог закрытого AVI и MP4. Работает с кодеками 4-го поколения. Перед выгрузкой онлайн требует предварительной конвертации в один из поддерживаемых форматов;
  • WebM – специализированный свободно распространяемый видеоконтейнер от Google. Является дальнейшим развитием формата MKV, ориентированным на воспроизведение видео онлайн. Использует альтернативные кодекам H.264 (AVC) и H.265 (HEVC) кодеки VP8 и VP9. Изначально поддерживается большинством браузеров без необходимости конвертации;
  • FLV – специализированный видеоконтейнер от Adobe. Изначально был направлен на создание единого формата для воспроизведения видео онлайн по технологии Flash. На сегодняшний день является устаревшим, но всё ещё поддерживается большинством браузеров и видеохостингов;
  • MOV – специализированный видеоконтейнер от Apple. Создавался как альтернатива FLV для воспроизведения видео онлайн. Поддержка формата была встроена в операционные системы Apple (MacOS и iOS). Для остальных систем были выпущены программные комплексы, обеспечивающие совместимость и поддержку MOV. Как и Flash, сегодня считается устаревшим, но сохраняет поддержку.

Выводы

Если Вы прочли всё, что написано выше (и даже поняли это :)), то у Вас, наверняка, может возникнуть закономерный вопрос, а есть ли какие-нибудь оптимальные настройки сжатия видео. Однозначного ответа, увы, нет. Всё зависит от конкретных задач, наличия у Вас свободного времени на кодирование и мощности Вашего ПК. Так, например, если Вам важно высокое качество картинки и высокое разрешение, выбирайте кодек x264 или H.265 с максимальным битрейтом и сохранением в контейнер MP4 в два прохода. Для выгрузки же видео онлайн лучше остановиться на кодеке V9 и формате WebM с однопроходным кодированием.

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

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

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.







Полезный совет:



Система проверки ошибок от Mistakes.ru