Configuring Point-to-Point Connection
In case your Broadcaster is in the cloud and two endpoints are on-prem, you can enable Point-to-Point connection between them, so you skip the "cloud hop" (less latency, no cloud egress cost). In this case the Broadcaster authenticates both endpoints, brokers the connection and punches through the NAT, so the endpoints don't need a public IP or inbound port forwarding.
If a direct connection cannot be established, media is relayed through the Broadcaster, unless Disable P2P fallback is selected. Selecting this option limits the input to one output and disables Matrix and SCTE features.
In this configuration, the Broadcaster offers central authoring and monitoring, but cannot provide fan-out, transcoding, recording, or non-Zixi outputs from this input.
Configuring the components for the P2P connection
The endpoints can be any Zixi-supported component. For the sake of simplicity we will refer to them as follows:
- Zixi Push sender
- Cloud Broadcaster
- Zixi Pull receiver
To configure the Point-to-Point Connection:
On the Cloud Broadcaster that will act as an intermediary, create a Zixi Push Stream Push input with the stream ID the sender will use.
Under Advanced Settings, select the Point to Point option.
Leave Disable P2P fallback disabled, unless you want a hard failure instead of a relay when the direct path cannot be made.
Make sure Max outputs is forced to 1, and matrix and SCTE are disabled.
On the Zixi Push sender, configure a Zixi Push output to the Cloud Broadcaster, using the same Stream ID used in step 1, you can use any password. The Push port should remain the default value - 2088.
There is need to select the P2P setting on the Zixi Push Sender. Every Zixi push client advertises P2P capability automatically.
On the Zixi Pull receiver, configure a Zixi Pull input, using the same Stream ID used in step 1. The Pull port should remain the default value - 2077.
There is need to select the P2P setting on the Zixi Pull Receiver.
What happens after configuration
Both sides connect to the Cloud Broadcaster first. The Cloud Broadcaster authenticates them, then its P2P distributor sends each side the other's public address and port as seen from the Cloud Broadcaster. Both sides start sending to each other directly, which doubles as UDP hole punching through NAT.
Once the direct path is up, media flows from the sender to the receiver. Both sides keep a keepalive to the Broadcaster so it can show the stream as connected and report statistics. The input shows type "P2P" in the Cloud Broadcaster inputs list.
If the direct path fails and Disable P2P fallback is disabled, the Cloud Broadcaster moves the pair back to normal relay and the input reverts to a regular Push. If Disable P2P fallback is enabled, the receiver is disconnected with a "P2P error".