我正在从服务器流式传输数据,并在数据生成模式下将其传递到网络流中。我已成功包装H264和PCMU以通过NetStream播放,但是我需要能够从它所在的视频显示器捕获此输出并将其存储在图像中。使用 RTMP 服务器时,我会将其配置为发送 RtmpSampleAccess
命令,并允许true,true
音频和视频访问。使用RTMFP
时,我也会这样做,send()
对等方的RtmpSampleAccess true,true
以允许访问。
我相信我需要为脚本数据对象发送一个 FLV
标签来表示RtmpSampleAccess
命令,但是我找不到有关该标签需要什么格式的任何信息。我尝试将对象设置为以下组合OSMF FLVTagScriptDataObject
:
["|RtmpSampleAccess", true, true];
["|RtmpSampleAccess", [true, true]];
以及猜测对象参数命名的各种尝试(尽管查看协议文档,我不确定是否有)。
有人可以在这里帮助我,将不胜感激。
将 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
}