Actionscript 3 AS3:是否可以将舞台元素或位图数据捕获到netstream中?

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对象,反之亦然 基本上,目标是操作视频和音频,就像直接保存实际的视频文件一样。

我正在查看appendBytes()是否真的可以获取任意数据,但无法真正了解。我真的可以只获取任意位图数据(作为字节数组)并将帧附加到流中(大概是在发送到FMS保存文件之前)?我想我错了:它只对动态流有用。我知道可以通过FMS抓取网络摄像头并直接编码视频。但如果说我想在编码之前添加一些叠加,那在Flash中也可能吗?也就是说,你能在Flash中动态生成netStream对象吗?或者你唯一能做的就是生成netStream对象,反之亦然

基本上,目标是操作视频和音频,就像直接保存实际的视频文件一样。Movie Masher实际上会将单个帧保存到服务器,以便以后进行转换

我听说FP11有本机H264编码——所以“规范”问题是:最终的netStream是否可以在浏览器中编码,然后通过HTTP上传到服务器,或者FMS仍然是一个要求?我正在看这个,但我不确定他们是否只是使用FMS作为文件转储,或者这是否是过程的一部分


有一个开源项目,它使用ByteArrayVolvencoder,允许您对原始ByteArrays进行编码。H264是否有等价物?

根据文档,似乎不可能使用本机编码器,因为您不能同时利用
NetStream.publish()
NetStream.appendBytes()

NetStream既可以发布流,也可以播放流,但不能同时发布流和播放流。 要发布流并从服务器查看播放,请创建两个NetStream对象

换句话说,似乎没有办法通过
NetStream
对象向FMS发送自定义数据

因此,你可以:

  • 将相机连接到
    视频
    对象
  • 通过像素操作对其应用一系列效果
  • 通过套接字将像素数据发送到服务器,以便以后进行编码,或者使用您提到的AS3编码器将烘焙的FLV保存为文件(在用户的计算机上或服务器上)

  • 与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);