2009-10-12 76 views

回答

-3

我认为“为什么ByteArray”实际上是个问题......它是如何到达那里的? :)

有很多方法...... konrad给出了......但是正如他所说的那样会很慢......实际上,我认为它会比你想象的要慢得多。 。所以在这里另一个问题:

通过ByteArray的一台服务器,并加载从那里FLV ......有几个选项:

  • 远程服务器:它加载到远程服务器(可能是一个分配你的瑞士法郎)...仍然离开这个问题,你为什么不从那里分配flv首先...
  • 本地服务器:
    1. 安装:只需安装一个微小的局部应用做的正是你,那就是你可以在那里推字节组,然后检索它在合适的protocoll(HTTP,RTMP)...
    2. 浏览器的嵌入:与安装相同,但您可以简单地创建一个Java Applet来完成这项工作... signed允许Java applet绑定端口(是的,这是对用户的额外点击,但它可以像获得的那样舒适)这是你必须做什么,剩下的就是真的一样与已安装的服务器...

在这两种情况下,您可能会遇到跨域策略问题(可能仅在发送时,因为我认为您可以跨域加载视频),您需要对FlashPlayer的策略文件请求进行正确响应(可以找到大量的东西对)......你可以绕过通过使一个LocalConnection桥发送限制,如this one为C#...

好运气,然后...;)


编辑:啊好吧,现在我明白了......实际上,已经有一个very similar question ......我记得一些土坯家伙的简短采访,就在p2p功能发布后不久宣布... adobe是非常害羞的...实际上,花了我几周的时间才找到p2p,在flash播放器10正式发布后(真的没有时间打扰过)...

其实,我认为这是有目的的......在采访中,很明显,Adobe并没有试图推开视频流媒体网站......两个最重要的可能是YouTube和谷歌视频... youtube是其中之一主要原因,为什么Flash播放器在第一个地方变得如此受欢迎......并且它由谷歌拥有,如谷歌视频...允许轻松创建p2p媒体平台会使谷歌关闭很多......你不需要太多的服务器......“只是”好的软件,但这是负担得起的......我想,Adobe不会想激怒谷歌...几个原因:

  • 他们是搜索引擎
  • ,他们需要谷歌允许基于索引Flash网站
  • 谷歌的n倍大
  • 谷歌确实在努力获得大量的RIA市场...他们有GWT,铬,V8native client ...

所以我认为adobe没有那么多的兴趣去做这个事情......它有点像谷歌宣布他们的支付系统(是GPay还是这样?),这是一个直接的并发PayPal ... eBay是谷歌最重要的收入来源之一...实际上我从来没有听说过它的任何事情...

许多决定是政治性的,当涉及到大公司......我想,一个不使闪光灯播放器的P2P太强是其中之一...


+0

谢谢回答。我担心这些是我唯一的选择,你刚刚证实(我希望我忽略了其他一些方法)。回答为什么问题:) - 我正在使用Flash Player 10中提供的新功能处理p2p媒体流,并且已经在客户端有ByteArray中的视频,但无法显示它:) Cheers并再次感谢您的答案。 – bartekb 2009-10-12 13:41:07

-2

我不会问为什么ByteArray?您的问题的答案是YES,但最终结果会变慢 - 当视频较大并且编解码器复杂时,速度会变慢。您必须读取帧并将它们作为BitmapData放入Bitmap并编写自己的播放器。最好的方法是使用炼金术 - 那么它的工作更快,但也很慢:)你也可以使用haXe。 声音非常类似。最好的开始是Adobe实验室。最后 - 记住flv使用硬件解码 - 你的代码将只使用处理器。现在问自己,你是否真的需要这个功能?

-1

我不确定这是可能的,因为我没有我dea如何Flash编码SWF嵌入式视频,但也许你可以将flv bytearray转换为swf,并在时间线中嵌入flv,并使用该bytearray将其显示为Loader.loadBytes ...

+0

+1 ...好主意......但我无法了解如何在SWF中嵌入视频...我一直有这样的印象,它们以某种方式转换,这将需要解码... – back2dos 2009-10-12 21:08:34

+0

这是一个好主意。它已经完成了音频(MP3),所以可能对于视频... http://www.flexiblefactory.co.uk/flexible/?p=46 – bartekb 2009-10-13 13:14:02

0

Loader + MovieClip技巧是可能是唯一的出路,see this

限制。对于rtmfp2p来说,2分钟的限制是可以的,因为分发更大的字节码无论如何都是不可行的。

假设播放指标(播放头/当前帧)可用,平滑过渡不应该是一个问题 - 开始播放第二个带有静音/可见= false的swf,直到时间轴同步,然后翻转视频和声音 - 非常有效对于netstream/play()也不错,但对于普通的swf还不太确定。

另一个问题是确定flv数据导入swf的方式,以及如何在运行时以as3构建正确的swf。到目前为止,mxmlc/swfmill不能直接嵌入FLV(已经有一段时间了,事情可能已经改变),只有简单的flash AS3能够创建带有视频的bytearray可载入swf。应该有可能。

在一个相关的说明 - 一个问题是,如果它的所有值得的麻烦 - 如果要建立一个成功的网站,像这个p2p VOD,Adobe可能只是切断线(黑客没有SWF电影剪辑嵌入的视频将从bytearrays加载...)。

我仍然试图找到完成p2p vod的裂缝,以防某些人感兴趣随时向我msg @ [email protected] | sed -e's/A/e''

7

现在有一种更好的播放视频的方法,您可以使用NetStream.appendBytes()将其存储在ByteArray中。

这里是它在使用中的例子:http://www.bytearray.org/?p=1689

+0

这是现在的答案。 – 2013-01-13 18:11:41

+0

有没有解决appendBytes()?闪光<10 – Lego 2014-02-27 13:40:35