Читайте в Telegram
|
Вы нажимаете кнопку, и видео просто запускается — на разных телефонах, телевизорах, в браузерах, на домашнем Wi-Fi и при слабом сигнале в электричке. За этим привычным фактом стоит инфраструктура: она в реальном времени определяет сервер доставки, выбирает разрешение ролика и решает, как передавать данные. И всё это работает за доли секунды и одновременно для миллионов зрителей.
Как — рассказывает Алексей Шпагин, руководитель разработки бэкенда видеоплатформы VK. Проследим весь путь видео: от файла на устройстве его автора до картинки на вашем экране.
Путь видео к зрителю: от загрузки до доставки
Чтобы понять, как устроены технологии VK Видео, сначала представим путь ролика целиком. Как эстафету, где контент проходит несколько обязательных этапов, прежде чем появиться на экране.
- Этап 1. Автор загружает файл. Платформа принимает бинарные данные — пока это просто последовательность байтов, которую ещё предстоит обработать. Как только файл принят, он фиксируется в системе, получает идентификатор и отправляется дальше по конвейеру.
- Этап 2. Транскодируем видео — это ключевой шаг, на котором ролик приводится к унифицированному виду. Автор мог записать его на профессиональную камеру в формате, который не поддерживается большинством смартфонов. Или экспортировать из редактора с настройками, при которых файл весит гигабайты. Платформа приводит всё к единому стандарту: преобразует в нужный формат, делает несколько разрешений видео и формирует набор служебных данных для плеера, которые понадобятся для воспроизведения.
- Этап 3. Сохраняем видео в хранилище. На предыдущем шаге из одного файла получился целый набор данных: несколько вариантов качества, аудиодорожки, метаданные. Всё это нужно сохранить так, чтобы потом быстро отдавать зрителю. Поэтому видео дополнительно разбивается на короткие фрагменты — зачем, объясняем на следующем шаге.
- Этап 4. Зритель запускает видео. Он выбирает ролик, нажимает Play — и начинает получать данные. Важная деталь: видео редко прилетает целым файлом, оно поступает теми самыми фрагментами. Благодаря этому воспроизведение стартует сразу, а подгрузка продолжается фоном. И если по пути что-то изменится (например, связь станет хуже) плеер просто запросит следующий фрагмент в более низком качестве. И зритель продолжит смотреть ролик без пауз.
Если упростить до четырёх ключевых слов, получится такой путь: загрузка → транскодирование → хранение → воспроизведение. Теперь заглянем в эти отрезки пути поглубже.

Кодирование: как видео становится удобным для просмотра
В основе кодирования лежит простая идея: видеоряд содержит много повторяющейся информации. Соседние кадры часто отличаются только деталями: движением объекта или небольшими изменениями сцены. Это свойство используется, чтобы значительно уменьшить объём данных.
Некоторые кадры сохраняются полностью — их называют ключевыми. Остальные содержат только изменения относительно первых.
«Если хранить и передавать каждый кадр целиком, объёмы данных были бы на порядки выше. Поэтому современные кодеки работают с разницей между кадрами: они фиксируют, что именно изменилось, и кодируют только это. За счёт этого достигается основная эффективность сжатия — без потери качества для зрителя», — объясняет Алексей.
Ещё одно решение, которое платформа принимает на этапе транскодирования, — каким кодеком сжимать видео. Кажется логичным выбрать один универсальный, но тогда пришлось бы жертвовать либо качеством, либо скоростью обработки, либо совместимостью с устройствами. Поэтому VK Видео может использовать сразу до трёх кодеков — под разные сценарии просмотра:
- H.264 — базовый выбор для большинства видео. Этот кодек кодирует видео быстрее других и поддерживается практически любыми устройствами: от бюджетных смартфонов до флагманских телевизоров. Большинство загружаемых на платформу роликов обрабатывается именно этим кодеком.
- VP9 — сжимает эффективнее, чем H.264: файл получается меньше при том же качестве картинки. Это важно для мобильного контента: когда смотришь ролики на ходу, экономия трафика и быстрая загрузка критичны.
- AV1 — применяется для популярного контента. Это самый эффективный кодек из трёх: он даёт лучшее качество при минимальном размере файла. Но и самый требовательный: кодирование занимает значительно больше времени и серверных мощностей. Поэтому в AV1 обрабатываются ролики авторов с большой аудиторией: такие видео будут смотреть чаще, и зрители получат лучшую картинку без нагрузки на свой интернет-канал.
Хранение: почему у одного видео сразу несколько вариантов качества
Один и тот же ролик хранится сразу в нескольких вариантах качества: от низкого разрешения до Full HD и выше. Это необходимо, чтобы переключаться между ними на лету и обеспечивать непрерывный просмотр, когда у зрителя меняются условия. Например, если начинают смотреть фильм дома с быстрым интернетом, а продолжают в поездке, где сигнал слабый.
Для хранения контента в VK Видео используются два основных медиаконтейнера:
- MP4 с кодеком H.264 — базовый и наиболее универсальный формат;
- WebM с кодеками VP9 и AV1 — более современные и эффективные с точки зрения сжатия.
При запуске ролика система подбирает качество с учётом устройства и скорости соединения. Если что-то меняется по ходу просмотра, переключение происходит бесшовно, потому что каждый фрагмент видео самодостаточен и его можно воспроизвести независимо от остальных.

Доставка: как видео оказывается на экране за доли секунды
Даже идеально подготовленное видео не даст хорошего опыта просмотра, если не доставить его зрителю максимально быстро. Чтобы ролики стартовали без задержек, VK Видео использует распределённую сеть доставки контента — CDN.
CDN VK Видео состоит из основных серверов в Москве и более 160 кеш-площадок по всей России. Когда зритель запускает видео, система старается отдать его с ближайшего к пользователю сервера. Это ускоряет старт воспроизведения и снижает риск проблем с видео (вроде зависаний или деградации качества из-за плохой сети).
Если нужного контента нет на ближайшем сервере, он запрашивается из центрального хранилища и сохраняется локально. В следующий раз ролик уже будет доступен быстрее.
Ещё одна особенность — способ маршрутизации запросов. В классической схеме запрос сначала попадает на сервер-распределитель, который решает, куда его направить. VK Видео работает иначе: выдаёт ссылку на конкретный сервер.
«Мы отказались от промежуточного звена в виде сервера-балансировщика и сразу отдаём адрес нужной машины. Это позволяет не дублировать данные внутри одной площадки и ускоряет доставку первых байтов, критичных для быстрого старта видео», — объясняет Алексей Шпагин.
В результате видео начинает воспроизводиться практически мгновенно. И для этого важен каждый этап эстафеты из загрузки, транскодирования, хранения и доставки.
Зачем VK Видео своя лаборатория
Авторы загружают на платформу сотни тысяч роликов в день, и каждое видео проходит полный цикл обработки. VK Видео — крупнейшая видеоплатформа в России: ежедневная аудитория превышает 40 млн пользователей. Чтобы инфраструктура продолжала работать стабильно при растущей нагрузке, её нужно постоянно тестировать.
Для этого у команды VK Видео есть собственная лаборатория качества. Там транскодер и плеер проверяют на реальных устройствах в разных условиях: имитируют слабый мобильный интернет, переключение между Wi-Fi и LTE, нестабильное соединение. Это помогает выявлять и исправлять проблемы до того, как их заметит зритель.
Сейчас команда работает над тем, чтобы видео весило ещё меньше без потери качества картинки, быстрее обрабатывалось после загрузки и лучше звучало — особенно когда автор записывает ролик на телефон без профессионального микрофона. Об обновлениях будем рассказывать здесь — остаёмся на связи!








