我一直在谷歌上搜索,我仍然无法得到它.有人说:你去,只是用它.其他人声称它有某些限制,不允许你按照你想要的方式在Flash中使用p2p.
所以,这是一个简单的问题:是否有可能实现一个Flash10应用程序,它使用一些现有的torrent文件将视频/音频流式传输到用户的浏览器中?
如果没有 - 为什么?这个'不'有没有可行的解决方法?如果是的话 - 实施的困难是什么,为什么没有人真正做到呢?
答案几乎没有......好吧,说实话,这是不对的.
@drudru指出了闪存p2p的正确技术,即层云.
Flash p2p基于RTMFP,它基于UDP构建.实际上,flash确实绑定了一个端口,但这来自内部.手动没有API可以做到这一点.
RTMFP基本上允许两件事:
用于视频和音频的UDP流(不可靠但快速).从闪存方面,您只能发布您的相机和麦克风流.从服务器,几乎任何东西.
远程调用p2p连接的另一个端点.这可用于传输数据.这种通信是安全的,即闪存播放器保持包装顺序和完整性.
p2p基于NAT穿孔.Stratus本身就是引入服务器.此外,出于安全目的,p2p连接也意味着,两个客户端必须具有与服务器的空闲TCP(如果我没记错).我想,当然会传输一些数据,但不会传输有效载荷.
但是,torrent协议与此截然不同.因此,这不是一种选择.您可以在RTMFP之上构建等效协议,反向工程stratus服务(或等到它的开源).这当然也可以由非Flash客户端使用.但同样,你将无法将传输的数据视为一个视频,因为你可以得到一些调用给你的客户端NetStream
,可能是一个ByteArray
.你不能回放ByteArray
s.您可以编写非Flash客户端,将视频发布为流,但我想这远远不是您想要的.
如果你真的想做那样的事情,你需要Java.您可以签署Java小程序,如果用户接受证书,他们几乎可以不受限制地访问,例如您可以绑定端口.既然Java可以做UDP,那么你可以拥有一个Java小程序,它可以完成托管(可能只是使用Vuze代码库),如果你真的想在flash中显示它(这又需要flv),那么你就可以模仿本地的" Flash Media Server"并在localhost:someport上发布视频.但实际上,闪光灯对我来说似乎非常复杂和无用.而是尝试回放Java,希望可以选择本地使用Java.