如何在Red5中处理多个视频流?

时间:2011-01-17 22:31:05

标签: java flash video red5 rtmp

我正在撰写一个Red5应用程序,通过RTMP向Flash客户端提供一对一的视频聊天。

不幸的是,我能找到的大多数教程都是粗略的,而且当涉及API概念和预期用途时,Red5本身的文档往往含糊不清。

简而言之,我有点陷入困境,正在寻找有关Red5 ApplicationAdapter实施的提示。 Gnarly的详细信息如下:

  • 首先,这些联系有两种:访客和顾问。访问者应该能够指出它希望与哪个顾问沟通。只要顾问不忙于为另一位顾客提供服务,顾问只需与请求的访客建立联系。

  • 显然,每个RTMP连接都有双向流量:发送和接收视频。从服务器的角度来看,连接带来了一堆视频流,这些视频流可以通过请求分配接收端点。

  • 由于可以同时进行多个视频对话,因此应用程序的主要任务是处理访客流到顾问的映射,并提供一个列表,通过{{3}指示每个顾问的状态(忙/可用) }。

总而言之,我非常清楚我的目标是什么,但如何用Red5实现它仍然有点神秘。

希望有人可以通过以下任何或所有方式启发我:

  1. 建立连接类型(访客/顾问)的最简单方法是什么?

  2. 应使用哪些API类来实现持久的,全局可访问的活动连接列表,以报告每位顾问的状态?

  3. 当目标是将特定访问者连接到选定的顾问时,如何动态切换接收端点?

2 个答案:

答案 0 :(得分:3)

索尔,

  

1.建立什么是最简单的方法   连接类型   (访客/顾问)?

假设两个(访问者/顾问)都使用Flex客户端开始发布他们的实时视频流,在这里您需要确保每个发布的视频流名称都是唯一的(HOWTO已经是在演示应用程序中提到)

  

2.应该使用哪些API类   全局实现持久化   可访问的活动连接列表   用于报告每个州的状态   顾问?

并且为了提供活动连接列表,您只需要存储(最好在您的数据库中)每个用户的id,并使用流名称(也可以作为tutorial demo app提供)进行连接。

我相信所有代码都可用于red5演示尝试oflaDemo,simpleSubscriber,fitcDemo演示应用程序。

我希望我更接近你的解决方案。

答案 1 :(得分:0)

由于Oflademo或red5能够进行1v1聊天,然后复制此代码以进行大约50次聊天。您可以使用以下列维护表:

  • 聊天室号码(1到50)
  • 用户1
  • 用户2
  • 状态(0或1 - 未占用或占用)

如果让访客V22想要咨询顾问C33,那么一个程序可以检测到第一个未占用的房间从1到50,如果第7个房间未被占用,则将V22和C33重定向到房间7并将状态改为1(被占用)。在视频通话之后,状态可以重置为0,并且roomno:7的user1,roomno:7的user1,roomno:7的user2的表可以设置为NULL。就像在电脑里的餐馆里保养餐桌一样。

你基本上可以使用1to1使用数据库和php查询开发多个聊天,无需编辑任何swf代码或维护复杂的服务器等。