Пиринговая сеть в видеоплеере

    Часть пользователей уже могли заметить в нашем видеоплеере окно с предложением разрешить использование пиринговой сети. Просмотр роликов с использованием технологии peer-to-peer проходит последний этап тестирования. Из всех загружаемых на сайт роликов в тот или иной момент, как правило, просматриваются не более 10–15%. Еще 15–20% от этих роликов можно считать популярными. Переход на P2P существенно снижает нагрузку на сервера, предоставляя пользователям возможность принимать видеопоток также и с соседних клиентов (разумеется, так же подтвердивших участие в пиринговой сети).




    Разработка использует протокол RTMFP, реализуемый Flash Player 10.1 с клиентской стороны и Adobe Cirrus — с серверной.

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

    Видеоплеер может раздавать только то видео, которое просматривается в тот или иной момент — и только ту его часть, которая была загружена и все еще находится в памяти. При этом размер буфера не может превышать 64 Мб, чтобы не отъедать слишком много оперативной памяти. Теоретически для включения режима P2P достаточно и двух одновременно смотрящих видео пользователей. Однако целесообразно это только для тех роликов, которые смотрят одновременно десятки пользователей (как уже упоминалось выше, для ВКонтакте такие видео составляют порядка 15–20% от активно просматриваемых). В случае проигрывания роликов, для которых использование p2p не принесет видимых результатов, плеер переключается на стандартное скачивание.

    Для идентификации клиентов используется только ключ, выдаваемый Cirrus-сервером Adobe, ни IP-адрес, ни uid пользователя восстановить по нему не представляется возможным).



    Технические детали


    Как уже было упомянуто выше, для объединения в отдельную группу пользователей, просматривающих один и тот же видеоролик (в одном и том же разрешении), в данный момент используется сервис Cirrus от Adobe, взаимодействие с которым происходит по протоколу RTMFP. Поддержка соответствующего класса NetGroup появилась только в флэш плеере версии 10.1 — поэтому пользователи с плеером десятой версии предложение использовать P2P не увидят.

    Чтобы организовать обмен между пользователями частями одного видео, файл разбивается на чанки размером 64 Кб. Каждый чанк в первую очередь запрашивается у соседних пиров (регулируется весь этот процесс внутренне флэш плеером и сервером Cirrus), а при отсутствии ответа в течение нескольких секунд делается запрос напрямую к видеосерверам «В Контакте» — полученные данные разбиваются на чанки и раздаются другим пользователям.

    Для вывода загруженных чанков используется так называемый «режим создания данных» (Data Generation Mode) у класса NetStream. К сожалению, он не поддерживает формата MP4, который сейчас используется для хранения видео «В Контакте», поэтому у собранных из чанков видеофайлов теперь на лету меняется контейнер с MP4 на FLV.

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


    Промежуточные итоги


    Основные результаты на текущей стадии — ощутимое снижение задержек:
    1. При воспроизведении популярных роликов, одновременно загружаемых большим количеством пользователей.
    2. При проигрывании любых видео с произвольного места.
    Более масштабные выводы на этом этапе делать рано. Собираемая сейчас статистика говорит о том, что с пиров скачивается приблизительно от 7 до 10% всех данных. Процент стабильно растет.
    ВКонтакте 63,93
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 82
    • +1
      а проигрывание на мобильных устройствах с урезанным флешем работать будет?
      • +5
        Если на мобильном устройстве поддерживается хотя бы HTML5 — будет работать посредством него. P2P, естественно, применяться не будет.
        • 0
          А когда вы перестанете полностью игнорировать WP7, новая тач-версия сайта не работает. В полноценной версии видео в хтмл-5 не отдается, к тому же постоянно вылазит окно «Ваш браузер устарел, скачайте ФФ/Хром/Оперу». Я уже в супорт кучу раз писал, и не я один.
          • 0
            Может потому что седьмой осел в Windows Phone Nodo не такой уж и клевенький чтобы его поддерживать и он действительно устарел?
            Подождите Mango, там все очень хорошо работает в IE9. Сам уже попробовал — нравится :-)
            • 0
              Видео не работает, и в некоторых местах все же глючит. А так да, ваша правда.
              • 0
                Надеюсь, что еще что-то успеют исправить до релиза )
            • +10
              Не могу отвечать за разработчиков вконтакте, но предполагаю, что ответ прост — «Когда пользователи WP7 будут занимать хотя бы сколько-нибудь значимую долю пользователей вконтакте».
              • –2
                Т.е. нужно собрать большую толпу недовольных и силой заставить их? А пока мучаться и не юзать контакт.
                • +5
                  Большую толпу с WP7 придется собирать со всего мира.
                  А приоритезацией задач в зависимости от кол-ва затронутых пользователей занимаются все компании.
                  • +11
                    мучаться и не юзать контакт

                    бедняжечка ))))
                • –1
                  На Андройде тоже полноценный флэш.
                  • –2
                    Линуксойд на стеройдах ставил андройд.
                • 0
                  А что насчет Peer-to-Peer connections из драфта HTML5?
              • +3
                Для идентификации клиентов используется только ключ, выдаваемый Cirrus-сервером Adobe, ни IP-адрес, ни uid пользователя восстановить по нему не представляется возможным).

                Это как? Если чанки можно получить только от клиентов, которые смотрят это же видео, и от TCP/IP вам все равно никуда не деться?
                • 0
                  Извиняюсь, от UDP.
                  • 0
                    TCP/IP это стек протоколов, а UDP (как впрочем и TCP) это протокол транспортного уровня вышеупомянутого стека.
                    • 0
                      Я знаю. Это моя привычка перестраховываться: хотелось избежать очевидного ответа «Cirrus использует UDP, а не TCP». Извините за вынужденную неточность.
                  • +2
                    Все протоколы реализуются флэш-плеером, низкоуровневого доступа видеоплеер к ним не имеет. Конечно, если один из клиентов использует сниффер, то он сможет узнать IP-адреса соседей, с которыми в данный момент идет обмен данными, но не более того.
                    • 0
                      Из IP можно вытащить много информации, например город или даже район, а так же провайдера. Зная провайдера можно составить список обслуживаемых им домов. При должном упорстве можно составить примерный круг лиц, просматривающих популярное порно в контакте.
                      • +8
                        И что дальше?
                        • +1
                          А дальше что угодно. Самый частый вариант — потроллить.
                          • +2
                            Тех, кто смотрит порно гораздо больше, чем тех, кто порно не смотрит. Потроллить удастся разве что стеснительных школьников.
                            • 0
                              Зато Михалков может искать тех, кто смотрит его фильмы по IP
                              • 0
                                Т.е. сейчас он не может искать качающих с торрентов? По моему и там ему списка IP хватит. Да и получить список качающих/раздающих оттуда в разы проще.
                                • +8
                                  Кто-то смотрит фильмы Михалкова??
                      • 0
                        TCP/IP это стек протоколов. А UDP (как впрочем и TCP) — это протокол транспортного уровня вышеупомянутого стека. А IP, к слову, находится на сетевом уровне.
                      • 0
                        После ваших экспериментов у меня пропало видео (проигрывается 30-секундный джингл на тёмном фоне).
                        И ещё попутный вопрос.
                        Теперь, получается, я уже не смогу скачать .flv или .mp4 файл, чтобы потом его посмотреть в оффлайн (например плагином DownloadHelper)?
                        • 0
                          Скачать можете, ведь это только для проигрывания меняется контейнер. А напрямую с сервера запросить по прямой ссылке никто не запрещал
                          • +1
                            Пока да, качается (если я не включаю P2P режим).
                            Но если выключат возможность проигрывания старым способом, то видео будет передаваться по протоколу RTMFP, что исключает способ привычного обращения к файлу на сервере.
                            Поправьте меня, если я не прав.
                            • +1
                              Возможность проигрывания старым способом нет смысла отключать. Во-первых, p2p эффективен не всегда — ролик должно смотреть сразу несколько человек. Во-вторых, ни к чему так сразу отказываться от поддержки FP 10.0 и мобильных устройств без FP вообще. В-третьих, пользователь имеет право просто нажать «Запретить», что возвращает его к обычному просмотру.

                              Ну и наконец, даже при использовании p2p, чтобы видео передавалось RTMFP, какой-то пользователь (или, как правило — несколько пользователей, не дождавшихся ответа от пиров) должен его сначала скачать по-старинке, напрямую.
                        • +12
                          Так, с технической частью всё понятно.
                          А сажать-то теперь суровее будут?
                          Ведь получается, что человек не просто хранит фильм в видеотеке, он его ещё и распространяет
                          • +8
                            Причем, чтобы начать распространять, достаточно начать смотреть
                            • –2
                              суровые российские законы
                              • +5
                                Ну, как известно, суровость российских законов компенсируется необязательностью их исполнения
                                • 0
                                  Такое же не только в России
                            • 0
                              В Chrome dev на MacOS окошко с предложением включить пиринг не реагирует на клики. Tab'ом можно добиться перехода на нужные кнопки, но все равно на enter/space они не реагируют.
                              • 0
                                На убунте тоже самое наблюдал
                                • 0
                                  Подтверждаю это. Очень неудобно. Приходится брать ссылку из «получить код видео» и смотреть
                                  • +2
                                    у меня и в Сафари на MacOS та же проблема.
                                    • 0
                                      То же самое и на винде во всех браузерах…
                                      • +2
                                        На Маке я «обошел» это вот так:
                                        System Preferences -> Flash Player -> Tab «Playback» -> Button «Peer-assisted bla-bla-bla» -> Col «Website» -> vk.com -> «Allow».

                                        И после этих манипуляций у меня заработало.
                                        Правда с качеством видео мне как то не везло, все на как то 320 на 240 :(
                                        • 0
                                          Аналогично. Пришлось отключить. Опера, флеш свежий.
                                        • –1
                                          снеси Flash и заново поставь. мне помогло
                                          • 0
                                            Мне, к счастью, не настолько нужно вконтактовское видео и его пиринг, чтобы исправлять их факапы таким способом ;)
                                            • 0
                                              это «факапы» флеша, когда окошко с настройками «залипает».
                                              • 0
                                                Не очень важно, чей это факап. Ты предлагаешь всем пользователям VK его так устранять?
                                                • –1
                                                  кого это не устраивает, да.
                                                  это относится не к P2P. у меня такое было, когда просто открываешь настройки, окошко залипает и никакие настройки не поменяешь. я дал совет как исправить баг.

                                                  для ленивых: ждите автоматического обновления флеш, когда баг пофиксят
                                                  • 0
                                                    Ты же понимаешь, что в это логике есть изъян? И что Youtube, например, никогда не позволил бы себе выкатить функционал с известными проблемами, требующими переустановки flash?
                                                    • 0
                                                      этот баг проявляется на некоторых системах (в основном на Mac) при использовании не последней версии Flash или после перехода на OS X Lion
                                                      • 0
                                                        Хм, ты прав.
                                                        Возможно, доля аудитории VK под Lion не так велика.

                                                        Для тех, кому интересно:
                                                        bugbase.adobe.com/index.cfm?event=bug&id=2918693
                                                        • 0
                                                          У меня это проявляется на барсе. Последняя Опера, последний Флеш (а вообще, он теперь сам обновляется). И уж не знаю, чей это факап, но в маке в целом в флеше нажать на кнопку подобного «модального» окна, будь то даже доступ к камере/микрофону, очень сложно.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                              • 0
                                                было бы хорошо, но HTML5 еще не столь популярен. Время.
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                  • 0
                                                    Стив не любит Flash. А хорошая альтернатива только набирает обороты. Что мне очень не нравится — это просмотр Flash видео на Macbook Pro, кипит как утюг, тормозит как черепаха, шумит как самолет.
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                          • 0
                                            Правильно ли я понимаю, что пользующиеся и-нетом по трафику, могут потерять непредсказуемо много трафика соглашаясь на вариант P2P?
                                            • 0
                                              Только если исходящий тарифицируется.
                                              • 0
                                                Думаю также как и при использовании торрентов. Получается возрастание исходящего трафика. А там уже по тарифам надо смотреть. Обычно учитывается только входящий трафик, если он лимитирован.
                                                • 0
                                                  Обычно для проводной связи. Почти все ОПСОСы тарифицируют исходящий трафик для лимитных 3G/EDGE/GPRS тарифов. А учитывая, что лимитная проводная связь уже редкость, то скорее обычным стало обратное.
                                              • +11
                                                А вон тот дяденька в очках на картинке, ловящий трафик между двумя компьютерами, случайно не сотрудник силовых структур?
                                                • 0
                                                  Думал это бокал с коктейлем.
                                                  Еще подумал — какой идиот на него очки напялил. Он же пустой.
                                                  • 0
                                                    А если полный то в очках ок да?
                                                • +11
                                                  image
                                                • +1
                                                  А если p2p не сработает? Т.е. в некоторых моментах при неподходящей топологии, прокси, nat п2п может не включится. Как тогда флеш плеер поступит?
                                                • –7
                                                  Хм. Теоретически, теперь когда с тебя качают этот самый клип, то есть шанс подменить пакеты, и отправить свою левую рекламу вместо клипа?) ай да молодцы разработчики :D
                                                  • –3
                                                    а где опровержения моих слов от минусующих, и доказательства вашей точки зрения конкретными фактами?!
                                                    • +5
                                                      полагаю хеши не совпадут, как и в торрентах
                                                  • –1
                                                    Из всех загружаемых на сайт роликов в тот или иной момент, как правило, просматриваются не более 10–15%. Еще 15–20% от этих роликов можно считать популярными.


                                                    То есть, эффект будет примерно на 2% роликов?
                                                    • +2
                                                      Да, но эти 2% роликов будут составлять 98% просмотров.
                                                    • 0
                                                      Может ощибаюсь, но Adobe Cirrus разве на данном этапе только для «не комерческого» использования?
                                                      • 0
                                                        Cirrus-1 да, Cirrus-2 для комерческого + девелопер получает на тесты 15 $ при разработке
                                                      • 0
                                                        когда я пытаюсь просмотреть по подобное видео и флеш спрашивает меня можно или нет — я не могу нажать ни на одну клавишу, как будто там все заблокировано. теперь я не смотрю видео :(
                                                        • 0
                                                          Аналогичная проблема на OS X Lion
                                                        • 0
                                                          А в чём выгода пользователю?
                                                          Теперь у пользователя возрастает исходящий трафик, а т.к. при просмотре видео оно теперь ещё и распространяется, то в случае с просмотром нелегального контента — сразу же зарабатываем себе статью.
                                                          • 0
                                                            Выгода вот в этом:
                                                            С одной стороны, реже делаются прямые запросы к северу, и серверу становится легче дышать и отвечать на другие запросы. С другой стороны, скорость получения данных от «соседей» нередко может быть выше, чем от сервера в дата центре, поскольку система выбирает партнеров исходя из соображений максимальной эффективности.

                                                            Вкратце, ниже нагрузка на серверы — следовательно более комфортный просмотр видео.

                                                            Если есть опасения по поводу «статьи» — ну, наверное, стоит выбрать галку «Запомнить» и кнопку «Запретить», когда будет предложено пиринговую сеть использовать. Раздаваться ничего не будет — все останется по-старому. Ну или вообще воздержаться от просмотра нелегального контента :)
                                                            • 0
                                                              | Вкратце, ниже нагрузка на серверы — следовательно более комфортный просмотр видео.

                                                              Не логично же: если я соединяюсь не с сервером, а с 3-ими сторонами, то снижая нагрузку на сервер — я тем самым обеспечиваю более комфортный просмотр тем людям, кто соединяется не с 3-ими сторонами, а с сервером. А мне то это зачем?
                                                              • 0
                                                                Если бы в этой ситуации вы предпочли бы брать видео с сервера — весьма вероятно, что ему оказалось бы труднее вам ответить, чем те третьи стороны, которые уже забрали те же данные оттуда. (Если я правильно понял вопрос)

                                                                Проще говоря: несколько источников данных лучше, чем один.
                                                                • 0
                                                                  Отличный пример: торренты, которые живут тем, что пользователи сами себе «генерируют» трафик. Несмотря на то, что приходится отдавать (забивая канал), скорость скачивания растёт, так как данные идут не от одного сервера/пользователя, а от десятков и более. Так и тут. Обычно, когда вы смотрите видео, исходящий канал простаивает всё равно, а так получается всем хорошо.
                                                          • 0
                                                            Давно пора было сделать P2P, теперь будем смотреть фильмы с меньшими тормозами. Хотя интересно, когда реализация будет стабильно работать

                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                            Самое читаемое