Как обрабатывать несколько видеопотоков в Red5?

Я пишу приложение Red5, которое обеспечивает видеочат 1-на-1 с клиентом Flash через RTMP.

К сожалению, большинство руководств, которые мне удалось найти, были в лучшем случае отрывочными, а документация самого Red5 имеет тенденцию быть расплывчатой, когда речь идет о концепциях API и предполагаемом использовании.

Короче говоря, я немного застрял и ищу подсказки по реализации Red5 ApplicationAdapter. Грубые детали заключаются в следующем:

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

  • Очевидно, что каждое RTMP-соединение имеет двусторонний трафик: и отправку, и получение видео. С точки зрения сервера, соединения приносят кучу видеопотоков, которым назначаются конечные точки приема по запросу.

  • Поскольку одновременно может вестись несколько видеоразговоров, основной задачей приложения является управление сопоставлением потоков посетителей с консультантами и предоставление списка с указанием состояния каждого консультанта (занят/свободен) через AMF.

Итак, в целом, у меня есть довольно хорошее представление о том, к чему я стремлюсь, но как достичь этого с помощью Red5, все еще остается загадкой.

Надеюсь, кто-то может просветить меня в любом или во всех следующих аспектах:

  1. Как проще всего установить тип подключения (посетитель/консультант)?

  2. Какие классы API следует использовать для реализации постоянного, глобально доступного списка активных подключений для отчетов о состоянии каждого консультанта?

  3. Как динамически переключать принимающие конечные точки, когда целью является подключение конкретного посетителя к выбранному консультанту?


person Saul    schedule 17.01.2011    source источник


Ответы (2)


Саул,

1.Как проще всего установить тип подключения (посетитель/консультант)?

предполагая, что оба (посетитель / консультант) используют гибкий клиент, через который они начинают публиковать свой прямой видеопоток, здесь вам нужно убедиться, что каждый опубликованный видеопоток название уникально (HOWTO уже упоминается в демо-версии Программы)

2. Какие классы API следует использовать для реализации постоянного, глобально доступного списка активных подключений для отчетов о состоянии каждого консультанта?

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

Я считаю, что весь код доступен для демонстраций red5. Попробуйте демо-приложения oflaDemo , simpleSubscriber , fitcDemo .

Надеюсь, я ближе к вашему решению.

person 100rabh    schedule 30.01.2011

Поскольку Oflademo или red5 поддерживают чаты 1 на 1, скопируйте этот код, чтобы создать около 50 чатов. Вы можете вести таблицу со следующими столбцами:

  • номер чата (от 1 до 50)
  • пользователь1
  • пользователь2
  • статус(0 или 1 - не занято или занято)

Если, скажем, посетитель V22 хочет получить консультацию от консультанта C33, то программа может определить первую свободную комнату с 1 по 50, если 7-я комната свободна, то перенаправить V22 и C33 в комнату 7 и изменить статус на 1 (занято). ). После видеовызова статус может быть сброшен на 0, а таблица в roomno:7 , user1 из roomno:7, user2 из roomno:7 может быть установлена ​​в NULL. Это как обслуживать столы в ресторане на компьютере.

По сути, вы можете разработать несколько чатов, используя 1 к 1, используя базу данных и php-запросы, не нужно редактировать какой-либо swf-код или поддерживать сложный сервер и т. д.

person deepak rv    schedule 17.08.2016