FlashComGuru Home Imediasee Influxis Uvault Akamai
                                                                                       Forum Index | Active Topics | Register
                                                                                                          List Overview | List Archives
                                                                                                                           About this site | Advertise
 

home

Adobe AIR (8)
Applications (32)
Books & Training (9)
Collaboration (8)
Components (6)
Events (49)
Flash Player (8)
Flex (28)
FMS (67)
General (107)
Hosting (5)
Jobs (13)
Off topic (31)
Press Releases (7)
Site Check (7)
Tools (39)
Videos & Players (50)

Flash On the Beach

Alltop, all the cool kids (and me)

 
Here comes a little gotcha that could potentially have you pulling your hair out for a fair few hours, and some more once you realise how simple the 'fix' is.
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:

</VirtualDirectory>
<Streams>myvideos;C:\myfiles\videostorage</Streams>
</VirtualDirectory>

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

ns.play("myvideos/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 videostorage as the instance and lose the mapping. Therefore the correct rtmp string in this case would be
rtmp://myserver.com/myapp/myinstance/videostorage/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
videostorage - 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.

Related Articles

Comments
[Add Comment]
Thank you, the "myinstance" part was causing me problems for days. The VideoPlayer class load command does not need this, but the flvPlayback component does.
# Posted By Brian Kalbfleisch | 5/13/08 6:50 PM
to play an mp4 file the rtmp string would be:
rtmp://myserver.com/myapp/myinstance/mp4:videostorage/client1/nicevid.mp4
# Posted By Jorge Tejada | 5/19/08 8:11 PM
Is there some specific reason why I can't get my FLV to play through the FLVPlayback component when I've got a user subfolder?

ex:
rtmp://myserver.com/myapp/userid/video.flv

It plays fine when there's no subfolder:
rtmp://myserver.com/myapp/video.flv

What gives?
# Posted By devincolumbus | 5/30/08 7:23 PM
shot in the dark but try this:

rtmp://myserver.com/myapp/instance/userid/video.flv

Does that work?
# Posted By Stefan Richter | 5/30/08 10:51 PM
OHHH EMMM GEEEEE.

days of frustration. fixed.
# Posted By Dzejms | 6/18/08 3:37 PM
glad to hear it :-)
# Posted By Stefan Richter | 6/18/08 3:43 PM