Client.videoSampleAccess False-Negative
In past versions of FMS, developers were barred from accessing raw audio and video data over RTMP and had to resort to a number of hacks and proxies to get around the restriction. As time went by and new versions of the Flash Player were released, a lot of these loopholes were blocked as well.
With FMS3, there is Client.videoSampleAccess: a property of the Flash Media Server 3 that allows direct access to raw stream data for video use (”audioSampleAccess” for audio). This can be used for things like producing visual audio spectrums or grabbing a still from a video stream. It is applied within the onConnect method of the Application server class as demonstrated here:
1 2 | appClient.audioSampleAccess = "/"; appClient.videoSampleAccess = "/"; |
In the above example, the “/” signifies that any streams within the application directory are allowed to be sampled in this way. You can also specify a semicolon-delimited list of folder names instead if you need to be picky.
Something I came across today and the whole point of this post: even when you have Client.videoSampleAccess set up properly on Flash Media Server, you will still receive a security sandbox violation error #2123 if the stream data is not available. This can easily happen if you have a timer invoking BitmapData.draw every few milliseconds on loading content.
One way to get around this is using NetStatusEvent.NET_STATUS making sure it reports “NetStream.Buffer.Full” before attempting to access the stream data. Depending on what you are doing, you can oftentimes check the object recieving the stream data to be sure it is accessible first. this all seems really obvious now, but threw me for a bit of a loop, initially.
Tags: ActionScript, FMS, Video



June 25th, 2008 at 8:15 am
brillant post… I am doing just what you said and getting a the random security error…. great work…
now I just need to work out why fms3 seems to think I am using 2 connections instead of one and I will be happy.
Thanks for your post!!!
July 25th, 2008 at 2:48 pm
[...] also makes heavy use of Coldfusion 8 and Flash Media Server 3. In fact, many of my recent posts were born directly from work on this specific [...]