If you are streaming files from FMS (be it version 2 or 3) then you may have made use of its Virtual Directory feature. This allows you to use a key (basically a named mapping) to point FMS at different storage locations for video files.
For example you could configure a key name of 'myvideos' and map this to a location of C:\myfiles\videostorage. The tag in vhost.xml would look like this:
Then every time a stream is requested via NetStream.play the server will look for the myvideos key in the stream path and if found locate the appropriate video file inside /videostorage (or if required in a subfolder).
The following code would play the file nicevid.flv located at C:\myfiles\videostorage\client1\nicevid.flv
So far so good.
So how would you use this approach with the FLVPlayback component? You may assume that you simply enter somthing such as the following as the video source property:
rtmp://myserver.com/myapp/videostorage/client1/nicevid.flv
For a non-mapped location this would probably work. The FLVPlayback component does not normally require you to pass an application instance name so you would not pass one here either (myapp in this case is the application name).
It turns out though that if you use mapping you need to explicitly pass an application instance name, otherwise the FLVPlayback component will utilize myvideos as the instance and lose the mapping. Therefore the correct rtmp string in this case would be
rtmp://myserver.com/myapp/myinstance/myvideos/client1/nicevid.flv
Note that you can substitute myinstance for any name you see fit, it doesn't matter what you pass as long as you pass *something* here. So let's look at the elements of this rtmp string quickly:
rtmp://myserver.com - the server address
myapp - the application name
myinstance - the application instance name
myvideos - the named mapping which directs stream requests to the virtual directory we configured
client1 - a subfolder which holds videos
nicevid.flv - the actual video we want to play
Hopefully this helps somebody sometime.


rtmp://myserver.com/myapp/myinstance/mp4:videostorage/client1/nicevid.mp4
ex:
rtmp://myserver.com/myapp/userid/video.flv
It plays fine when there's no subfolder:
rtmp://myserver.com/myapp/video.flv
What gives?
rtmp://myserver.com/myapp/instance/userid/video.flv
Does that work?
days of frustration. fixed.
If not, why?
Just curious, how did you figure out the instance part? Is it documented by adobe somewhere?
I don't believe it's documented, I figured it out myself.
<Streams>myvideos;C:\myfiles\videostorage</Streams>
</VirtualDirectory>
above in the "streams" tag , can i point out to the remote location where my videos are present , if so how can i pass ? is it through http or ftp .
please do reply any one .
thank you .
no you cannot point this to a HTTP address. Maybe future versions of FMS will allow this feature.
I've got a video located at :
C:\Program Files\Adobe\Flash Media Server 3.5\applications\studio\streams\_definst_\livestream.flv
and I can't manage to play it through an FLVPlayback component.
I used the rtmp string rtmp://192.19.105.39/testStudio/_definst_/livestream
What sould I do more ?
Thanx in advance.
Your app name seems to be studio since your folder name is studio: C:\Program Files\Adobe\Flash Media Server 3.5\applications\studio..
yet you are trying to connect to testStudio:
rtmp://192.19.105.39/testStudio
My stream is recorded in C:\Program Files\Adobe\Flash Media Server 3.5\applications\testStudio\streams\_definst_\livestream.flv
and I'm trying to connect to rtmp://192.19.105.39/testStudio/_definst_/livestream but nothing happens.
I've also tried to drag directly into my scene an FLVPlayback component with the source property sets to rtmp://192.19.105.39/testStudio/_definst_/livestream but the result is still the same.
Maybe it is a XML configuration problem because I can display files located in C:\Program Files\Adobe\Flash Media Server 3.5\applications\vod\media perfectly.
Thank you for your response.
Thanks for your time Stefan.
Cheers
Stefan