【问题标题】:How to handle multiple video streams in Red5?Red5如何处理多个视频流?
【发布时间】:2011-06-10 18:11:12
【问题描述】:

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

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

简而言之,我有点卡住,正在寻找有关 Red5 ApplicationAdapter 实施的提示。粗略的细节如下:

  • 首先,连接有两种形式:访客和顾问。访问者应该能够指出它希望与哪位顾问交流。只要顾问不忙于为其他人提供服务,顾问就会与提出请求的访客建立联系。

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

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

所以,总而言之,我很清楚自己的目标是什么,但如何用 Red5 实现它仍然是个谜。

希望有人能在以下任何或所有方面启发我:

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

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

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

【问题讨论】:

  • 这些家伙似乎写过并记录了类似的东西:red5chat.com/features-webcamchat.htm
  • @blueberryfields - red5chat 2 年多没有更新了,根据其 sourceforge 页面上的 cmets,文档很糟糕,而且不是完整的源代码。

标签: java flash video red5 rtmp


【解决方案1】:

由于 Oflademo 或 red5 能够进行 1v1 聊天,因此复制此代码以进行大约 50 次聊天。您可以维护一个包含以下列的表格:

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

如果假设访客 V22 想要咨询 C33 的咨询,那么程序可以从 1 到 50 检测到第一个未占用的房间,如果第 7 个房间未占用,则将 V22 和 C33 重定向到房间 7 并将状态更改为1(占用)。视频通话结束后,status可以重置为0,roomno:7的table,roomno:7的user1,roomno:7的user2可以设置为NULL。这就像在电脑上维护餐厅的桌子一样。

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

【讨论】:

    【解决方案2】:

    扫罗,

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

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

    2.应该使用哪些API类 实施一个持久的、全球性的 活动连接的可访问列表 用于报告每个状态 顾问?

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多