Кодеки: не так страшно, как кажется
Разбираемся в видео-кодеках и видео-форматах
Слова «видео-кодек» и «видео-формат» для многих звучат как синонимы. Ничего зазорного в этом нет — даже многие профессионалы видеосъемки и монтажных интерфейсов в наше время просто заучивают как молитву, что нажимая на кнопочку «рендеринг» надо выбирать в открывшемся меню пункт H.264, на самом деле не очень понимая, что же это такое. В то же время, если вы хотите максимизировать качество и охват ваших видеостримов, полезно получить общее представление о значении этих терминов и основных вариантах выбора.
Что и зачем
Первый очевидный вопрос: зачем вообще нужно какое-то специальное кодирование? Записывая видео на цифровую камеру мы ведь уже получаем некие файлы. Почему не использовать их напрямую? Дело в том, что так называемый «сырой» (.RAW) формат профессиональных камер представляет из себя набор отдельных картинок в максимальном качестве. А теперь умножьте это на количество кадров в секунду (где, кстати, стандарт в последние годы все больше смещается с традиционных киношных 24-х на модные 30 fps).

Так для того чтобы сохранить минутный ролик c размером кадра 1920x1080 в формате RAW потребуется около 20 гигабайт (!) дискового пространства. И не забудьте, что старое доброе Full HD тоже постепенно из излишества превращается в нижнюю планку, уступая позицию премиум-разрешениям 2.5К и даже 4К. А теперь сравните получившиеся объемы с пропускной способностью среднего интернет-подключения. Как видите, в этом случае фильмы продавались бы исключительно на многотеррабайтных жестких дисках, а технология стриминга вообще была бы недоступна простым смертным.

Таким образом кодеки — это необходимые алгоритмы оптимизации медиаконтента с приемлемой, иногда даже незаметной на глаз потерей качества. Приведем пример логики такого кодирования. В RAW каждая точка каждого кадра всегда записана одинаковой по длительности цепочкой ноликов и единиц. Но что, если половину кадра занимает равномерно залитый светом белый фон? Или наоборот, темный провал, в котором не видно ничего? Или просто стоят неодушевленные объекты с низкой отражающей способностью, на поверхности которых в течение всего плана ничего не меняется? Вместо того, чтобы заливать огромный объем однотипных и по сути не нужных данных, достаточно дать устройству координаты области, которую надо залить одним тоном и временные ориентиры. Вуаля, мы только что уменьшили объем данных в разы, прибегнув лишь к самому примитивному приему сжатия. Так в случае использования для кодирования упомянутого выше кодека H.264 тот же минутный ролик при прочих равных займет лишь 600 Мб на диске, т.е. в 30 раз меньше!!! Арсенал и эффективность подобных приемов как раз и определяет различия между кодеками и как результат — их популярность.
Ассортимент
H.264 — на сегодняшний день, самый распространенный кодек для стриминга видео. Сочетает хорошую степень оптимизации данных и широкую совместимость почти с любым устройством. Кодек изначально имеет ряд профилей для устройств разной производительности, но подавляющему большинству современных машин вариант High (высокое качество) уже абсолютно по силам.

VP9 – один из претендентов на роль лидирующего кодека следующих нескольких лет. Разрабатываемый Google в рамках модели open source, он имеет более высокую производительность по сравнению с H.264. Однако его поддержка на различных платформах пока что ограничена.

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

MP3 – можно сказать, самый «народный» метод кодировки аудио, до сих пор активно использующийся для передачи музыкальных треков, но не получивший популярности в среде видео-стриминга.
Не-формат
Говоря о видео-кодеках, необходимо также обратить внимание на очень распространенную ошибку: многие путают кодеки с форматами видео. Формат - это тот самый параметр, ответственный за трехбуквенное расширение после точки в названии файла, будь то .avi, .mov или любой другой. Понять их назначение проще всего вспомнив, что медиформаты также часто называют «контейнерами» или «обертками» (wrappers). Они служат для общей сборки и систематизации медиафайла, включающей видеоряд, звуковые дорожки (например, дубляж на разных языках), субтитры, таймкоды и другие метаданные. При этом сами кодеки внутри пакета могут быть совершенно любыми (само собой, в рамках программной совместимости).
Выбор и перспектива
На сегодняшний день мы рекомендуем использовать H.264 в качестве основной опции для кодировки ваших видео под онлайн-стриминг, и старый-добрый AAC для аудио. Главная причина проста: максимальная совместимость с различными устройствами и программным обеспечением, гарантирующая максимальный охват аудитории. Однако советуем окидывать цифровой ландшафт новым взглядом хотя бы раз в год — более прогрессивный кодек может набрать популярность в считанные месяцы и любым вашим проектам, связанным с видео, пойдет лишь на пользу, если вы окажетесь на волне этого тренда!