RTMP URL parsing is incorrect
RTMP URLs contain an application and stream name - there is no way to tell from the URL which parts of a path are the stream name and which are the application.
For example with this URL:
The application is rtmp://cp40359.edgefcs.net/ondemand/fancast and the stream name is Comcast_CIM_Prod_Fancast_Partner/821/651/COMEDYCENTRAL_COLBERTREPORT_4118.flv
Most Flash based media players deal with this by trying again and again with different prefixes of the URL until they find the one that works. e.g. see connectAgain() in http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as
Currently VLC modules/access/rtmp/access.c Open() just does a strrchr to find the last "/" in the URL and uses that last segment as the stream name, so the above URL won't play.
One way to address this would be to allow the user to explicitly identify where in the URL the application/instance name ends and the stream path begins - e.g. via a double //. So the above RTMP URL could be entered by the user as
Another way would be to do what the Flash players do and try establishing multiple connections to URL prefixes until it gets NetConnection.Connect.Success, and then treat the remainder of the URL as the stream path, e.g. for the above VLC would try the following connections:
rtmp://cp40359.edgefcs.net/ rtmp://cp40359.edgefcs.net/ondemand rtmp://cp40359.edgefcs.net/ondemand/fancast