SlideShare una empresa de Scribd logo
1 de 40
Как передавать видео
    по интернету
        Макс Лапшин
      max@erlyvideo.org
Резюме

  Сегодня уникальная ситуация:

• один аудиокодек
• один видеокодек
• один транспортный контейнер (почти один)
Экскурс в историю ТВ

•   Аналоговая передача была удобной

•   Никакой компрессии, никаких задержек

•   Рисуем синхронно с сигналом

•   Вещатель управляет клиентом
Потом появилось IPTV

•   Решения не поменялись

•   Multicast UDP / DVB-S MPEG-TS пакеты

•   Constant bitrate

•   Всё почти как в аналоге

•   И тормозные CMS-ки на Java по 100 тыс Евро
С constant bitrate хорошо

•   Время и трафик друг в друга конвертируются одной формулой

•   Перемотка элементарна

•   Нагрузка на сеть постоянна

•   Просто качество ужасное и трафик кошмарный
Вдруг появился интернет

•   Только «у них» это называется OTT — Over The Top

•   А в нём потери пакетов и jitter

•   UDP не работает, мультикаста вообще нет

•   TCP заменители UDP тоже не ахти
Пришли HLS/H.264/AAC


•   Доставка кусков MPEG-TS потока по HTTP

•   С задержкой видео. Ну и пусть, люди уже привыкли.

•   Кодеки тоже подоспели: H.264 экономит деньги.
Всё в рамках MPEG

•   Инженеры IPTV рады.

•   Им лишь бы кровавый энтерпрайз со стандартами.

•   Ведь у многих из них «HTTP пакеты бьются, надо чексуммы
    проверять».
Что творилось в интернете?

    В отличие от IPTV:

•   Совершенно другой мир

•   Денег мало и их умеют считать

•   Умеют программировать

•   Понимают, как это работает
Напрограммировали от души

•   RTSP

•   PNA

•   MMS

•   RTMP
Общая родовая травма



Сервер управляет клиентом и равномерно во времени шлет кадры
Общая родовая травма

  Получается два плеера:

• один на клиенте равномерно проигрывает кадры от сервера
• второй на сервере равномерно шлет кадры
  Их слишком сложно синхронизировать
Тупиковый подход

•   стриминговые TCP протоколы не масштабируются

•   слишком дороги в обслуживании

•   мало чего могут

•   все плохо работают
Не-HTTP доставка
   не работает
Динозавры пытаются выжить


•   Adobe выпускает HDS. Но убивает флеш.

•   Microsoft выпускает SmoothStreaming. Но убивает Silverlight.
Другие динозавры сдохли

•   Quicktime Player

•   RealPlayer

•   MMS проигрыватели



    а вместе с ними и серверы, вещающие туда
Альтернативные кодеки


•   MPEG-2 и MPEG-4 уже перестали тухнуть и дурно пахнуть

•   VP8 — обман и лицемерство по поводу patent-free
Сухой остаток


•   HLS/H.264/AAC

•   небольшой временный атавизм в виде HDS для флеша
Причины изменений
Равномерность кадров

•   Клиент равномерно во времени засовывает кадры в железо

•   Энкодер равномерно во времени сжимает кадры в поток

•   Между ними рвущийся, тормозной, лагающий интернет

•   И ещё микроволновка возле WiFi точки
UDP

•   UDP передает данные с маленькой задержкой и с маленьким jitter

•   В изолированной сети вроде даже работает

•   Но в интернете нет

•   И нет мультикаста

•   Слишком велика плата за потери кадров в H.264
TCP
•   Одно решили, другое поломали

•   Потерь данных нет, зато есть jitter

•   Для компенсации jitter-а придумали буфер клиента

•   Для компенсации буфера придумали prepush

•   Оптимизация перемотки в рамках prepush буфера

•   А ещё мультибитрейт
TCP (RTMP, RTSP)


Всё это глючит и тормозит
и не проходит через файрволы
Не-HTTP доставка контента
      не работает
Решение 30-летних проблем


Пускай клиент сам решает что
смотреть
HTTP Streaming

•   Сервер рассказывает клиенту о доступных вариантах контента

•   Клиент скачивает чанки видео как обычные мегабайтные файлы

•   Если время скачивания чанка больше его длительности, значит
    интегральной скорости сети не хватает

•   Если чанков в очереди много, значит сеть хорошая
HTTP Streaming

•   Позволил перейти от ненадежных моментальных замеров качества
    к надежным интегральным

•   Во много раз удешевил «кластеризацию»: обычный HTTP-кеш даёт
    эффект близкий к мультикасту

•   Раздача файлов по HTTP. Просто как топор.
HLS уже работает

•   в компьютерах

•   в современных мобильных устройствах

•   в телевизионных приставках (Set-top-box)

•   в телевизорах

•   в кровавом энтерпрайзе
Трансляция прямого эфира



  HLS + H.264 + AAC

    временно немножко HDS для флеша
Раздача файлов


•   Быстрый старт проигрывания

•   Дешевая по трафику перемотка

•   Мультибитрейт
Кровавый энтерпрайз


•   Раньше была RTSP раздача файлов

•   Constant bitrate, много трафика, сложно и дорого (Kasenna)

•   Всё это глючит и тормозит
Кровавый энтерпрайз

•   Битрейт растет

•   Растет доля OTT

•   Старые технологии становятся слишком дорогими и нерабочими

•   А деньги даже там терять не любят
Всё идет к



HLS + H.264 + AAC
Интернет

•   Тут люди привыкли деньги считать и думать

•   Долго жил flv + mod_flv

•   До 30 мегабайт — годно

•   Нет мультибитрейта, дорогая по трафику перемотка
Всё идет к



HLS + H.264 + AAC
Практика

•   Ютуб перешел на HTTP стриминг для контента

•   Apple запрещает показывать видео не по HLS

•   В 2011 проекты выходили уже с HTTP стримингом

•   Adobe не развивает RTMP доставку
Почему же так?


• Кусочно-фрагментированная доставка видеопотока решает все
  указанные проблемы

• Хранение файла в виде чанков позволяет осуществить раздачу
  через nginx
Какие минусы у HLS/H.264/AAC

•   Родовая травма HLS в виде MPEG-TS

•   Связанность соседних чанков (continuity counters)

•   Большие накладные расходы (15-25%)

•   Временное отсутствие спектра инструментов
Резюме

•   Старые технологии эфирного ТВ в IPTV отмирают

•   Старые технологии live в интернете отмирают

•   Старые технологии раздачи файлов отмирают

•   Всё концентрируется на связке HLS + H.264 + AAC
Вопросы?


  Макс Лапшин

max@erlyvideo.org

Más contenido relacionado

La actualidad más candente

«Сетевые протоколы для веб разработчика — выжимаем максимум»
«Сетевые протоколы для веб разработчика — выжимаем максимум» «Сетевые протоколы для веб разработчика — выжимаем максимум»
«Сетевые протоколы для веб разработчика — выжимаем максимум» Гузель Рахимова
 
РИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияРИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияТарасов Константин
 
Видео + Конференция. Сетевые технологии ВКС. Стас Солдатов
Видео + Конференция. Сетевые технологии ВКС. Стас СолдатовВидео + Конференция. Сетевые технологии ВКС. Стас Солдатов
Видео + Конференция. Сетевые технологии ВКС. Стас СолдатовTrueConf__
 
Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Ontico
 
Скорость с доставкой до пользователя
Скорость с доставкой до пользователяСкорость с доставкой до пользователя
Скорость с доставкой до пользователяAnatoliy Orlov
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Andrey Smirnov
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ontico
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Ontico
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
 
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентацияPavel Odintsov
 
Cdn hosting решения для drupal (medium)
Cdn hosting   решения для drupal (medium)Cdn hosting   решения для drupal (medium)
Cdn hosting решения для drupal (medium)DrupalCamp Kyiv Рысь
 
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)Ontico
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, BadooOntico
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Ontico
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Ontico
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.odnoklassniki.ru
 

La actualidad más candente (18)

«Сетевые протоколы для веб разработчика — выжимаем максимум»
«Сетевые протоколы для веб разработчика — выжимаем максимум» «Сетевые протоколы для веб разработчика — выжимаем максимум»
«Сетевые протоколы для веб разработчика — выжимаем максимум»
 
РИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияРИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использования
 
Видео + Конференция. Сетевые технологии ВКС. Стас Солдатов
Видео + Конференция. Сетевые технологии ВКС. Стас СолдатовВидео + Конференция. Сетевые технологии ВКС. Стас Солдатов
Видео + Конференция. Сетевые технологии ВКС. Стас Солдатов
 
Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)
 
Скорость с доставкой до пользователя
Скорость с доставкой до пользователяСкорость с доставкой до пользователя
Скорость с доставкой до пользователя
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентация
 
Cdn hosting решения для drupal (medium)
Cdn hosting   решения для drupal (medium)Cdn hosting   решения для drupal (medium)
Cdn hosting решения для drupal (medium)
 
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
Как не надо писать приложения, основанные на протоколе TCP (Артём Гавриченков)
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
 

Destacado

ВТ-2015 Лекция 3. Кодирование, часть 2
ВТ-2015 Лекция 3. Кодирование, часть 2ВТ-2015 Лекция 3. Кодирование, часть 2
ВТ-2015 Лекция 3. Кодирование, часть 2Denis Korolev
 
Кодирование графики
Кодирование графикиКодирование графики
Кодирование графикиEvgeny Smirnov
 
Choosing An Lms In Kazakhstan
Choosing An Lms In KazakhstanChoosing An Lms In Kazakhstan
Choosing An Lms In KazakhstanStefSiewert
 
Расширения h264 и предобзор h265
Расширения h264 и предобзор h265Расширения h264 и предобзор h265
Расширения h264 и предобзор h265MSU GML VideoGroup
 
двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст NadinFura
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование ХаффманаDEVTYPE
 
Devpoint2 video in internet
Devpoint2 video in internetDevpoint2 video in internet
Devpoint2 video in internetMax Lapshin
 
Кодирование и декодирование информации.
 Кодирование  и декодирование информации. Кодирование  и декодирование информации.
Кодирование и декодирование информации.idoloto
 

Destacado (8)

ВТ-2015 Лекция 3. Кодирование, часть 2
ВТ-2015 Лекция 3. Кодирование, часть 2ВТ-2015 Лекция 3. Кодирование, часть 2
ВТ-2015 Лекция 3. Кодирование, часть 2
 
Кодирование графики
Кодирование графикиКодирование графики
Кодирование графики
 
Choosing An Lms In Kazakhstan
Choosing An Lms In KazakhstanChoosing An Lms In Kazakhstan
Choosing An Lms In Kazakhstan
 
Расширения h264 и предобзор h265
Расширения h264 и предобзор h265Расширения h264 и предобзор h265
Расширения h264 и предобзор h265
 
двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст двоичное кодирование информации: звук, изображение, текст
двоичное кодирование информации: звук, изображение, текст
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование Хаффмана
 
Devpoint2 video in internet
Devpoint2 video in internetDevpoint2 video in internet
Devpoint2 video in internet
 
Кодирование и декодирование информации.
 Кодирование  и декодирование информации. Кодирование  и декодирование информации.
Кодирование и декодирование информации.
 

Similar a Актуальное состояние вещания видео в интернете

«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...DotNetConf
 
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...TrueConf
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Дмитрий Костюк
 
Максим Лапшин, Erlyvideo
Максим Лапшин, ErlyvideoМаксим Лапшин, Erlyvideo
Максим Лапшин, ErlyvideoOntico
 
Видео в сети
Видео в сетиВидео в сети
Видео в сетиGetDev.NET
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02Newlink
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02LLC NewLink
 
как сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp системкак сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp системExpolink
 
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...Ontico
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSYandex
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...Ontico
 
Eventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийEventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийАлександр Ежов
 
Евгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаЕвгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаOntico
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...TrueConf
 
gRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийgRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийMad Devs
 

Similar a Актуальное состояние вещания видео в интернете (20)

«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
 
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
Видео+Конференция 2015: ВКС на миллион зрителей: видеотрансляции, их тонкости...
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"
 
Максим Лапшин, Erlyvideo
Максим Лапшин, ErlyvideoМаксим Лапшин, Erlyvideo
Максим Лапшин, Erlyvideo
 
Видео в сети
Видео в сетиВидео в сети
Видео в сети
 
Видео в сети
Видео в сетиВидео в сети
Видео в сети
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
 
как сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp системкак сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp систем
 
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
Применение блокчейна в RTB. Можно ли масштабировать децентрализованную базу д...
 
Eventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийEventmachine: структура evented-приложений
Eventmachine: структура evented-приложений
 
Евгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаЕвгений Потапов, АйТиСумма
Евгений Потапов, АйТиСумма
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
 
gRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийgRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложений
 

Más de Max Lapshin

Erlang railsclub - 1
Erlang   railsclub - 1Erlang   railsclub - 1
Erlang railsclub - 1Max Lapshin
 
Flussonic IPTV OTT
Flussonic IPTV OTTFlussonic IPTV OTT
Flussonic IPTV OTTMax Lapshin
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовMax Lapshin
 
Там, где Rails не справляются
Там, где Rails не справляютсяТам, где Rails не справляются
Там, где Rails не справляютсяMax Lapshin
 
Rails, Eventmachine, Erlang
Rails, Eventmachine, ErlangRails, Eventmachine, Erlang
Rails, Eventmachine, ErlangMax Lapshin
 
Code generation in Erlang
Code generation in ErlangCode generation in Erlang
Code generation in ErlangMax Lapshin
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for YandexMax Lapshin
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на ErlangMax Lapshin
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Max Lapshin
 
Отличие Erlang от объектных языков
Отличие Erlang от объектных языковОтличие Erlang от объектных языков
Отличие Erlang от объектных языковMax Lapshin
 
кеширование в бд
кеширование в бдкеширование в бд
кеширование в бдMax Lapshin
 

Más de Max Lapshin (14)

Erlang railsclub - 1
Erlang   railsclub - 1Erlang   railsclub - 1
Erlang railsclub - 1
 
Flussonic IPTV OTT
Flussonic IPTV OTTFlussonic IPTV OTT
Flussonic IPTV OTT
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядов
 
Там, где Rails не справляются
Там, где Rails не справляютсяТам, где Rails не справляются
Там, где Rails не справляются
 
Rails, Eventmachine, Erlang
Rails, Eventmachine, ErlangRails, Eventmachine, Erlang
Rails, Eventmachine, Erlang
 
Code generation in Erlang
Code generation in ErlangCode generation in Erlang
Code generation in Erlang
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for Yandex
 
Http streaming
Http streamingHttp streaming
Http streaming
 
Erlang&rails
Erlang&railsErlang&rails
Erlang&rails
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 
Отличие Erlang от объектных языков
Отличие Erlang от объектных языковОтличие Erlang от объектных языков
Отличие Erlang от объектных языков
 
Erlyvideo
ErlyvideoErlyvideo
Erlyvideo
 
кеширование в бд
кеширование в бдкеширование в бд
кеширование в бд
 

Актуальное состояние вещания видео в интернете

  • 1. Как передавать видео по интернету Макс Лапшин max@erlyvideo.org
  • 2. Резюме Сегодня уникальная ситуация: • один аудиокодек • один видеокодек • один транспортный контейнер (почти один)
  • 3. Экскурс в историю ТВ • Аналоговая передача была удобной • Никакой компрессии, никаких задержек • Рисуем синхронно с сигналом • Вещатель управляет клиентом
  • 4. Потом появилось IPTV • Решения не поменялись • Multicast UDP / DVB-S MPEG-TS пакеты • Constant bitrate • Всё почти как в аналоге • И тормозные CMS-ки на Java по 100 тыс Евро
  • 5. С constant bitrate хорошо • Время и трафик друг в друга конвертируются одной формулой • Перемотка элементарна • Нагрузка на сеть постоянна • Просто качество ужасное и трафик кошмарный
  • 6. Вдруг появился интернет • Только «у них» это называется OTT — Over The Top • А в нём потери пакетов и jitter • UDP не работает, мультикаста вообще нет • TCP заменители UDP тоже не ахти
  • 7. Пришли HLS/H.264/AAC • Доставка кусков MPEG-TS потока по HTTP • С задержкой видео. Ну и пусть, люди уже привыкли. • Кодеки тоже подоспели: H.264 экономит деньги.
  • 8. Всё в рамках MPEG • Инженеры IPTV рады. • Им лишь бы кровавый энтерпрайз со стандартами. • Ведь у многих из них «HTTP пакеты бьются, надо чексуммы проверять».
  • 9. Что творилось в интернете? В отличие от IPTV: • Совершенно другой мир • Денег мало и их умеют считать • Умеют программировать • Понимают, как это работает
  • 11. Общая родовая травма Сервер управляет клиентом и равномерно во времени шлет кадры
  • 12. Общая родовая травма Получается два плеера: • один на клиенте равномерно проигрывает кадры от сервера • второй на сервере равномерно шлет кадры Их слишком сложно синхронизировать
  • 13. Тупиковый подход • стриминговые TCP протоколы не масштабируются • слишком дороги в обслуживании • мало чего могут • все плохо работают
  • 14. Не-HTTP доставка не работает
  • 15. Динозавры пытаются выжить • Adobe выпускает HDS. Но убивает флеш. • Microsoft выпускает SmoothStreaming. Но убивает Silverlight.
  • 16. Другие динозавры сдохли • Quicktime Player • RealPlayer • MMS проигрыватели а вместе с ними и серверы, вещающие туда
  • 17. Альтернативные кодеки • MPEG-2 и MPEG-4 уже перестали тухнуть и дурно пахнуть • VP8 — обман и лицемерство по поводу patent-free
  • 18. Сухой остаток • HLS/H.264/AAC • небольшой временный атавизм в виде HDS для флеша
  • 20. Равномерность кадров • Клиент равномерно во времени засовывает кадры в железо • Энкодер равномерно во времени сжимает кадры в поток • Между ними рвущийся, тормозной, лагающий интернет • И ещё микроволновка возле WiFi точки
  • 21. UDP • UDP передает данные с маленькой задержкой и с маленьким jitter • В изолированной сети вроде даже работает • Но в интернете нет • И нет мультикаста • Слишком велика плата за потери кадров в H.264
  • 22. TCP • Одно решили, другое поломали • Потерь данных нет, зато есть jitter • Для компенсации jitter-а придумали буфер клиента • Для компенсации буфера придумали prepush • Оптимизация перемотки в рамках prepush буфера • А ещё мультибитрейт
  • 23. TCP (RTMP, RTSP) Всё это глючит и тормозит и не проходит через файрволы
  • 25. Решение 30-летних проблем Пускай клиент сам решает что смотреть
  • 26. HTTP Streaming • Сервер рассказывает клиенту о доступных вариантах контента • Клиент скачивает чанки видео как обычные мегабайтные файлы • Если время скачивания чанка больше его длительности, значит интегральной скорости сети не хватает • Если чанков в очереди много, значит сеть хорошая
  • 27. HTTP Streaming • Позволил перейти от ненадежных моментальных замеров качества к надежным интегральным • Во много раз удешевил «кластеризацию»: обычный HTTP-кеш даёт эффект близкий к мультикасту • Раздача файлов по HTTP. Просто как топор.
  • 28. HLS уже работает • в компьютерах • в современных мобильных устройствах • в телевизионных приставках (Set-top-box) • в телевизорах • в кровавом энтерпрайзе
  • 29. Трансляция прямого эфира HLS + H.264 + AAC временно немножко HDS для флеша
  • 30. Раздача файлов • Быстрый старт проигрывания • Дешевая по трафику перемотка • Мультибитрейт
  • 31. Кровавый энтерпрайз • Раньше была RTSP раздача файлов • Constant bitrate, много трафика, сложно и дорого (Kasenna) • Всё это глючит и тормозит
  • 32. Кровавый энтерпрайз • Битрейт растет • Растет доля OTT • Старые технологии становятся слишком дорогими и нерабочими • А деньги даже там терять не любят
  • 33. Всё идет к HLS + H.264 + AAC
  • 34. Интернет • Тут люди привыкли деньги считать и думать • Долго жил flv + mod_flv • До 30 мегабайт — годно • Нет мультибитрейта, дорогая по трафику перемотка
  • 35. Всё идет к HLS + H.264 + AAC
  • 36. Практика • Ютуб перешел на HTTP стриминг для контента • Apple запрещает показывать видео не по HLS • В 2011 проекты выходили уже с HTTP стримингом • Adobe не развивает RTMP доставку
  • 37. Почему же так? • Кусочно-фрагментированная доставка видеопотока решает все указанные проблемы • Хранение файла в виде чанков позволяет осуществить раздачу через nginx
  • 38. Какие минусы у HLS/H.264/AAC • Родовая травма HLS в виде MPEG-TS • Связанность соседних чанков (continuity counters) • Большие накладные расходы (15-25%) • Временное отсутствие спектра инструментов
  • 39. Резюме • Старые технологии эфирного ТВ в IPTV отмирают • Старые технологии live в интернете отмирают • Старые технологии раздачи файлов отмирают • Всё концентрируется на связке HLS + H.264 + AAC
  • 40. Вопросы? Макс Лапшин max@erlyvideo.org

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n