Обновить

Технологии в основе VK Видео: от загрузки файла до кадра на экране зрителя

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели17K
Всего голосов 108: ↑89 и ↓19+103
Комментарии76

Комментарии 76

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

Про форматы сжатия было интересно, спасибо.

Не думали над аппаратными решениями, на FPGA или заказать на аутсорс полностью свое ядро ?

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

Да, думаем про FPGA и ASIC. Пока в стадии изучения рынка, что вообще есть и что реально закупить.

Нам очень важно удобство эксплуатации и расширяемость. Что-то очень кастомное, скорее всего, не сможем затащить и поддерживать потом.

Поддерживать сможете, оно на базовом уровне мало отличается от того же ffmpeg. А вот затащить, как вариант, объединиться с кем то ещё, тема реализуема, хоть и с трудом.

Я скорее про трудности поддержки и обслуживания нестандартного железа.

Плюс есть шанс получить вендерлок, если заложиться на какую-то конкретную модель FPGA/ASIC.

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

Когда все думают одно и тоже, то получается как будто вслух.

Не рассказали самое интересное. Как именно у вас выполняется перекодирование видео? Это делается на CPU/GPU/ASIC? Какое железо и какое ПО для этого используется?

Сейчас мы транскодим и на x86 CPU и на GPU Nvidia. Про ASIC думаем, но пока только присматриваемся, подробнее про ASIC написал в ответе на комментарий выше.

Кодирование на CPU удобно с точки зрения масштабируемости в облаке, поэтому на него приходится существенная доля транскодинга.

Транскодер у нас самописный, основаный на библиотеках ffmpeg'а.

В 2026 году платформа VK Видео стала лидером в России по ежедневной и ежемесячной аудитории. За этим результатом стоит не только рост числа авторов и объёма контента. В его основе системное развитие технологий

Так и запишем, а не отсутствие конкуренции и то, что авторам некуда идти по большому счету.

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

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

И YouTube и китайцы тут впереди планеты всей.

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

Нет никаких проприетарных кодеков (уже нет). Даже Гугл один не потянет сегодня сделать такое.

К сведению, сейчас заканчивается стандартизации последнего из классических (без применения нейронных сетей), одну из основных ролей там как раз играет Гугл, но также и Apple, Netflix, Intel и много других. Я имею ввиду AVM/AV2, так там сложность только декодера повысилась в несколько раз, а энкодера более десяти (на порядок сложнее) и при этом битрейт снизили "всего лишь" на 25%.

Странно, в том тексте даже не один и не два проприетарных кодека упомянуты: https://habr.com/ru/articles/965452/

Не совсем корректно написано.

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

Именно так, в статье Дмитрия Сергеевича Ватолина говорится про собственные реализации стандартов.

Разработать свой кодек в значении свой стандарт задачка не из простых.

Стоит учесть, что в современных пользовательских устройствах есть аппаратные декодеры для H.264, VP9, AV1, которые удешевляют декодирование в терминах CPU и потребления батарейки.

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

Это скорее из серии бесполезных работ. Но сейчас все идёт к применению AI который рисует кадр, вот этого добра вскоре появится много и их уже можно будет отнести к собственным кодекам, которые никому не нужны.

Сделайте возможность выбора кодека при воспроизведении на h264. А то смысл от h264 если в браузере подается av1/vp9 и на старых видеокартах он аппаратно не декодируется

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

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

Импортозамещение с турбонаддувом) Когда тебе отключают гравитацию волей-неволей научишься летать

Главное чтобы сервера не расплавились от такого "системного развития"

Когда тебе отключают гравитацию волей-неволей научишься летать

Полёта не замечено. Когда использую вк видео, ощущение, будто двигаюсь в желе. При переходе по вкладкам (видео сообществ и тд) ленты прогружаются за стабильные 3-5 секунд с периодическими просадками секунд до 8-10, поиск иногда вообще умирает и приходится перезагружать страницу.
Рутубом пользуюсь с гораздо большим удовольствием.
Ещё и отпилили вквидео от основного веб приложения, намеренно или случайно потеряв всякие удобные UX фичи.
Так что лично мне такая импортозамещенная поделка не нужна.

В 2026 году платформа VK Видео стала лидером в России по ежедневной и ежемесячной аудитории.

Поздравляем

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

Ага, ВК стал настолько развитым, его инфраструктура стала такой замечательной, что его сервера не деградируют. Поэтому все авторы и пошли к ним.

/s

Так вот она, та самая миллионная статья!

16 февраля ID первалил за 1М. Я решил посмотреть куда же делся миллионик - он был в черновиках у @Nomad_77, а сегодня под ним публикуется ВК...

Теория заговора, не иначе. На самом деле, если бы было что-то незаконное, модераторы уже должны был отреагировать

Nomad_77 сам модератор)

Не удивлён. Даже тут не смогли в честную конкуренцию

Они даже номер поста умудрились импортозаместить в свою пользу )

Заходите на лучшую и стабильную платформу!

Ну тоже не криминал ведь. Красивая коммерческая история, если так. почему нет? Могу только поаплодировать пиарщикам, которые смогли себе позволить урвать айдишник.

Красивая коммерческая история, если так. почему нет?

Я так понимаю, коммерческие результаты у VK тоже красивые, если у них есть время тырить у юзеров красивые айдишники, о которых через день никто не вспомнит?

За Хабр рад, но не рад что именно вк она досталась..

Меня зовут Алексей Шпагин, я руководитель разработки бэкенда видеоплатформы VK

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

Давайте честно - ВК Видео таки обходит РуТуб на 2 порядка по всем параметрам. И ещё более честно - околопиратского контента там ну прямо слишком много, чтобы списывать его на случайности. Кто-то целенаправленно его туда заливает в промышленных масштабах. Начиная от "Прибытия поезда" братьев Люмьер и заканчивая буржуйскими сериалами в стадии показа. Ну и опция скачать, чтобы после посмотреть оффлайн - ну реально огонь.

Во-первых, это каперство, а не пиратство. Во-вторых, нетфликс богатый, от них не убудет.

Мониторил немного это дело в последнее время. В отличии от рутуба в вк достаточно стабильно выпиливаются сериалы и фильмы. Их конечно периодически перезаливают, снова снова и снова, в т.ч. в зеркальном виде, Но все равно, вчера работал сегодня уже видео удалено.

И Главное, этот контент кто-то бессовестно смотрит и крадёт его в свои воспоминания, если успевает уловить суть.

Cтатья вроде про высокие технологии, а по факту базовый ликбез про H.264 и HLS. Рассказали про FFmpeg так будто это какое то откровение 2026 года) А где самое мясо? Как они раскидывают задачи транскодинга на кластеры? Юзают ли аппаратные энкодеры типа NVENC или Quicksync, или молотят всt на CPU, обогревая дата-центры? Про архитектуру балансировщиков тоже как-то вскользь. Хотелось бы хардкора, а не статьи из Википедии

Тут, вы не поверите, всё не так прозрачно, как вам кажется, NVENC & QuickSync могут сильно связать руки при подборе профилей кодирования + кодируют они БЕЗУСЛОВНО очень быстро, но не очень качественно, оставляя артефакты, это уже прям нужно дотошное сравнение, но там они есть. Но, например 144 будет вполне чем не кодируй.

Да, с NVENC есть ряд сложностей, отчасти поэтому мы продолжаем много кодировать на CPU, не пытаемся полностью перейти на GPU или специализированное железо.

Я недели две назад трем ИИшникам про FFmpeg рассказал - для них это как откровение было! Народ "базы" не знает! У многих как оказалось компьютеров нет - всё в телефоне (ИИ в чатботах), игры на плойке, музыка в умной колонке, видео на смарт ТВ. При этом на работу устраиваются как опытный пользователь ПК!!!

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

как интересно) а у меня роняет битрейт, хотя руками выставлен максимально возможный и отключена экономия трафика)

Мне на днях, буквально вчера или позавчера, ваш замечательный VK Видео радостно посредине просмотра написал "видео не загружается, понизьте качество", жаль сразу не заскриншотил. А я и так смотрел в 720p, потому как выше - одни сплошные проблемы.

Падение качества вплоть до 144p при обычной перемотке стрелочками вперёд-назад или мышью по прогресс-бару - так и не починили. Зависание и пропажу звука после рекламы в клиенте на iOS - тоже. Случайный сброс видео на начало в любой момент - также всё ещё в наличии. Качество в 1080p хуже чем у треклятого YT в 720p - на месте.

Тот, за счёт "деградации" которого, вы "стали лидером" - такого себе не позволял, ни разу ничего из перечисленного.

Да-да. И такое бывает даже во время трансляций, например, когда смотрел Формулу 1, иногда на ровном месте прерывалось. И это при хорошей скорости домашнего интернета, 5 ГГц WiFi, 300+ Mbit/s.

при хорошей скорости домашнего интернета, 5 ГГц WiFi, 300+ Mbit/s.

Это именно что "домашний" интернет. От рутера до приемника. А если от провайдера до рутера 5Мбит/с, то от ваших 300 никакой пользы.

Нет вы посмотрите! Мы хвастаемся! Смотреть невозможно постоянные глюки! Интерфейс ЭТО НАДОЖЕ БЫЛО придумать, так расположить подписки! От большой любви к пользователям.

А уж что сотворили с банами. ВООООООТ Все нормальные люди которые пользовались ЮТУБ Твичем. знают, что если автор канала забанил, какого-то пользователя, то что?? Правильно ВЕСЬ МИР ЗАНЕТ пользователь переходит в режим МУТЕ и все довольны и пользователь продолжает смотреть канал.

А ТУТ ОХ ТУТ,.... Банится КАНАЛ от пользователя то есть ДЛЯ ПОЛЬЗОВАТЕЛЯ УДАЛЯЕТСЯ КАНАЛ и он его никогда больше не УВИДИТ , не НАЙДЕТ, и не получит доступа!

То есть такой пользователь будет видит что КАНАЛ ИСПАРИЛСЯ! А ОН ЕСТЬ!!!!!!!!! ПРОСТО в ВК такая КЛАСНАЯ система! КАКОЙ УЖАС и если просто как на ютубе автор не сошелся во мнении со зрителем, то тут... Получите все и по полной.

А техподдержки НЕТ ВООБЩЕ. У меня в контакте открывается мессенджер, а сообщения не отправляются! Горит красный восклицательный знак! И ВСЁ НЕТУ ДРУГИХ способов решить проблему! А ЗАЧЕМ? Мы же монополисты!

Хммм, ну хвастаетесь понятно, а вот технологический стэк вообще не раскрыт.

Как миниму хотелось бы информации - а сколько файловых транскодеров установлено в платформе для подготовки контента? Разделяете ли вы видео и аудио дороги? Ну и соответственно следующий вопрос, а как собираетесь поддерживать мультиязычность если в будущем понадобиться? Какие аудио-кодеки сейчас используете? Игрались ли каким-либо образом с GOP длинной, к каким выводам для себя пришли? Что с субтитрированием, планируете ли? Рассматривали или уже рассматриваете каки-либо стандарты для дальнейшего использования. Ну и на сладкое:
А кодированием применяли на 264, VP9 двухпроходное, ну я надеюсь, а что с возможностью использования ИИ после первого прохода и подготовки AI сценария кодирования уже по готовому алгоритмичному сценарию? NetFlix таким баловался и у них очень неплохо получалось. Ну и конечно же - а как распределяете ферму траскодеров? По каким принципам (пофайлово или кто-то научился резать чанками)? Используется ли какие-либо системы для моделирования workflow систем транскодирования?

Не всё, я замолкаю, а то уже сам начал хвастаться ))))

АААА забыл - как боретесь с интерлейсингом???? Какие фильтры применяете, как боретесь с ошибками полей и т.д. Там прям целые труды можно писать.

Хвастаться нехорошо, откуда так много слов "непонятных" знаете ?

Зачем вам двухпроходное кодирование, когда crf существует уже давным-давно? Исключая конечно случаи, когда вам нужно попасть в конкретный размер, но онлайн стриминги это вряд ли тот случай.

Да и деинтерлейса я бы никак не ожидал от стриминга (ну может разве что как опцию при просмотре).

Впрочем про более подробные технические детали энкодинга и правда было бы интересно почитать.

Ожидание: "Мы используем следующие методы накрутки количества просмотров на наших видео и вот такие пути по натягиванию KPI совой на глобус, а ещё вот столько платим блоггерам, чтобы хоть кто-то у нас что-то публиковал"

Реальность: интересная техническая статейка, спасибки, ещё и пост-миллионник. Когнитивный диссонанс какой-то получается ...

Да, да, вот уж где хотелось всё руками помацать и прогнать пару сотен тестов + привлёчь фокус-группу для слепого тестирования.

Когда в плеере VkVideo на LG Webos появится регулировка скорости, как на Ютубе ?

Невозможно же смотреть на x1 практически весь контент, хочется переключатели ускорения.

а я еще жду появление функционала изменения скорости у отмотанных трансляций.

Кстати изменение скорости у обычных видео есть в приложении вк видео для андроид тв и apple tv. На lg пока нету.

Возможно, никогда. YouTube на webOS использует свой "недобраузер" — Cobalt.

ВК Видео же, как и обычные приложения, использует Chromium (WebAppMgr). Собственно, WAM не поддерживает изменение скорости воспроизведения.

Модификация YouTube болеет тем же.

Ясно, а когда сделаете чтобы видео не перезагружалось само, прямо во время просмотра?

Интересная статья. Хотелось бы похожую статью, но про стриминг и получение записи стрима. Почему у вас приходиться ждать получения записи. Одно дело, когда мы загружаем видео в вк видео, где у видео могут быть разные кодеки, разрешения, контейнеры. И их нужно перевести в h264 кодек для вк. А другое дело стримы, которые и так уже подаются в нужном h264 кодеке. То есть уже в готовом видео. Почему их просто после окончания стрима не показать.

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

О, миллионная статья (https://habr.com/ru/companies/vk/articles/1000000) :).

Но само по себе ВК видео то ещё кривое легаси, регулярные прерывания видео, иногда фризы. Это я ещё молчу про ваши другие видеоплееры вроде того, что в Мой мир@mail.ru, этот сервис вообще в начале 10х застрял.

Мало того, что в ВК видео реклама зависает, так даже при хорошем интернете видео вылетают с ошибкой загрузки.

  • Так что лучше всего продолжить использовать YouTube, на Андроид - с Byebyedpi, на Windows - с zapret/NoDPI/GoodbyeDPI.

У меня с завидным постоянством падают вкладки вк видео, если их открыто штук 10 в FF.

В 2026 году платформа VK Видео стала лидером в России по ежедневной и ежемесячной аудитории

интересно как)))

органический рост в неорганических условиях..

Пишу в эпичном 1кк треде!

Я довольно много работаю с Н264, в том числе в условиях необходимости жёсткой оптимизации по битрейту. Поскольку пайплайн один для своих проектов и для соцсетей, гайки закручиваются на всех видео одинаково. Подозреваю, что моё «сырое» видео окажется меньше того, что сделает из него транскодер ВК, при более высоком визуальном качестве.

Отсюда первый вопрос: а можно ли как-то заливать к вам файлы, минуя этап транскодирования? Мне не сложно подготовить все нужные разрешения, всё автоматизировано. Или, может быть, вы хотя бы проверяете, не получился ли ваш оптимизированный результат больше оригинала?

Чтобы не быть голословным, вот цифры по совсем свежему проекту: видео 3840×2160@25p, битрейт архивного файла 17.5 Mbps. Это ниже того, что вы предлагаете для отдачи в плеер через веб. А мой файл не только не имеет визуально заметных артефактов (проверял на самых разных экранах), но и пригоден для дальнейшей работы, в том числе с кеингом, который вообще очень чувствителен к дефектам.

То, что высовывается на веб, жмётся агрессивно. Артефакты уже видны, но при этом равномерны по площади кадра и времени, и поэтому не так сильно раздражают. Просто чуть хуже качество без явных провалов. И та же запись идёт уже с битрейтом 2.6 Mbps — меньше 720p из вашей таблицы, а у меня, на минуточку, 2160p.

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

Расскажу об особенностях. Я не транскодирую видео, а всегда собираю из исходников, чтобы исключить потерю качества по дороге. Одно только это, по моим субъективным ощущениям, экономит 10–25% битрейта при одинаковом визуальном качестве. Более того, ранее испорченное видео уже не починить, сколько битрейта ни выдели, поэтому собранное из исходников всегда будет выглядеть лучше транскодированного.

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

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

Всё это наверняка можно упаковать в заклинание ffmpeg — мне не нужно, пользуюсь другим софтом, но возможности инструмента примерно представляю.

Если захотите пообщаться, пишите в личку.

Чуть хотелось бы больше узнать про защиту видео (DRM) и вставку рекламы в поток)

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

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

Ну и, конечно, чуть сложнее технически и с потерей качества — съёмка на камеру с экрана. С этим вообще непонятно, что в принципе можно сделать. По этой же причине любая «защита от скриншотов» в приложениях — фикция.

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

Есть HDCP, хотя она не обязательна, вроде, и ее можно отключить, по крайне мере пока :).

Позорно пользоваться устаревшим кодеком H.264 в 2026 году, качество видео в последнее время у вас упало. Использовали хотя бы минимально VP9, он не такой сложный в отличие от AV1. А если у вас не хватает ресурсов, тогда уж временно переложите эту задачу на автора видео, чтобы он сам кодировал в нужные форматы VP9, AV1 и выбирал битрейт, приемлемый для хранения в VK Видео, чтобы не пользоваться позорным H.264.

Это все очень круто, а есть какая-то информация, зачем выделять вк видео в отдельный домен со своей разметкой, отличной от вк? Невероятно раздражает, когда приходится туда заходить.

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

Ожидал чего-то необычного, а тут самая дефолтная схема из гайдов десятилетней давности. Но не удивлён.

Хоть бы у плеера баги пофиксили.

Вы лучше поясните почему у вас что клиент вк лагает в браузере, что само вк видео лагает?

Смысл изучать ваши там архитектуры, если они не вывозят ру трафик даже

Интересно, что написание статей не помогает сделать сервис стабильным и удобным. Поиск отвратительный, видео лагает, рекомендации - мусор. YouTube под vpn работает лучше чем локальный VK Видео.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Дмитрий Головин