mnkdon / flash-videoio

Automatically exported from code.google.com/p/flash-videoio
0 stars 0 forks source link

Add redundancy and failover mechanism #3

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
It should be possible to supply multiple hosts or src properties, and have 
VideoIO use the best available source. This will be useful for many new use 
cases:

1. A group communication can have the speakers publish to both p2p and group 
URL. The active speakers will play other speakers' p2p URL and passive viewers 
will play speakers' group URL.

2. In a video call, each participant can publish to both p2p and server URL, 
and play from p2p or server URL of other participant. This will allow the call 
to automatically failover to server URL if the p2p mode does not work, e.g., 
firewall blocks UDP.

3. A VoIP caller can supply two different siprtmp URLs, so that the call is SIP 
registration with all of them, and call is attempted with any of them that is 
available.

Luckily, the API change for all these seems very simple: define a "sources" 
property, which is an array of src URLs. All the items in the array must have 
the same publish/play mode. If all items are in publish mode, then the VideoIO 
instance should attempt to publish to all the URLs. In reality, it will publish 
only if a player is available for the URL. If all the items are in play mode, 
then the VideoIO instance should attempt to play from the first available URL 
that works. If both publish and play are present in all the URLs, treat them as 
redundant siprtmp servers. If the modes of all the items are not same, it 
throws an error. 

Original issue reported on code.google.com by kundan10 on 3 Mar 2011 at 3:25