2

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

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

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

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

有人可以在这里帮助我,将不胜感激。

4

1 回答 1

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
}
于 2016-03-02T08:32:45.053 回答