SlideShare a Scribd company logo
1 of 13
Сервер  Flash- вещаний  (RTMP)  на  Python  или создание высоконагруженных сетевых серверов с использованием  Twisted Андрей Смирнов NetStream
Содержание ,[object Object],[object Object],[object Object],[object Object]
Общая схема  RTMP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Клиент ( Flash) Сервер  RTMP RTMP
Существующие решения ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Архитектура сетевого сервера ,[object Object],[object Object],[object Object],[object Object]
Концепция нашего решения ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Twisted Framework ,[object Object],[object Object],[object Object]
Архитектура  pyFMS Приложение 2 Приложение 1 Сервер  pyFMS Комната 1 Комната 2 Разделяемый объект Поток (вещание) Клиенты:
Схема вещания API Клиент pyFMS Сайт ( API) Сбор и  анализ  статистики Вещание Чат Разделяемый объект Поток (вещание) Запись потока на диск  с последующей обработкой Удаленные вызовы  процедур ( RPC)
Эффективность реализации ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ретрансляция ,[object Object],pyFMS  1 pyFMS  2 pyFMS  3 pyFMS  4 Источник вещания Ретрансляторы Клиенты вещания Автор вещания
Количественные характеристики ,[object Object],[object Object],[object Object],[object Object]
Всё! ,[object Object]

More Related Content

What's hot

Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...Ontico
 
Лицензирование TrueConf Server
Лицензирование TrueConf ServerЛицензирование TrueConf Server
Лицензирование TrueConf ServerTrueConf
 
Ha Cluster Svoimi Rukami
Ha Cluster Svoimi RukamiHa Cluster Svoimi Rukami
Ha Cluster Svoimi RukamiLiudmila Li
 
архитектура новой почты рамблера
архитектура новой почты рамблераархитектура новой почты рамблера
архитектура новой почты рамблераHighLoad2009
 
Установка и настройка клиентского ПО TrueConf Client
Установка и настройка клиентского ПО TrueConf ClientУстановка и настройка клиентского ПО TrueConf Client
Установка и настройка клиентского ПО TrueConf ClientTrueConf
 
Сетевая подсистема в L4Re и Genode
Сетевая подсистема в L4Re и GenodeСетевая подсистема в L4Re и Genode
Сетевая подсистема в L4Re и GenodeVasily Sartakov
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...DotNetConf
 
Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...
Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...
Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...Fwdays
 
Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Yuri Kudryavcev
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...
Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...
Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...Yandex
 
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchipРазработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchipARCCN
 
Настройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаНастройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаAndrey Markelov
 

What's hot (15)

Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
Использование асинхронной очереди сообщений в высоконагруженном проекте / Анд...
 
Лицензирование TrueConf Server
Лицензирование TrueConf ServerЛицензирование TrueConf Server
Лицензирование TrueConf Server
 
Ha Cluster Svoimi Rukami
Ha Cluster Svoimi RukamiHa Cluster Svoimi Rukami
Ha Cluster Svoimi Rukami
 
архитектура новой почты рамблера
архитектура новой почты рамблераархитектура новой почты рамблера
архитектура новой почты рамблера
 
Установка и настройка клиентского ПО TrueConf Client
Установка и настройка клиентского ПО TrueConf ClientУстановка и настройка клиентского ПО TrueConf Client
Установка и настройка клиентского ПО TrueConf Client
 
Lyamin zn2013
Lyamin zn2013Lyamin zn2013
Lyamin zn2013
 
Сетевая подсистема в L4Re и Genode
Сетевая подсистема в L4Re и GenodeСетевая подсистема в L4Re и Genode
Сетевая подсистема в L4Re и Genode
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
 
Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...
Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...
Yevgen Lysenko "Practical experience of using AWS Lambda in a high-loaded PHP...
 
Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...
Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...
Как сделать стриминг для сервиса, который хранит миллионы видеофайлов — Лев Т...
 
DHCP
DHCPDHCP
DHCP
 
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchipРазработка OpenFlow-коммутатора на базе сетевого процессора EZchip
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchip
 
Настройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаНастройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/вывода
 

Similar to Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted

Новые возможности TrueConf Server 4.3.8
Новые возможности TrueConf Server 4.3.8Новые возможности TrueConf Server 4.3.8
Новые возможности TrueConf Server 4.3.8TrueConf
 
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме..."Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...TrueConf
 
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighLoad2009
 
Марат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаМарат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаYandex
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Ontico
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Vladimir V Perepelitsa Ae Highload
Vladimir V  Perepelitsa Ae HighloadVladimir V  Perepelitsa Ae Highload
Vladimir V Perepelitsa Ae Highloadrit2010
 
Решения компании Ixia для контроля за SLA с определением показателей качества...
Решения компании Ixia для контроля за SLA с определением показателей качества...Решения компании Ixia для контроля за SLA с определением показателей качества...
Решения компании Ixia для контроля за SLA с определением показателей качества...UC2
 
Cisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийCisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийКРОК
 
Уязвимости сервисов
Уязвимости сервисовУязвимости сервисов
Уязвимости сервисовPositive Hack Days
 
Рассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, Unitsolutions
Рассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, UnitsolutionsРассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, Unitsolutions
Рассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, UnitsolutionsTrueConf
 
Middleware
MiddlewareMiddleware
Middlewaremegakott
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Дмитрий Костюк
 
Отечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовОтечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовARCCN
 
Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...CEE-SEC(R)
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
 
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев ЯкуповВидео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев ЯкуповTrueConf
 

Similar to Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted (20)

Новые возможности TrueConf Server 4.3.8
Новые возможности TrueConf Server 4.3.8Новые возможности TrueConf Server 4.3.8
Новые возможности TrueConf Server 4.3.8
 
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме..."Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
"Как заработать на внедрении отечественной системы ВКС в условиях импортозаме...
 
флеш и сервер
флеш и серверфлеш и сервер
флеш и сервер
 
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo Os
 
Марат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаМарат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная система
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Vladimir V Perepelitsa Ae Highload
Vladimir V  Perepelitsa Ae HighloadVladimir V  Perepelitsa Ae Highload
Vladimir V Perepelitsa Ae Highload
 
Решения компании Ixia для контроля за SLA с определением показателей качества...
Решения компании Ixia для контроля за SLA с определением показателей качества...Решения компании Ixia для контроля за SLA с определением показателей качества...
Решения компании Ixia для контроля за SLA с определением показателей качества...
 
TrueConf Server 3.2
TrueConf Server 3.2TrueConf Server 3.2
TrueConf Server 3.2
 
Cisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийCisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференций
 
Уязвимости сервисов
Уязвимости сервисовУязвимости сервисов
Уязвимости сервисов
 
Рассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, Unitsolutions
Рассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, UnitsolutionsРассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, Unitsolutions
Рассчитываем бюджет типовых ВКС проектов. Юрий Митюнин, Unitsolutions
 
Middleware
MiddlewareMiddleware
Middleware
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"
 
Отечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовОтечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторов
 
Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...Эволюция идеологии удалённого управления вычислительными системами на примере...
Эволюция идеологии удалённого управления вычислительными системами на примере...
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев ЯкуповВидео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
 

More from Media Gorod

Iidf market watch_2013
Iidf market watch_2013Iidf market watch_2013
Iidf market watch_2013Media Gorod
 
E travel 2013 ufs-f
E travel 2013 ufs-fE travel 2013 ufs-f
E travel 2013 ufs-fMedia Gorod
 
Travel shop 2013
Travel shop 2013Travel shop 2013
Travel shop 2013Media Gorod
 
Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013Media Gorod
 
13909772985295c7a772abc7.11863824
13909772985295c7a772abc7.1186382413909772985295c7a772abc7.11863824
13909772985295c7a772abc7.11863824Media Gorod
 
As e-travel 2013
As   e-travel 2013As   e-travel 2013
As e-travel 2013Media Gorod
 
Ishounkina internet research-projects
Ishounkina internet research-projectsIshounkina internet research-projects
Ishounkina internet research-projectsMedia Gorod
 
Orlova pay u group_290813_
Orlova pay u group_290813_Orlova pay u group_290813_
Orlova pay u group_290813_Media Gorod
 
Ep presentation (infographic 2013)
Ep presentation (infographic 2013)Ep presentation (infographic 2013)
Ep presentation (infographic 2013)Media Gorod
 
Iway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_readyIway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_readyMedia Gorod
 
Data insight e-travel2013
Data insight e-travel2013Data insight e-travel2013
Data insight e-travel2013Media Gorod
 
Электронное Правительство как Продукт
Электронное Правительство как ПродуктЭлектронное Правительство как Продукт
Электронное Правительство как ПродуктMedia Gorod
 
Lean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean StartupLean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean StartupMedia Gorod
 
Глобальный взгляд на мобильный мир (Nielsen)
 Глобальный взгляд на мобильный мир (Nielsen) Глобальный взгляд на мобильный мир (Nielsen)
Глобальный взгляд на мобильный мир (Nielsen)Media Gorod
 
Как россияне используют смартфоны (Nielsen)
 Как россияне используют смартфоны (Nielsen) Как россияне используют смартфоны (Nielsen)
Как россияне используют смартфоны (Nielsen)Media Gorod
 
Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup) Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup) Media Gorod
 

More from Media Gorod (20)

Itogi2013
Itogi2013Itogi2013
Itogi2013
 
Moneytree rus 1
Moneytree rus 1Moneytree rus 1
Moneytree rus 1
 
Iidf market watch_2013
Iidf market watch_2013Iidf market watch_2013
Iidf market watch_2013
 
E travel 2013 ufs-f
E travel 2013 ufs-fE travel 2013 ufs-f
E travel 2013 ufs-f
 
Travel shop 2013
Travel shop 2013Travel shop 2013
Travel shop 2013
 
Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013Kozyakov pay u_e-travel2013
Kozyakov pay u_e-travel2013
 
13909772985295c7a772abc7.11863824
13909772985295c7a772abc7.1186382413909772985295c7a772abc7.11863824
13909772985295c7a772abc7.11863824
 
As e-travel 2013
As   e-travel 2013As   e-travel 2013
As e-travel 2013
 
Ishounkina internet research-projects
Ishounkina internet research-projectsIshounkina internet research-projects
Ishounkina internet research-projects
 
E travel13
E travel13E travel13
E travel13
 
Orlova pay u group_290813_
Orlova pay u group_290813_Orlova pay u group_290813_
Orlova pay u group_290813_
 
Ep presentation (infographic 2013)
Ep presentation (infographic 2013)Ep presentation (infographic 2013)
Ep presentation (infographic 2013)
 
Iway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_readyIway slides e-travel_2013-11_ready
Iway slides e-travel_2013-11_ready
 
Data insight e-travel2013
Data insight e-travel2013Data insight e-travel2013
Data insight e-travel2013
 
Электронное Правительство как Продукт
Электронное Правительство как ПродуктЭлектронное Правительство как Продукт
Электронное Правительство как Продукт
 
Lean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean StartupLean мышление / Специфика Lean Startup
Lean мышление / Специфика Lean Startup
 
Глобальный взгляд на мобильный мир (Nielsen)
 Глобальный взгляд на мобильный мир (Nielsen) Глобальный взгляд на мобильный мир (Nielsen)
Глобальный взгляд на мобильный мир (Nielsen)
 
Как россияне используют смартфоны (Nielsen)
 Как россияне используют смартфоны (Nielsen) Как россияне используют смартфоны (Nielsen)
Как россияне используют смартфоны (Nielsen)
 
Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup) Мобильный интернет в России (MailRuGroup)
Мобильный интернет в России (MailRuGroup)
 
Meta Mass Media
Meta Mass MediaMeta Mass Media
Meta Mass Media
 

Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted

  • 1. Сервер Flash- вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted Андрей Смирнов NetStream
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Архитектура pyFMS Приложение 2 Приложение 1 Сервер pyFMS Комната 1 Комната 2 Разделяемый объект Поток (вещание) Клиенты:
  • 9. Схема вещания API Клиент pyFMS Сайт ( API) Сбор и анализ статистики Вещание Чат Разделяемый объект Поток (вещание) Запись потока на диск с последующей обработкой Удаленные вызовы процедур ( RPC)
  • 10.
  • 11.
  • 12.
  • 13.

Editor's Notes

  1. Добрый день! Меня зовут Андрей Смирнов, я работаю техническим директором компании NetStream. Я расскажу о нашем опыте по созданию сервера вещаний для Flash. Сегодня этот сервер работает в качестве движка вещаний на сайте Smotri.com.
  2. Начнём мы с краткого рассказа о различных существующих решениях, потом уже поподробнее рассмотрим то, что у нас получилось реализовать и почему именно так, как получилось.
  3. Сначала несколько слов о самой технологии – о протоколе RTMP. Вещание во флеше организуется по проприетарному протоколу RTMP. Клиент, который является просто флешкой, подключается к серверу, после выполнения первоначального «рукопожатия» открывается в принципе симметричный канал, по которому передаются данные. Протокол является бинарным, соединение разделяется на независимо функционирующие каналы, по которым можно передавать пакеты, пакеты при этом разрезаются на кусочки ( chunk), которые позволяют в принципе осуществлять перемешивание ( interleaving ) данных из разных каналов. В пакетах можно передавать удаленный вызов процедур, которые кодируются с помощью AMF- кодирования (стандартного во флеше). Сам по себе протокол закрыт, основная часть работы по reverse engineering была выполнена в рамках проекта Red5. Однако документации по протоколу так и не получилось, необходимо изучать исходники Red5, других open-source серверов, где-то идти методом проб и ошибок, пока не получится результат.
  4. Мы рассматривали вариант реализации вещаний где-то год назад и решения принимались на тот момент. О чем можно сказать? Во-первых, коммерческие решения, ну и, конечно же, первое из них , Adobe Flash Media Server – это, собственно основной вариант реализации. Так сказать, вариант «от создателей RTMP ». Все остальные варианты – это так или иначе попытки реализовать что-то близкое. Ну если не рассуждать о плюсах и минусах таких закрытых решений, первое, что нас не устроило – это лицензирование сервера по количеству соединений, а по этому параметру как раз хотелось бы свободного масштабирования. Сегодня уже Wowza, например, предлагает лицензию просто за инсталляцию без учёта кол-ва соединений на сервер. Соответственно, следующий взгляд мы бросили в сторону свободного ПО. Тогда из более-менее готовых был только Red5. Это попытка полностью переписать Adobe FMS на Java, возможно, с некоторыми даже улучшениями по сравнению с оригиналом. Получается у них очень раздутый, сложный, но полнофункциональный сервер. Состояние по их же оценкам – честно бета. Он действительно работает, однако полностью отсутствует документация по тому, как писать приложения. Сотни способов установки, вариантов использования и т.п. Однако в результате понять что к чему бывает не так просто. Первый наш эксперимент сервера вещания был именно с Red5. Через месяц мучений и экспериментов удалось написать рабочее приложение вещания и чата, всё вполне сносно работало. Появились проблемы – утечка памяти (не уникальная проблема, судя по спискам рассылки), «утыкание» в процессор, но также возникли проблемы задержек. По непонятным причинам на не 100% загруженной машине запросы к red5 обслуживались с некоторыми довольно значительными задержками. Мы долго пытались разгадать причину, точно выяснили что проявляется она под нагрузкой, хотя процессор не нагружен. После не одной недели копания в исходниках и логах удалось обнаружить интереснейшую проблему. Мы обращались из ред5 к апи сайта при наступлении опеределенных событий во время вещания по HTTP . Red5 использует большое количество внешних библиотек (порядка 20) и в одной из них, которая реализует клиента HTTP, стояло замечательное ограничение по умолчанию на 2 коннекта к одному хосту в один момент времени. У нас же хост был всегда один. Ограничение было предназначено, видимо, для скачивателей, чтобы не перегружали хост скачивания, хотя он вообще сомнителен. Всё, чтоб было больше ограничения – вставало в очередь, забивало нити, дальнейшая деградация была уже каскадной. После обнаружения подобных проблем пропало дальнейшее желание с таким возиться. Milenia Grafter появился попозже, чем мы рассматривали первые решения, но это тоже RTMP- сервер на Java, но написан по минималистическому принципу, без использования внешних библиотек – гораздо более понятный код, однако слабый функционал, нужны существенные доработки, процесс разработки ведет один прграммист, отсутствие community. Еще существует некоторое количество проектов на разных языках программирования, но они были далеки от первой версии.
  5. Больше примеров? Может, разбить на несколько слайдов?
  6. Можно вспомнить, что Red5, например, написан на Java, который при помощи hotspot- компилятора превращается в исполняемый код, в то время как Python будет интерпертироваться. В то же время задача вещания является сильно ориентированной на центральный процессор. В RTMP формально нельзя просто копировать исходные данные из потока вещателя в потоки слушателей. Да, конечно, не стоит задача перекодирования видео или аудио потока, но формально может потребоваться достаточно большое количество преобразований, при этом поток состоит из большого количества «кусочков», на которые RTMP разрезает исходный поток, которые необходимо обрабатывать. Плюс поток состоит не только из пакетов аудио и видео, а из вызова удаленных процедур и т.п. действий.