问题标签 [rtmfp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flash - 使用视频流多播时,Flash Player 10.x 中的协议与 Flash Player 11.x 不兼容
我的产品中嵌入了一个 swc 插件,用于将实时视频流式传输给一组接收者。
该插件使用 NetStream、NetGroup 和 NetConnection 对象,我用来处理 RTMFP 会话的服务器是 Influxis。
一个客户创建一个组作为发布者,并流式传输实时视频。他的相机已启用,我也可以在屏幕上看到视频。其他人连接到他的组并播放视频。对发布者和接收者都启用了对等辅助网络。
该插件在所有 10.x 版本 (10.1/10.2/10.3) 中运行良好
但是,当升级到 flash player 11.x 时,它停止工作。
- 11.x 到 11.x 不工作。
- 10.x 和 11.x 不工作。
只有 10.x 到 10.x 有效。
我用来处理 RTMFP 协议的服务器是 Influxis.com 我也向他们发送了同样的问题。
最奇怪的事实是我正在使用带有 4.6 SDK 的 flash builder 4.6,它是针对 flash player 11.1 的,它只适用于 10.x flash 播放器。
adobe - 有什么更好的方法来显示 rtmfp (cirrus) 组中的在线用户列表
有什么更好的方法来显示 rtmfp (cirrus) 组中的在线用户列表?例如在这个项目http://www.flashrealtime.com/simple-chat-p2p-netgroup-rtmfp/。
初始注册并不难(可以很简单,比如入组时在rtmfp cirrus节点之间交换消息),但是如何对已经注册的用户进行监控是个问题。也许有标准机制,例如 cirrus 组的所有对等点列表,或其他技术?
apache-flex - RTMFP 直接点对点连接在 Windows XP 上工作,但在 Windows 7 上不工作
我们在这里的一个项目中遇到了一个奇怪的问题。当我们在 Windows XP 上将 NetConnection 与 NetGroup 结合使用来启动两个本地 AIR 应用程序之间的通信时,它们始终都成功连接到 NetGroup 并将彼此检测为邻居。但是,在 Windows 7 上,两个应用程序都成功连接到 NetConnection,并且 NetGroup 都不会将彼此检测为邻居。
为了重现这个问题,这里有两个 AIR 应用程序:
RTMFP1:
RTMFP2:
这些应用程序可以在 Windows XP 上毫无问题地相互连接和发送消息。但是,在 Windows 7 上,它们不能。
有谁知道为什么这在 Windows 7 上不起作用以及可以采取哪些步骤使其起作用?这对我们的项目至关重要。
Ps:在某些情况下,应用程序需要很长时间才能将彼此检测为邻居(在某些情况下长达 15 秒),在其他情况下,它们会立即相互检测到。有谁知道什么可能导致这种延迟?
rtmfp - 列出 rtmfp 组中的所有 peerID
如何获取现在连接到 rtmfp 组的所有 peerID 的列表?或者变体得到一个组ID,但是比如存储在服务器上。我尝试使用 sam groupspec.toString(); 但是此命令返回的结果与服务器中不同。服务器积云。
actionscript-3 - 仅使用 RTMFP 进行随机匹配 (Adobe Cirrus)
我试图想出在一个简单的游戏中进行一些随机匹配的最佳方法。
在使用 Adobe Cirrus 试验 netStreams 时,我可以使用 Cirrus 轻松设置直接连接、发送数据、文本、视频、声音,这一切都很棒。我发现建立一个简单的 P2P 连接很容易,而且它就像我需要的那样工作。
但我真的很想实现一个仅使用 cirrus 的随机匹配功能,所以一切都是 p2p ......
我将如何去抓住同一组中的随机同伴......这与其他人没有直接联系?
一些想法:
-我在想也许我可以使用对象复制......当有人连接到 GroupSpecifier 时,我可以将另一个对象推送到这个具有本地 peerID 及其状态的共享数组中。然后我可以在他们在游戏中时更改数组。但是我担心如果此人只是关闭网络窗口,则无法保证他们的条目会被删除。
-我还考虑过只在包含nearID的组中发布“帖子”,其他同伴可以得到帖子……那些不在游戏中的人会尝试直接连接回来。然后那一侧将连接到它们。因此,它们将彼此直接连接。但后来我觉得如果可能有 100 多个“可用”的人......得到这个帖子......然后他们都尝试连接到一个人,那么它可能会导致问题。
-另外,我想过只做 sendToNearest ......但这不是匹配人的最佳方式......因为我认为你只能有这么多邻居......如果组中有 1000 人。您只能连接到实际上认为是您的邻居的几个对等方,对吗?然后基本上你可能最终只匹配相同的 5-10 人,或者在技术上被认为是邻居。
actionscript-3 - Flash SecurityDomain、P2P 设置和多重 swfs
我有两个瑞士法郎:
- 申请瑞士法郎
- p2p 客户端 swf,允许使用 rtmfp 复制技术(通过 cirrus 服务)加载数据
主要思想是在特定域上拥有一个 p2p 加载器,该加载器能够在 p2p 网络中工作,而无需多次请求每个域的权限,例如:
- 应用程序 1 ( http://domain1.com/app.swf ) |
- 应用程序 2 ( http://domain2.com/app.swf ) | <--> p2p 数据加载器 ( http://domainp2p.com/p2pcli.swf )
- 应用程序 N ( http://domainN.com/app.swf ) |
p2p客户端通过请求加载二进制数据,我相信内容真的无关紧要。
所以,我使用以下类(app.swf)加载 p2pclient swf
p2pclient 本身(p2pcli.swf):
但看起来 Flash Player 忽略了安全会话,并试图保存 app.swf 所属域的弹出设置,但不保存 p2pcli.swf 域。为什么?!
我有完全相同的代码,但是 p2pcli.swf 被替换为 swf,它将数据存储在本地共享对象中,并且所有 domain1-2-N.com 都可以访问它。
有任何想法吗?
我知道,我的英语很烂:(
flash - 使用 RTMFP 操纵语音音频进行实时语音聊天
我们正在使用Cumulus构建一个实时 RTMFP 语音聊天应用程序。虽然使用 NetStreams 进行基本的语音传输非常容易,但我们有一个大问题:
似乎没有办法操纵 NetStream 发送的麦克风数据,也没有办法操纵 NetStream 在播放之前接收到的数据。
然而,这正是我们所需要的。我们不想传输普通麦克风录制的音频,而是先音高,然后发送,然后播放。或者先发送它,然后投它,然后播放它。但似乎整个录音、speex 编码、speex 解码和音频播放都完全封装在 NetStream 类中。
实现我们想要的(并且所有这些都完全删除 NetStream)的唯一方法似乎是:
发送原始音调音频数据。这确实有效,但当然要发送大量数据,并且在我们的本地 LAN 测试之外可能工作得不够快。
音调音频数据,使用现有编码器转换为 ogg/mp3 用于闪存、发送、解码 ogg/mp3 和播放。但这意味着对从麦克风接收到的每个样本数据包进行编码,添加标头内容等。因此,与原始音频数据相比,这甚至可能不会产生太大的好处。
2.1。如果有一个用于闪存的Speex编码器/解码器,这实际上是一个好方法。但具有讽刺意味的是,除了内置的(用于在 NetStreams 中编码/解码音频)之外,没有其他不能明确使用的。是的,非常感谢您不提供它,Adobe ...
将数据发送到 Cumulus 服务器,在那里推销(并可能转换)并发送给接收者。这可能甚至不会比 1 快得多。并且还抛弃了 RTMFP、P2P 通信的确切好处。
这个问题有没有比我在这里列出的更好的解决方案,可能是一种在麦克风数据传递到 NetStream 之前实际操作麦克风数据的方法?
actionscript-3 - NetGroup.postToAllNeighbors 什么都不做
我们使用Cumulus服务器作为 RTMFP 服务器来实现语音聊天。使用 NetStreams 的语音流在这里工作得非常好,几乎没有延迟,但我们还希望传输 NetGroup 中每个成员的麦克风的活动级别。
所以我们尝试使用 NetGroup.post(data) 传输数据。效果很好,但即使在同一台机器上使用多个客户端进行测试,也会有大约 500 毫秒的延迟!
显然,麦克风活动的半秒只是以任何方式显示它的延迟时间。
现在我们正在尝试使用 NetGroup.sendToAllNeighbors( 的直接路由,但它根本什么都不做。我已经阅读了它的所有文档,通常应该在接收客户端上触发带有“NetGroup.SendTo.Notify”的 NetGroup 状态事件。相反,什么也没有发生。
这是代码,它被称为每一帧:
我知道每一帧有点多,但现在它只是一个测试用例。
我们做错了什么?正如我所说,语音通信本身工作正常。与 Netgroup.post(data) 一样,在这个用例中使用它太慢了。
actionscript-3 - NetStream.send 不能与 RTMFP 中的 NetGroup 一起使用
我们正在运行Cumulus服务器来进行实时语音和文本聊天。
设置是每个客户端可以通过 group.post() 将数据发布到同一 NetGroup 中的其他客户端。不幸的是,这个函数非常慢(至少延迟半秒),所以我们改用 NetStream.send 来调用其他客户端上的函数,通过它传递数据。这几乎可以立即生效。
但是,我们现在正在尝试使用不同的 NetGroup 构建单独的聊天室。但是这样做时,NetStream.send() 不再起作用,这些函数永远不会在其他客户端上调用,也不会传输语音数据。基本上,整个发布 NetStream 似乎不再工作了。
我们有以下设置来在每个客户端上建立一个 NetGroup 和一个发布流:
以下代码用于收听“媒体”流:
NetGroup 连接本身可以工作,当邻居连接时,每个客户端都会调用“NetGroup.Neighbor.Connect”。但是 _sendStream 本身根本不起作用。没有接收到数据,没有调用函数。
当发布 NetStream 以下列方式构建时,它确实有效:
但是,我们只希望 NetStream 发送到单个 NetGroup,并且根据Adobe 文档,在构造函数中使用gspec.groupspecWithAuthorizations()应该完全允许。
我们在这里遗漏了什么吗?
actionscript-3 - 退出 NetGroup 成员会导致 Flash 插件崩溃
我们正在使用Cumulus服务器创建与 RTMFP 的语音聊天。用户通过加入同一个网络组相互连接。
订阅的 NetStreams 上的语音聊天和呼叫功能运行良好。
但是,有时,当用户关闭浏览器窗口时,同一个 NetGroup 中所有用户的 Flash 插件都会崩溃。
由于没有报告错误,并且从我的 IDE (FlashDevelop) 启动 Flash 应用程序时似乎没有发生崩溃,所以我不知道发生了什么。我所知道的是,有时当用户退出 Flash 应用程序(关闭浏览器窗口/应用程序)时会发生这种情况。
这是建立与 NetGroup 的连接和发布音频发布流的方式(在建立与 Cumulus 服务器的连接之后):
这就是创建接收 NetStream 监听发布的方式(每当 Neighbor 连接时):
什么可能导致这种情况?当通知邻居断开连接时,我是否应该做一些特别的事情?请注意,我什至不知道崩溃是在任何通知之前还是之后发生的......