Erlyvideo
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Erlyvideo

  • 7,543 views
Uploaded on

Доклад про erlyvideo — видеостриминговый сервер на erlang

Доклад про erlyvideo — видеостриминговый сервер на erlang

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Хорошая презентация! Начинаем тоже использовать Erlyvideo, на наш взгляд у него хорошие перспективы. Даже статью написал с обзором всех серверов, в которой Erlyvideo занимает не последнее место. http://itmultimedia.ru/media-servera-flash-media-server-wowza-erlyvideo-red5/
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
7,543
On Slideshare
6,432
From Embeds
1,111
Number of Embeds
10

Actions

Shares
Downloads
50
Comments
1
Likes
5

Embeds 1,111

http://l.lj-toys.com 522
http://lj-toys.com 438
http://eao197.blogspot.com 87
http://eao197.blogspot.ru 34
http://www.slideshare.net 19
http://www.linkedin.com 5
http://xss.yandex.net 3
http://shinetv.ucoz.ru 1
file:// 1
http://www.shieldproxy.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Erlyvideo — видеостриминг на erlang Макс Лапшин max@evilmartians.com http://erlyvideo.org/ Tuesday, April 13, 2010
  • 2. Телевизор был удобным • Включил и смотри; • Быстро и удобно переключать каналы. Tuesday, April 13, 2010
  • 3. А так ли удобен интернет? • Как долго стартует просмотр видео в интернете? • Почему такая медленная перемотка по роликам на ютубе? • На что тратится такая мощь и скорость каналов? • Что выберет ваша бабушка: телевизор Рубин или ютуб? Tuesday, April 13, 2010
  • 4. Плата за возможность смотреть то, что хочешь • Телевизор показывает то, что • В интернете выбираем сами; подготовили для всех; • Сервер для каждого • Телебашня вещает выполняет персональные миллионам одно и то же. действия. Tuesday, April 13, 2010
  • 5. Какие проблемы в интернете? • Большое время открытия видео с сервера; • Сложность алгоритмов сжатия видео; • Невозможность покадровой перемотки; • Чувствительность к потерям данных; • Неравномерная скорость сети. Tuesday, April 13, 2010
  • 6. Все способы трансляции видео в интернете имеют плюсы и минусы. Какие? Tuesday, April 13, 2010
  • 7. Файлы по HTTP • Путь, выбранный youtube.com; • Прекрасное решение для 10-минутных роликов; • Самые низкие стартовые траты на ПО и аппаратуру; • Мучительная перемотка; • Неравномерное использование канала; • Непригодность для трансляции прямого эфира. Tuesday, April 13, 2010
  • 8. «Бесконечные» файлы по HTTP • Несложный способ раздачи прямого эфира; • Проблемы с антивирусами; • Невозможность отмотки назад (timeshift); • На паузе можно держать не больше чем позволит жесткий диск; • Невозможно транслировать видео на сервер с камеры; • Невозможность контролировать буфер проигрывания. Tuesday, April 13, 2010
  • 9. RTMP (Adobe streaming) Real Time Media Protocol • Оптимальное использование ширины канала; • Быстрая перемотка; • Быстрый старт проигрывания; • Возможность видеоконференции. • Закрытый протокол; • Проблемы с антивирусами; • Сервер обязан присылать видеокадры в реальном времени. Tuesday, April 13, 2010
  • 10. Существующий у меня опыт • Есть успешная реализация RTMP сервера на ObjectiveC; • Сложности с таймаутами, утечками памяти, многоядерностью; • Возникло предположение, что многие проблемы — артефакты платформы. Tuesday, April 13, 2010
  • 11. Гипотеза об эффективности erlang Предположение: язык erlang даст сосредоточиться на бизнес-логике. Результат: erlyvideo — открытый видеостриминговый сервер. Tuesday, April 13, 2010
  • 12. Почему именно erlang? Tuesday, April 13, 2010
  • 13. Много ядер — много ниток • Языки C++, Java и т.п. дают возможность разрушить приложение одновременным доступом к памяти из разных ниток; • Ошибка в одной нитке может разрушить остальные. • В erlang-е существует полная изоляция данных и кода по псевдопроцессам (сотни тысяч в одной программе); • Ошибка в одном псевдопроцессе не обрушит остальные; Tuesday, April 13, 2010
  • 14. Утечки памяти • Сложность инструментов (valgrind) для нахождения утечек на C; • Дороговизна полного устранения утечек в программе на С. • Иная природа утечек памяти в erlang упрощает устранение: оно сводится к локализации и проблемой не является. Tuesday, April 13, 2010
  • 15. Горячее обновление кода • На языках C, Java и т.п. задача обновления кода не решена до конца; • Отсутствует простой способ обновления кода без отключения клиентов. • Горячее обновление кода из коробки без усилий программиста даже в работающих процессах; • Жестко детерминированные точки обновления кода. Tuesday, April 13, 2010
  • 16. Параметризация функций Параметризация по типу входных данных: • не всегда отражает детали бизнес-логики; • порождает мифы о непригодности ООП. Параметризация по значениям входных данных: • ближе к бизнес-логике; • дает удобный синтаксис для работы с бинарными данными. Tuesday, April 13, 2010
  • 17. RPC • Задача вызова функций на другом компьютере для семейства языков C за 30 лет не решена до конца; • Проблемы с передачей объектов, ссылок на них, распределенной сборкой мусора. • Замена в erlang классических объектов и ссылок на них на процессы, PID-ы которых прозрачно передаются по сети в сообщениях; • Надежный мониторинг состояния процессов на других нодах. Tuesday, April 13, 2010
  • 18. Масштабирование по ядрам • Сложность написания линейно масштабирующуейся по ядрам программы на C из-за синхронизации доступа к общим данным. • erlang даёт линейное масштабирование по количеству ядер на рассматриваемых задачах без усилий программиста. Tuesday, April 13, 2010
  • 19. Время обучения • Пары месяцев на C++ вряд ли хватит. • По информации от различных источников: 2 недель хватит; • Программист может учиться «в бою» и писать плохой код: он не разрушит работу чужого кода. Tuesday, April 13, 2010
  • 20. Неужели нет проблем? Есть — и о некоторых стоит знать заранее. Tuesday, April 13, 2010
  • 21. Стоит учесть: • медленную арифметику; • сложность ручного контроля за памятью; • отсутствие штатного менеджера пакетов; • много церемонии при использовании библиотеки на C; • непригодность для embedded: 10МБ RAM минимум для erlang. Tuesday, April 13, 2010
  • 22. Роль erlang в erlyvideo • Эффективный, отлаженный, взрослый инструмент для создания сетевого сервера; • более быстрое развитие, чем у аналогичного сервера на Java: Red5; • мало коммитеров как из-за специфики предметной области, так и из-за редкого языка; • сложности со скриптингом: lua/руби в erlang не встроишь; • больше концентрации на предметной области, чем на языке. Tuesday, April 13, 2010
  • 23. Результаты erlyvideo В короткие сроки получился медиасервер, который умеет: • Брать видео из файлов, с плат захвата, программ транскодирования и аппаратных перекодировщиков, с IP-вебкамер и обычных камер; • Раздавать видео как флеш-клиентам по RTMP и endless flv, так на iPhone и телеприставки; • Организовывать видеоконференции через веб; • Выполнять функции на сервере; • Показывать прямые трансляции с отмоткой назад; • Справляется с обслуживанием 1800 пользователей, раздавая 1 гигабит видео с одного компьютера. Tuesday, April 13, 2010
  • 24. Цены на RTMP серверы: • Erlyvideo 0$ (открыты исходники, MIT) • Adobe FMS 4500$ (995$ за крайне урезанный вариант) (закрытый) • Wowza 995$ (закрытый) • Red5 0$ (открыты исходники, LGPL) Tuesday, April 13, 2010
  • 25. Планы развития erlyvideo • Раздача прямого эфира на iPhone из буфера таймшифта; • Сохранение и показ бесконечных потоков с камер видеонаблюдения; • Серверное эхоподавление (с веб-страницы нельзя проводить конференцию без гарнитуры). Tuesday, April 13, 2010
  • 26. Выводы • Erlang — эффективная как по скорости разработки, так и стабильности работы среда; • Вполне обосновано использование erlang вместо классического выбора (C++/Java); • Доказательством тому является полнофункциональный, развивающийся видеостриминговый сервер erlyvideo. Tuesday, April 13, 2010
  • 27. Вопросы? Макс Лапшин max@evilmartians.com http://erlyvideo.org/ Tuesday, April 13, 2010