[cc'ing support mailing list]
Hi Vhal,
In another project, I did RTMFP first and then within 500 ms (instead of 5 sec) attempt RTMP without stopping RTMFP. If RTMFP succeeds later, stop or disconnect RTMP. But other approaches (where you attempt RTMP first and then do RTMFP) should work as well. The main challenge is to provide a smooth user interface which seamlessly transitions different video elements or attaches the same video with different stream objects.
In the past I used
http://cc.rtmfp.net/ to detect NAT issues. I hope it still works. If it works from your client then hopefully RTMFP should work.
With RTMFP there are two types of NAT issues: (1) if UDP is blocked it won't work at all. (2) If UDP is allowed by the NATs are of type symmetric NATs then it won't be able to establish peer-to-peer media path. In the latter case (2) it may still work if you use a server that supports RTMFP (such as Adobe FMS), in which case the media path will be client-server but over UDP. The free cirrus/stratus service (used in VideoIO sample code) does not allow client-server media path though. If your NATs are of symmetric type that allow UDP you may benefit if you install your own version of FMS instead of using free cirrus/stratus service for RTMFP rendezvous. The media path over UDP has still lower latency than over TCP even if it is client-server, although it does not save on server bandwidth.
Please send future questions to the mailing list.
Regards