UDP/TCP Tunneling
UDP/TCP Tunneling feature overview and example
Since version 1.9.2.0 Video Transport got a new feature that we called "UDP/TCP Tunneling".
This feature basically allows you to embed UDP/TCP data within one or more published streams, which allows you to securely send data between the two different networks. It can be used in many various cases, but in this particular manual, we will look at the most requested case.

Control PTZ Camera over TCP/IP protocol

So let's imagine that we have a remote PTZ camera device and you need to control this PTZ device by the application, but there is a problem - you can't afford to change forward rules between your network segments, your network security only approved the Video Transport network ports requirements.
For example, we have a PTZOptics camera with an IP Address=192.168.10.102 and we want to control it via PTZOptics PTZ Camera Control App. This application controls the camera over IP address through the 5678 TCP port.
Both VT Publisher and VT Receiver apps have the UDP/TCP Tunnel address field in the particular source settings.
Example of the UDP/TCP field
This field has a format that depends on the role of each location.
The Server is listening to data on specified protocol and port and sending the incoming data stream to the Client location.
Server location: protocol://:port
for example: tcp://:6010, udp://:9300
Client output the data from the Server to a specified address and port.
Client location: protocol://address:port
for example:tcp://127.0.0.1:3000, udp://127.0.0.1:1000
Both apps can be the Server and both apps can be the Client, the choice depends on your scenario.
To achieve the UDP/TCP tunnel connection your source must be at published and received on the other side. But it works well only in case if your stream is set to Output.
What we must do:
  1. 1.
    Run the VT Publisher on the machine that resides in the same network with the remote camera.
  2. 2.
    Select the Camera source in the list and go to Source Settings.
  3. 3.
    The address of our Camera is 192.168.10.102 and we want to control it via the 5678 TCP port. So we need to fill the UDP/TCP tunnel setting with the following value tcp://192.168.10.102:5678
  4. 4.
    Publish the stream and run the VT Receiver on the machine from where you want to control the PTZ camera.
  5. 5.
    Select the published source and fill the UDP/TCP tunnel with the following value
    tcp://:5678
    It actually means that now you can use your localhost address (127.0.0.1) to control the remote camera.
  6. 6.
    Output this source.
  7. 7.
    Run the PTZOptics PTZ Camera Control App.
  8. 8.
    Go to Settings-Multi Camera Setting and pick one free Camera preset.
  9. 9.
    Pick your Camera name and fill the address field with 127.0.0.1.Click OK and close the settings. It is recommended to enable the View-Status Bar setting to view the connection status at the bottom of the PTZOptics PTZ Camera Control App window.
  10. 10.
    Now you can control the camera.
PTZOptics App window example
As said earlier you can interchange the roles and there is no need to publish or receive an actual camera feed to control. You could publish any feed and do the tunneling within.
You also could run the tunneling without output in the VT Receiver, but in this case, you must select the source and see the Preview at least.
Also please stick to the format described earlier in this scenario. If you fill the UDP/TCP tunnel setting with an inappropriate value you will see an indication like in the following picture: