有没有办法在数据生成模式下将| RtmpSampleAccess命令写入NetStream?

时间:2016-03-02 06:51:51

标签: actionscript-3 flash rtmp netstream netconnection

我从服务器传输数据并在数据生成模式下将其传递到网络流中。我成功地将H264和PCMU包装起来通过NetStream播放,但是我需要能够从它上面的视频显示中捕获这个输出并将其存储在图像中。使用RTMP服务器时,我将其配置为发送RtmpSampleAccess命令,true,true允许进行音频和视频访问。使用RTMFP时,我会执行相同操作,send() RtmpSampleAccess true,true来自对等方以允许访问。

我相信我需要为脚本数据对象发送FLV标记来表示RtmpSampleAccess命令,但是我无法找到有关该标记所需格式的任何信息成为。我尝试使用OSMF FLVTagScriptDataObject将对象设置为以下组合:

["|RtmpSampleAccess", true, true];
["|RtmpSampleAccess", [true, true]];

猜测对象参数命名的各种尝试(虽然查看协议文档,但我不确定是否存在)。

有人可以帮助我,非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您将Netstream置于数据生成模式,则添加第二个播放命令。第二个只是播放"空白"由于某种原因,这会覆盖安全错误。

ns.play(null);
ns.play(""); //works to avoid all security errors
ns.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);

然后点击设置按钮以在点击时运行draw_VideoFrame功能,或尝试使用下面的内容进行实时绘图(使用enterFrame):

vid_Obj.addEventListener(Event.ENTER_FRAME, draw_VideoFrame);

然后创建一个类似于此示例的函数。

function draw_VideoFrame (e:Event) : void
{
    vid_BMD.draw( vid_Obj ); //draw into a BitMapData variable
}