是否可以通过NetStream字节访问将实时视频流式传输到Flash Media Server?

时间:2012-03-10 02:45:20

标签: actionscript-3 flash flash-media-server air-native-extension

因此,我正在使用一个视频源,我通过一些原生扩展工作为我的Adobe AIR应用程序提供服务,目标是最终将其转移到Flash Media Server。该视频采用H.264编码并复用到FLV容器中,使我与支持的Flash Media Server编解码器和NetStream(appendBytes)要求保持一致。我可以很好地将数据输入AIR。

然而,我今天踏上的矿井是NetStream.appendBytes州的文件,我必须致电NetStream.play(null)

  

在"数据生成模式"中的NetStream上调用此方法。要将NetStream置于数据生成模式,请在连接到null的NetConnection上创建的NetStream上调用NetStream.play(null)。在不是数据生成模式的NetStream上调用appendBytes()是一个错误并引发异常。

使用null参数调用的NetStream.play()会产生本地FLV播放。我无法在此模式下将流发布到FMS。但我对Flash的研究似乎表明,在处理非相机或非网络视频数据时,NetStream的字节访问是我唯一真正的希望。

问:我可以锁定视频播放缓冲区以发布到FMS吗?我可以创建一种NetStreams或NetConnections管道来实现这一目标吗?或者是否有另一种方法将H.264 / FLV数据传输到FMS? (我的视频源无法直接与FMS通信。)

1 个答案:

答案 0 :(得分:2)

你的问题的答案非常简单。这显然是作为安全功能实现的,这可能不是基于安全性的问题,而是更多的销售问题。 Adobe喜欢有意阻止某些功能,以便创造或需要其他产品,即更多收入。

我试着看看这个,看看是否有一些脏的黑客,你可以附加相机或其他东西,并覆盖发送到流的二进制数据,就像你可以使用音频但不幸的是,据我所知,没有这样的黑客是可能的。更多信息:NetStream.appendBytes

<强>更新

你可以通过使用ManyCam做一些hackish,这是一个虚拟网络摄像头驱动程序(根据我的理解)。这将提供您可以从闪存中选择的有效相机,您还可以选择视频文件作为ManyCam的源文件。见http://manycam.com/user_guide/#HowtoSelectaVideofileasthePictureSourceforManyCam

更新#2

如果您正在寻找与manycam相同的开源软件,请查看以下内容:

http://code.google.com/p/webcamstudio/wiki/VideoSourceMovie(GPL许可)