AWS relay
A stream between two nodes that are both on private networks, behind NAT or a firewall, relayed through a node with a public address. Here the relay runs on an AWS EC2 instance, but any public machine works.
Requirements
- Two local nodes, a sender and a receiver.
- One node with a public address, the relay, that both local nodes can reach. Open UDP ports
1232to1237in its firewall or security group. - GStreamer on the sender and the receiver.
Steps
- Import each pipeline on its node with Pipelines → Add → From File.
- On the sender and the receiver, set the Remote Address of every Peer Writer that points at
0.0.0.0to the relay's public address, keeping the port. The receiver's Peer Writers that point at127.0.0.1deliver the stream locally and stay as they are. - On the sender, set the Interface of the two UDP Remote components that carry Raft to your two connections' interfaces. The file uses
wwan0andwwan1, and the pipeline does not start without them. Clear the field to let the system choose. - On the sender and the receiver, set the GStreamer path in the lifecycle handler. See Lifecycle handler.
- Start the relay pipeline, then the receiver, then the sender.
The sender drops 2% of packets on each path with Loss Constant, and sends the stream a second time as plain UDP, shown in a window labelled UDP on the receiver. Set Loss Probability to 0 to test the real connections.
If all three nodes are on the same hub, a network can set up the relaying for you.