Artemy Wiese
январь 2017.
13241

Почему видео на Youtube грузится быстрее чем на других сайтах ?

Ответить
Ответить
Комментировать
0
Подписаться
4
3 ответа
Поделиться

Компрессия, если одним словом отвечать. 

В команде ютьюб сидят умные ребята, в том числе в отделе R&D (исследования и разработки), которые, полагаю ещё на заре Ютьюб, придумали (адаптировали существующий) алгоритм сжатия и распаковки видео на лету. Передаётся сжатое видео и прямо перед просмотром декодируется. Ну а потом все полируется специалистами одной из лучших технологических корпораций (google) вот уже лет 10 кряду, поэтому и быстрее остальных.

17
-1

А как происходит распаковка на лету?

Сжатие на стороне сервера — это понятно. Там работают сжимающие алгоритмы в программах для сжатия. 

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

Как?

0
Ответить

Я бы предположил, что средствами canvas и HTML, т.к. проигрыватель Ютьюб давно не требует флеш и работает на этих технологиях.

+5
Ответить

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

+2
Ответить
Ещё 1 комментарий

Евгений, спасибо, не знал, где конкретно распаковывается что

0
Ответить
Прокомментировать

Помимо работы над сжатием и новыми улучшенными форматами видео (например, разработанный или .webm) Google очень сильно вкладывается в сетевую инфраструктуру. В том числе в России. Он размещает  сервера-зеркала на узловых точках Рунета, чтобы пользователь имел максимально быстрый доступ ресурсам компании. Например, сейчас время доступа от меня  до одного из таких зеркал (r2---sn-n8v7lne7.googlevideo.com), на котором лежат ролики YouTube порядка 0.001 секунды. Итог: хорошее сжатие + быстрый канал дает отличное качество загрузки.

Евгений Лисицкийотвечает на ваши вопросы в своейПрямой линии
10
0

Зеркало - полный дубляж базы данных YouTube?
Поясните для неграмотных :)

+1
Ответить

Вы правы: технически сложно, да и экономически неоправданно иметь по всему миру полные копии всего контента Youtube. Поэтому, как правило, сервера для таких раздач делят на 2 группы: одни занимаются хранением, а вторые раздачей. Под первые строится 1-2 огромных дата-центра, например, в Штатах это могут 2 дата-центра, расположенные на разных побережьях. Задача серверов первой группы - надежно все хранить. И даже если случится какая-то большая авария, что дата-центр/город/штат будут отрезаны от остального мира, то все равно проект продолжит работу из другого дата-центра. Понятно, что построить рядом с пользователем такой ДЦ не выйдет. Здесь на помощь приходят сервера раздающей группы. Они намного меньше по объему хранения, зато равномерно раскиданы по узловым точкам Интернет.

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

Таким образом удается решить сразу несколько проблем:

  • не ставить огромное количество серверов, которые будут хранить ненужный контент - т.е. будут работать в холостую

  • максимально приблизить раздающий сервер к пользователю и обеспечить комфортную скорость

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

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

  • на сервера хранения можно установить большие по объему, но медленные диски, тем самым снижая затраты на оборудование

+1
Ответить
Прокомментировать

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

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

7
-2
Прокомментировать
Ответить
Читайте также на Яндекс.Кью
Читайте также на Яндекс.Кью