SlideShare a Scribd company logo
1 of 27
Download to read offline
Erlyvideo —
                         видеостриминг на
                               erlang
                                Макс Лапшин
                             http://erlyvideo.org/




Monday, April 12, 2010
Телевизор был удобный


                  •      Включил и смотри;

                  •      Быстро и удобно переключать каналы.




Monday, April 12, 2010
А так же удобен интернет?

                  •      Как долго начать смотреть видео в интернете?

                  •      Почему такая долгая перемотка по роликам на ютубе?

                  •      На что тратится такая мощь и скорость каналов?

                  •      Что выберет ваша бабушка: телевизор Рубин или ютуб?



Monday, April 12, 2010
Плата за возможность
                                смотреть что хочешь

                  •      Телевизор показывает то, что   •   В интернете выбираем сами;
                         подготовили для всех;
                                                        •   Сервер для каждого
                  •      Телебашня вещает                   выполняет персональные
                         миллионам одно и то же.            действия.



Monday, April 12, 2010
Какие проблемы в интернете?
                  •      Большое время открытия видео с сервера;

                  •      Очень сложные алгоритмы сжатия видео;

                  •      Невозможность покадровой перемотки;

                  •      Чувствительность к потерям данных;

                  •      Неравномерная скорость сети.




Monday, April 12, 2010
Все способы трансляции видео
                         в интернете имеют проблемы.

                                    Какие?


Monday, April 12, 2010
Файлы по HTTP
                  •       Путь, выбранный youtube.com;

                  •       Прекрасное решение для 10-минутных роликов;

                  •       Самые низкие стартовые траты на ПО и аппаратуру;


               •         Мучительная перемотка;

               •         Неравномерное использование канала;

               •         Непригодность для трансляции прямого эфира.
Monday, April 12, 2010
«Бесконечные» файлы по HTTP
                  •      Несложный способ раздачи прямого эфира;


                  •      Проблемы с антивирусами;

                  •      Невозможность отмотки назад (timeshift);

                  •      На паузе можно держать не больше жесткого диска;

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

Monday, April 12, 2010
RTMP (Adobe streaming)
                                   Real Time Media Protocol

                • Оптимальное использование ширины канала;
                • Быстрая перемотка;
                • Быстрый старт проигрывания;
                • Возможность видеоконференции.
               • Закрытый протокол;
               • Проблемы с антивирусами.
Monday, April 12, 2010
Существующий опыт

                  •      Есть успешная реализация сервера на ObjectiveC;

                  •      Сложности с таймаутами, утечками памяти, многоядерностью;

                  •      Возникло предположение, что многие проблемы — артефакты
                         платформы.




Monday, April 12, 2010
Гипотеза об
                                эффективности erlang

                  Предположение: язык erlang даст сосредоточиться на бизнес-логике.
                         Результат: erlyvideo — открытый видеостриминговый сервер.




Monday, April 12, 2010
Почему именно erlang?




Monday, April 12, 2010
Много ядер — много ниток
                  •       Языки C++, Java и т.п. дают возможность разрушить приложение
                          одновременным доступом к памяти из разных ниток;

                  •       Ошибка в одной нитке может разрушить остальные.



               •         В erlang-е существует полная изоляция данных и кода по
                         псевдопроцессам (сотни тысяч в одной программе);

               •         Ошибка в процессе не рушит остальные;


Monday, April 12, 2010
Утечки памяти
                  •       Сложность инструментов (valgrind) для нахождения утечек на C;

                  •       Дороговизна полного устранения утечек в программе на С.




               •         Иная природа утечек памяти в erlang упрощает устранение: оно
                         сводится к локализации и проблемой не является.


Monday, April 12, 2010
Горячее обновление кода
                  •       На языках C, Java и т.п. задача обновления кода не решена до
                          конца;

                  •       Отсутствует простой способ обновления кода без отключения
                          клиентов.


               •         Горячее обновление кода из коробки без усилий программиста
                         даже в работающих процессах;

               •         Жестко детерминированные точки обновления кода.

Monday, April 12, 2010
Параметризация функций
               Параметризация по типу входных данных:

               •         не всегда отражает детали бизнес-логики;

               •         порождает мифы о непригодности ООП.


               Параметризация по значениям входных данных:

               •         ближе к бизнес-логике;

               •         дает удобный синтаксис для работы с бинарными данными.
Monday, April 12, 2010
RPC
                  •       Задача вызова функций на другом компьютере для семейства
                          языков C за 30 лет не решена до конца;

                  •       Проблемы с передачей объектов, ссылок на них, распределенной
                          сборкой мусора.


               •         Замена в erlang классических объектов и ссылок на них на
                         процессы, PID-ы которых прозрачно передаются по сети в
                         сообщениях;

               •         Надежный мониторинг состояния процессов на других нодах.
Monday, April 12, 2010
Масштабирование по ядрам

                  •       Сложность написания линейно масштабирующуейся по ядрам
                          программы на C из-за синхронизации доступа к общим данным.




               •         erlang даёт линейное масштабирование по количеству ядер на
                         рассматриваемых задачах без усилий программиста.



Monday, April 12, 2010
Время обучения

                  •       Пары месяцев на C++ вряд ли хватит.




               •         По информации от различных источников: 2 недель хватит;

               •         Программист может учиться «в бою» и писать плохой код: он не
                         разрушит работу чужого кода.

Monday, April 12, 2010
Неужели нет проблем?

                         Есть — и о некоторых стоит
                               знать заранее.


Monday, April 12, 2010
Стоит учесть:

                  •      В erlang медленная арифметика;

                  •      сложность ручного контроля за памятью;

                  •      отсутствие штатного менеджера пакетов;

                  •      много церемонии при использовании библиотеки на C;

                  •      непригодность для embedded: 10МБ RAM минимум для erlang.


Monday, April 12, 2010
Роль erlang в erlyvideo
                  •      Эффективный, отлаженный, взрослый инструмент для создания
                         сетевого сервера;

                  •      более быстрое развитие, чем у аналогичного сервера на Java: Red5;

                  •      мало коммитеров как из-за специфики предметной области, так и
                         из-за редкого языка;

                  •      сложности со скриптингом: lua/руби в erlang не встроишь;

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

Monday, April 12, 2010
Результаты erlyvideo
                             В короткие сроки получился медиасервер, который умеет:

               •         Брать видео из файлов, с плат захвата, программ транскодирования и аппаратных
                         перекодировщиков, с IP-вебкамер и обычных камер;

               •         Раздавать видео как флеш-клиентам, так на iPhone и телеприставки;

               •         Организовывать видеоконференции через веб;

               •         Выполнять функции на сервере;

               •         Показывать прямые трансляции с отмоткой назад;

               •         erlyvideo справляться с обслуживанием 1800 пользователей, раздавая 1 гигабит видео
                         с одного компьютера.

Monday, April 12, 2010
Цены на RTMP серверы:
                  •      Erlyvideo 0$ (открыты исходники, MIT)

                  •      Adobe FMS 4500$ (995$ за крайне урезанный вариант) (закрытый)

                  •      Wowza 995$ (закрытый)

                  •      Red5 0$ (открыты исходники, LGPL)




Monday, April 12, 2010
Планы развития

                  •      Раздача прямого эфира на iPhone из буфера таймшифта;

                  •      Сохранение и показ бесконечных потоков с камер
                         видеонаблюдения;

                  •      Серверное эхоподавление (с веб-страницы нельзя проводить
                         конференцию без гарнитуры).



Monday, April 12, 2010
Выводы

                  •      Erlang — эффективная как по скорости разработки, так и
                         стабильности работы среда;

                  •      Вполне обосновано использование erlang вместо классического
                         выбора (C++/Java);

                  •      Примером тому является хорошо развивающийся
                         видеостриминговый сервер erlyvideo.



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


                         http://erlyvideo.org/




Monday, April 12, 2010

More Related Content

Viewers also liked

Denis Samoseev Risk Management
Denis Samoseev Risk ManagementDenis Samoseev Risk Management
Denis Samoseev Risk Managementguest092df8
 
Alexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky HpdsAlexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky Hpdsguest092df8
 
Serge P Nekoval Grails
Serge P  Nekoval  GrailsSerge P  Nekoval  Grails
Serge P Nekoval Grailsguest092df8
 
Alexander Shigin Slides
Alexander Shigin SlidesAlexander Shigin Slides
Alexander Shigin Slidesguest092df8
 
Vladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 ReputationVladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 Reputationguest092df8
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsguest092df8
 
Artem Volftrub анатомия интернет банка
Artem Volftrub анатомия интернет банкаArtem Volftrub анатомия интернет банка
Artem Volftrub анатомия интернет банкаguest092df8
 
Andrew Shitov Rakudo Jonathan
Andrew Shitov Rakudo JonathanAndrew Shitov Rakudo Jonathan
Andrew Shitov Rakudo Jonathanguest092df8
 

Viewers also liked (8)

Denis Samoseev Risk Management
Denis Samoseev Risk ManagementDenis Samoseev Risk Management
Denis Samoseev Risk Management
 
Alexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky HpdsAlexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky Hpds
 
Serge P Nekoval Grails
Serge P  Nekoval  GrailsSerge P  Nekoval  Grails
Serge P Nekoval Grails
 
Alexander Shigin Slides
Alexander Shigin SlidesAlexander Shigin Slides
Alexander Shigin Slides
 
Vladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 ReputationVladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 Reputation
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Artem Volftrub анатомия интернет банка
Artem Volftrub анатомия интернет банкаArtem Volftrub анатомия интернет банка
Artem Volftrub анатомия интернет банка
 
Andrew Shitov Rakudo Jonathan
Andrew Shitov Rakudo JonathanAndrew Shitov Rakudo Jonathan
Andrew Shitov Rakudo Jonathan
 

Similar to Max Lapshin Erlyvideo V1

Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на ErlangMax Lapshin
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang productionAlina Dolgikh
 
Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?Minsk Linux User Group
 
что и почему вы должны программировать на Erlang.максим лапшин. зал 4
что и почему вы должны программировать на Erlang.максим лапшин. зал 4что и почему вы должны программировать на Erlang.максим лапшин. зал 4
что и почему вы должны программировать на Erlang.максим лапшин. зал 4rit2011
 
Eventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийEventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийАлександр Ежов
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for YandexMax Lapshin
 
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...DevGAMM Conference
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Max Lapshin
 
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
Olga Lavrentieva
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)
Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)
Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)Ontico
 
Wargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движковWargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движковDevGAMM Conference
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковAlex Tumanoff
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
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
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализpcweek_ua
 

Similar to Max Lapshin Erlyvideo V1 (20)

Erlyvideo
ErlyvideoErlyvideo
Erlyvideo
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang production
 
Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?
 
что и почему вы должны программировать на Erlang.максим лапшин. зал 4
что и почему вы должны программировать на Erlang.максим лапшин. зал 4что и почему вы должны программировать на Erlang.максим лапшин. зал 4
что и почему вы должны программировать на Erlang.максим лапшин. зал 4
 
Eventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийEventmachine: структура evented-приложений
Eventmachine: структура evented-приложений
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for Yandex
 
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”

 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)
Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)
Окончательное решение вопроса трансляции видео в интернете (Макс Лапшин)
 
Wargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движковWargaming.net: Архитектура современных 3D движков
Wargaming.net: Архитектура современных 3D движков
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
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 ...
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализ
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
 

Max Lapshin Erlyvideo V1

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