Actionscript 3 AS3:是否可以将舞台元素或位图数据捕获到netstream中?
我正在查看appendBytes()是否真的可以获取任意数据,但无法真正了解。我真的可以只获取任意位图数据(作为字节数组)并将帧附加到流中(大概是在发送到FMS保存文件之前)?我想我错了:它只对动态流有用。我知道可以通过FMS抓取网络摄像头并直接编码视频。但如果说我想在编码之前添加一些叠加,那在Flash中也可能吗?也就是说,你能在Flash中动态生成netStream对象吗?或者你唯一能做的就是生成netStream对象,反之亦然 基本上,目标是操作视频和音频,就像直接保存实际的视频文件一样。Movie Masher实际上会将单个帧保存到服务器,以便以后进行转换 我听说FP11有本机H264编码——所以“规范”问题是:最终的netStream是否可以在浏览器中编码,然后通过HTTP上传到服务器,或者FMS仍然是一个要求?我正在看这个,但我不确定他们是否只是使用FMS作为文件转储,或者这是否是过程的一部分Actionscript 3 AS3:是否可以将舞台元素或位图数据捕获到netstream中?,actionscript-3,flash,flash-media-server,netstream,Actionscript 3,Flash,Flash Media Server,Netstream,我正在查看appendBytes()是否真的可以获取任意数据,但无法真正了解。我真的可以只获取任意位图数据(作为字节数组)并将帧附加到流中(大概是在发送到FMS保存文件之前)?我想我错了:它只对动态流有用。我知道可以通过FMS抓取网络摄像头并直接编码视频。但如果说我想在编码之前添加一些叠加,那在Flash中也可能吗?也就是说,你能在Flash中动态生成netStream对象吗?或者你唯一能做的就是生成netStream对象,反之亦然 基本上,目标是操作视频和音频,就像直接保存实际的视频文件一样。
有一个开源项目,它使用ByteArrayVolvencoder,允许您对原始ByteArrays进行编码。H264是否有等价物?根据文档,似乎不可能使用本机编码器,因为您不能同时利用
NetStream.publish()
和NetStream.appendBytes()
:
NetStream既可以发布流,也可以播放流,但不能同时发布流和播放流。
要发布流并从服务器查看播放,请创建两个NetStream对象
换句话说,似乎没有办法通过NetStream
对象向FMS发送自定义数据
因此,你可以:
视频
对象与NetStreamMapPendBytesAction类一起使用的NetStream类上的appendBytes 示例代码: 参考演示:
因此,基本上,即使我们可以使用Alchemy直接记录到H264,我们仍然必须将其附加到摄影机流,并且实际上不能将帧写入缓冲区?正如我所说的,除了使用
NetStream
对象发送自定义数据之外,您几乎可以做任何事情(这意味着您希望能够利用Flash Player H264编码器publish()
提供。我可能错了,但看看文档,这就是结论。不过,您的选择并不局限于此,我认为使用服务器发送帧的自定义协议(如Movie Masher)会很有效。感谢您的输入——我阅读了太多不同的方法,它变得越来越流行。用8分钟时间就被接受了抓住悬赏,祝你好运!
// retrieve the FLV stream
var bytes:ByteArray = event.currentTarget.data;
// put the NetStream class into Data Generation mode
netstream.play(null);
// before appending new bytes, reset the position to the beginning
netstream.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
// append the FLV video bytes
netstream.appendBytes(bytes);