pyFMS

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Добрый день! Меня зовут Андрей Смирнов, я работаю техническим директором компании NetStream. Я расскажу о нашем опыте по созданию сервера вещаний для Flash. Сегодня этот сервер работает в качестве движка вещаний на сайте Smotri.com.

    1 Favorite

    pyFMS - Presentation Transcript

    1. Сервер Flash- вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted Андрей Смирнов NetStream
    2. Содержание
      • Обзор существующих решений .
      • Разработка своего решения ( pyFMS): выбор архитектуры, основные проблемы и пути их решения .
      • Борьба за качество: ретрансляция .
      • Полученные количественные характеристики .
    3. Общая схема RTMP
      • RTMP:
        • симметричный;
        • проприетарный;
        • закрытый.
      • Возможности:
        • удаленный вызов процедур ( RPC) ;
        • управление пропускной способностью;
        • работа с аудио-видео потоками (просмотр и запись).
      Клиент ( Flash) Сервер RTMP RTMP
    4. Существующие решения
      • Коммерческие:
        • Adobe Flash Media Server (FMS) ;
        • Wowza Media Server Pro .
      • Свободное ПО :
        • Red5 ( http://osflash.org/red5/ ) ;
        • Milenia Grafter ( http:// milgra.com / ) ;
    5. Архитектура сетевого сервера
      • Много процессов.
      • Много нитей.
      • Один поток (асинхронный ввод-вывод).
      • Комбинированный: асинхронный в/в + много нитей / процессов.
    6. Концепция нашего решения
      • Простота:
        • не будем реализовывать ничего лишнего;
        • простая архитектура - один поток выполнения.
      • Python :
        • нам хорошо знаком;
        • Twisted Framework ;
        • готовые модули: pyAMF .
    7. Twisted Framework
      • Концепция отложенного выполнения ( Deferred) .
      • Переносимый асинхронный ввод-вывод ( reactor) .
      • Реализация большого числа базовых протоколов ( HTTP, DNS, Telnet, и т.п.)
    8. Архитектура pyFMS Приложение 2 Приложение 1 Сервер pyFMS Комната 1 Комната 2 Разделяемый объект Поток (вещание) Клиенты:
    9. Схема вещания API Клиент pyFMS Сайт ( API) Сбор и анализ статистики Вещание Чат Разделяемый объект Поток (вещание) Запись потока на диск с последующей обработкой Удаленные вызовы процедур ( RPC)
    10. Эффективность реализации
      • Python – интерпретируемый ЯП
        • прозрачная сложность операций;
        • легкое расширение с помощью модулей на С.
      • Для увеличения производительности в два раза достаточно было :
        • переписать 5% кода на Python;
        • написать один модуль на C ( около 1000 строк кода).
    11. Ретрансляция
      • Вещание на 10 000 клиентов? Легко!
      pyFMS 1 pyFMS 2 pyFMS 3 pyFMS 4 Источник вещания Ретрансляторы Клиенты вещания Автор вещания
    12. Количественные характеристики
      • На один процесс (одно ядро процессора):
        • 10 тыс. соединений без потока вещания;
        • Вещание: в среднем 100 Мбит/с, пик 140 Мбит/с; примерно соответствует 700-900 человек, которые смотрят вещание.
      • Ретрансляция позволяет наращивать мощность практически неограниченно.
    13. Всё!
      • Вопросы?

    + Smirnov.AndreySmirnov.Andrey, 2 years ago

    custom

    1322 views, 1 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1322
      • 1184 on SlideShare
      • 138 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 2
    Most viewed embeds
    • 138 views on http://www.smira.ru

    more

    All embeds
    • 138 views on http://www.smira.ru

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags