SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Как передавать видео
                          по интернету
                              Макс Лапшин
                            max@erlyvideo.org




Monday, April 2, 12
Резюме

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

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


Monday, April 2, 12
Экскурс в историю ТВ

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

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

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

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



Monday, April 2, 12
Потом появилось IPTV

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

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

                      •   Constant bitrate

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

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


Monday, April 2, 12
С constant bitrate хорошо

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

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

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

                      •   Просто качество ужасное и трафик кошмарный



Monday, April 2, 12
Вдруг появился интернет

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

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

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

                      •   TCP заменители UDP тоже не ахти



Monday, April 2, 12
Пришли HLS/H.264/AAC


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

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

                      •   Кодеки тоже подоспели: H.264 экономит деньги.




Monday, April 2, 12
Всё в рамках MPEG

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

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

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




Monday, April 2, 12
Что творилось в интернете?

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

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

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

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

               •      Понимают, как это работает


Monday, April 2, 12
Напрограммировали от души

                      •   RTSP

                      •   PNA

                      •   MMS

                      •   RTMP



Monday, April 2, 12
Общая родовая травма



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




Monday, April 2, 12
Общая родовая травма

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

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



Monday, April 2, 12
Тупиковый подход

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

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

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

                      •   все плохо работают



Monday, April 2, 12
Не-HTTP доставка
                         не работает


Monday, April 2, 12
Динозавры пытаются выжить


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

                      •   Microsoft выпускает SmoothStreaming. Но убивает Silverlight.




Monday, April 2, 12
Другие динозавры сдохли

               •      Quicktime Player

               •      RealPlayer

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



                      а вместе с ними и серверы, вещающие туда


Monday, April 2, 12
Альтернативные кодеки


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

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




Monday, April 2, 12
Сухой остаток


                      •   HLS/H.264/AAC

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




Monday, April 2, 12
Причины изменений



Monday, April 2, 12
Равномерность кадров

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

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

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

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



Monday, April 2, 12
UDP

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

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

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

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

                      •   Слишком велика плата за потери кадров в H.264


Monday, April 2, 12
TCP
                      •   Одно решили, другое поломали

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

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

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

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

                      •   А ещё мультибитрейт

Monday, April 2, 12
TCP (RTMP, RTSP)


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




Monday, April 2, 12
Не-HTTP доставка контента
                            не работает


Monday, April 2, 12
Решение 30-летних проблем


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


Monday, April 2, 12
HTTP Streaming

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

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

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

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



Monday, April 2, 12
HTTP Streaming

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

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

                      •   Раздача файлов по HTTP. Просто как топор.



Monday, April 2, 12
HLS уже работает

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

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

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

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

                      •   в кровавом энтерпрайзе


Monday, April 2, 12
Трансляция прямого эфира



                        HLS + H.264 + AAC

                          временно немножко HDS для флеша

Monday, April 2, 12
Раздача файлов


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

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

                      •   Мультибитрейт




Monday, April 2, 12
Кровавый энтерпрайз


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

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

                      •   Всё это глючит и тормозит




Monday, April 2, 12
Кровавый энтерпрайз

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

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

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

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



Monday, April 2, 12
Всё идет к



                      HLS + H.264 + AAC


Monday, April 2, 12
Интернет

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

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

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

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



Monday, April 2, 12
Всё идет к



                      HLS + H.264 + AAC


Monday, April 2, 12
Практика

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

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

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

                      •   Adobe не развивает RTMP доставку



Monday, April 2, 12
Почему же так?


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

               • Хранение файла в виде чанков позволяет осуществить раздачу
                      через nginx




Monday, April 2, 12
Какие минусы у HLS/H.264/AAC

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

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

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

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



Monday, April 2, 12
Резюме

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

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

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

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



Monday, April 2, 12
Вопросы?


                        Макс Лапшин

                      max@erlyvideo.org




Monday, April 2, 12

Más contenido relacionado

Similar a Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)

Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2
rit2010
 
как сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp системкак сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp систем
Expolink
 
Максим Лапшин (Erlyvideo)
Максим Лапшин (Erlyvideo)Максим Лапшин (Erlyvideo)
Максим Лапшин (Erlyvideo)
Ontico
 

Similar a Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин) (7)

Erlyvideo
ErlyvideoErlyvideo
Erlyvideo
 
Erlyvideo v3
Erlyvideo v3Erlyvideo v3
Erlyvideo v3
 
Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2
 
как сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp системкак сделать правильный выбор на рынке Dlp систем
как сделать правильный выбор на рынке Dlp систем
 
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 ...
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядов
 
Максим Лапшин (Erlyvideo)
Максим Лапшин (Erlyvideo)Максим Лапшин (Erlyvideo)
Максим Лапшин (Erlyvideo)
 

Más de Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Más de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)

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