Skip to main content

How to Add a Drone

To add a drone or other streaming camera (such as CCTV, bodycams, or IP cameras) to an Eyeson call, you'll need to convert the video stream to WebRTC protocol. Here's how to accomplish this.

TL;DR

  1. Download the appropriate Ghost binary for your platform from our Github repository
  2. Determine your IPv4 address
  3. Run the binary with the desired flags
  4. Configure your drone to stream to the endpoint defined by the flags

Your IP Address

Depending on your platform, there are different ways to find your unique IP address. Run the appropriate command below and look for IPv4 (Windows) or inet (Linux/macOS) in the output.

ip addr show

Ghost Client

You can use the Ghost client in various ways. You can run it directly with an API key or you can connect to a running meeting with a Guest Link. Here are some examples to try out. For more visit our Github examples.

Start a Room & connect

rtmp-server --user-id drone01 --room-id mission01 --rtmp-listen-addr rtmp://<IP_ADDR>:1935 <API_KEY>
example response
14:14:35.008 INF Guest-link: https://app.eyeson.team/?guest=UD3WR7D2MaJRCPcF3BAMPZQ2
14:14:35.095 INF GUI-link: https://app.eyeson.team/?3DYacQpPcCmsl8xUfWAU7fWH
14:14:40.249 INF ICE Connection State has changed: checking
14:14:40.790 INF ICE Connection State has changed: connected
14:14:40.790 INF RTMP server listening: rtmp://192.168.0.1:1935/eyeson/drone

This creates a new room with the ID mission01. The drone is assigned a unique identifierdrone01, which can be used to control or modify its layout later.

info

Don't forget to make the binary executable on your platform. On Windows add .exe to the binary name & on Linux use chmod etc.

Connect a Drone to the same room

rtmp-server --user-id drone02 --room-id mission01 --rtmp-listen-addr rtmp://<IP_ADDR>:1935 <API_KEY>

We use the same room ID, mission01, so the drone connects to the running meeting.

rtmp-server --user-id drone03 --rtmp-listen-addr rtmp://<IP_ADDR>:1935 <GUEST_LINK>

If your are in a running meeting but don't know the room ID, you can just use the Guest Link of that room.

info

In the browser, you just have to Shift + i to copy the link. Or you go to the left side menu bar of the default UI and copy the link.

tip

If you own a Stream Deck, Eyeson offers a very easy way to do all of this by one button click. You can get the Eyeson Plugin for Stream Deck here.

Stream from your drone

Configure your drone's streaming feature to point to your device's IP address. Most of the drone apps provide a custom streaming option, typically offering RTMP or RTSP. Here is some examples:

rtmp endpoint example
rtmp://192.168.xx.xx:1935/eyeson/drone
  • Protocol: RTMP
  • local IP address: 192.168.xx.xx
  • Port: 1935 (default; or any other unused port)
  • Authentication: some platforms need a user name and a password
rtsp endpoint example
rtsp://name:password@192.168.xx.xx:554/stream1
  • Protocol: RTSP
  • Authentication: user name and a password
  • local IP address: 192.168.xx.xx
  • Port: 554 (or any other unused port)
  • Resolution: HD (stream1 in this case)
warning

Note that all streaming devices must have network connectivity to the Ghost server, either through local network access or properly configured public interfaces.

tip

If you have no way to expose you network and provide a public IP address, you use apps like ngrok.

Remarks on Ghost

This implementation demonstrates adding an H.264 video stream to the call. The current version of Ghost specifically supports H.264 encoding. Since Ghost is open source, developers can extend it to support additional protocols, enabling integration with custom cameras or legacy systems.