FMSPy, релиз Alpha (0.1) 17

Posted by Андрей on Июнь 07, 2009

FMSPy Flash Media Server written in Python (FMSPy) – это еще один RTMP-сервер для приложений на Adobe Flash/Flex/Air. FMSPy является аналогом Adobe Flash Media Server, с гораздо меньшими возможностями, однако FMSPy – совершенно бесплатный проект с открытым исходным кодом. Проект находится на ранней стадии развития, но в активной разработке.

Итак, что есть на сегодняшний день:

  • Реализация RTMP-протокола: кодирование/декодирование пакетов, разрезание и склеивание из chunks и т.п.
  • Поддержка базового RPC (Invoke) клиент-сервер и сервер-клиент. То есть из Flash-приложения можно вызывать с помощью класса NetConnection методы приложения на стороне сервера, и наоборот со стороны сервера вызывать методы приложения.
  • Инфраструктура для написания приложений (в качестве плагинов к FMSPy) со своим API на Python.

В ближайших релизах:

  • Стриминг (вещание) с вебкамеры, стриминг видео/аудио с сервера (FLV, MP4, MP3).
  • Поддержка серверных Shared Object.
  • Анализ загрузки, полуавтоматическая кластеризация для распределения нагрузки.

FMSPy написан на Python с использованием Twisted Framework, приложения на FMSPy реализуются также на Python и им доступны все возможности, которые есть в Twisted: асинхронная сетевая модель, соединения с БД, memcached, различные сервисы и т.п.

Запуск и установка

Если у Вас уже установлен Python и setuptools (чаще всего на Unix/Linux это так), достаточно выполнить от имени root:

easy_install fmspy

Easy_install автоматически установит все необходимые зависимости (если они еще не установлены). Более подробно об установке можно почитать в документации.

После установки запуск в отладочном режиме (на консоли) осуществляется следующим образом:

twistd -n fmspy

Для окончания работы сервера достаточно нажать Ctrl+C.

Примеры

Вместе с FMSPy устанавливается два примера: эхотест и простенький чат. После запуска откройте страницу http://localhost:3000/examples/ и выберите интересующий вас.

echotest chat

Вместо заключения

Пробуйте, тестируйте, присоединяйтесь к разработке. Любая помощь приветствуется: написание документации, патчи, идеи новых фич, графические материалы! Все это лучше всего отправить в трекер.

Впереди новые релизы, также в ближайшее время статья о написании приложений для FMSPy.

Ссылки:

Trackbacks

Use this link to trackback from your own site.

Comments

Leave a response

  1. Miguel Пн, 08 Июн 2009 09:27:04 UTC

    очень интересно, буду следить

  2. M0sTH8 Пн, 08 Июн 2009 17:54:18 UTC

    Интересно, а как обстоит дело с производительностью? Ещё не тестировали?

  3. Андрей Пн, 08 Июн 2009 20:00:39 UTC

    Первое тестирование я уже делал, на микротестах на уровне Red5. Это еще совершенно не оптимизированный код, у меня есть конкретные идеи, как сделать его в 5-10 раз быстрее, так что я надеюсь, что это будет очень и очень эффективная реализация.

  4. M0sTH8 Пн, 08 Июн 2009 21:19:42 UTC

    Ещё один вопрос, в ваших докладах на РИТ 2008, упоминалось про pyFMS , оно как-то связано с текущим проектом?

  5. Андрей Пн, 08 Июн 2009 21:23:41 UTC

    Они никак не связаны, я являюсь автором pyFMS, но этот проект остался в недрах компании НетСтрим. FMSPy является реализацией «с нуля», то есть не имеет общего кода с pyFMS. FMSPy – открытый и бесплатный проект, и он будет несомненно лучше!

  6. M0sTH8 Пн, 08 Июн 2009 21:45:30 UTC

    Спасибо за ответы. Проект выглядит многообещающе, самое интересное для меня – это аудио стриминг, необходимый в будущем проекте. Буду следить и помогать, по мере возможностей.

  7. iWarior Вс, 21 Июн 2009 14:31:13 UTC

    Андрей, а Ваша реализация RTMP совпала с недавно опубликованной официальной? http://www.adobe.com/devnet/rtmp/

    Спасибо за отличный проект! Надеюсь, у вас всё получится. Постараемся присоединиться к вам в начале августа.

    PS: поражаюсь, как у вас на всё времени хватает, или Вы работаете над pyFMS в рамках Qik?

  8. Андрей Вс, 21 Июн 2009 14:34:02 UTC

    Ну, во-первых FMSPy. Пока это исключительно мой проект, но вполне возможно, что я буду делать его в рамках работы в Qik.

  9. iWarior Вс, 21 Июн 2009 21:04:03 UTC

    Виноват, описка, имел ввиду именно FMSPy, конечно же, его. А что скажете насчёт текущей реализации RTMP и опубликованной официальной спецификации ?

  10. Андрей Пн, 22 Июн 2009 06:41:45 UTC

    После публикации полной спецификации разработка будет проще, несомненно. Текущая реализация в некоторых точках не соответствует спецификации (или реализует возможности по-другому). Надеюсь, мы сможем привести код в полное согласие с опубликованной документацией.

  11. anton Пн, 06 Июл 2009 09:57:01 UTC

    У спецификации от адоба специфичная лицензия, поэтому разработчики red5 её и читать не хотят, пока legal issues не решат для себя http://osflash.org/pipermail/red5devs_osflash.org/2009-June/004646.html

  12. Михаил Вт, 14 Июл 2009 17:13:03 UTC

    если говорить про live-стриминг какая минимальная задержка достижима? можно ли в принципе будет сделать что-то типа видео-конференций с задержкой <1сек на основе RTMP.

  13. Андрей Ср, 15 Июл 2009 00:22:39 UTC

    В случае достаточной «толщины» каналов – да. При плохом качестве каналов деградация может быть существенной, в том числе и по задержке.

  14. Antonio Ср, 16 Сен 2009 15:27:52 UTC

    я в принципе далек от этих вещей, и возможно что-то путаю, но возможно ли с помощью этого сервера обрабатывать звук с микрофона на лету?

  15. Макс Лапшин Сб, 19 Дек 2009 16:01:21 UTC

    Михаил, меньше одной секунды добиться сложно, но к 1-й секунде выйти можно.

    Я сейчас разрабатываю RTMP сервер erlyvideo и сделал, что бы он мог принимать видео с программ Quicktime Broadcaster или Wirecast. Ни та, ни другая меньше 3-х секунд лага не могут сделать. У меня есть предположение, что можно уменьшить эту задержку (проблемы с сетью в рассчёт не берём) и сделать 1 секунду.

    Однако для этого надо девелопить собственный софт, чем я, видимо, займусь.

  16. Макс Лапшин Сб, 19 Дек 2009 16:09:22 UTC

    Да, ещё насчёт «опубикованной» документации. По мимо того, что она очень неполна, она ещё и намеренно лжива. Например, если реализовывать хендшейк так, как это описано по стандарту, то просмотреть H264 файлы не получится.

    Самая лучшая спецификация RTMP на сегодняшний момент — это исходники Wowza. Увы =(

  17. Роман Сучков Ср, 06 Окт 2010 11:11:59 UTC

    Проект умер?

Comments