With eyeson Ghost RTMP-Server, we released a new handy application with which you can stream any RTMP- or RTSP-source into a meeting.
In this blog post, I will show you how you can set up eyeson ghost RTMP server on your PC.
You can watch the video tutorial here:
First steps - preparing your PC
Download the .exe for the RTMP stream from our eyeson ghost repository where you find in the example section (https://github.com/eyeson-team/ghost/releases) and save it in an easy-to-access folder. In this example, we will save it to C:\eyeson.
Open Windows Powershell (or any bash you like). Typing the command
./rtmp-server_windows_amd64.exe -h shows you the available flags:
Start a meeting to join with a drone
Head over to https://accounts.eyeson.team/ and start a new meeting.
Click on the "Invite guest" icon or press Shift+I to copy the guest link of the running meeting to the clipboard.
Now start the ghost server with
./rtmp-server_windows_amd64.exe https://app.eyeson.team/?[$GUEST_TOKEN] - it will join the running meeting as a guest.
Alternatively, you can use
./rtmp-server_windows_amd64.exe [YourAPIKey] to start a new meeting.
If the startup of the server is a success, you will get a response in your command prompt:
You can provide the guest-Link to participants to join the running meeting.
Connect your drone or any streaming device
RTMP is more or less the standard in streaming as a lot of devices support it. Whether it is a drone or a body cam where you can enter an RTMP-address or an app like the Larix Screencast that is used to stream your phone or tablet.
Supposing you are in the same network as the PC, enter the IP address of your PC, followed by
:1935 (the standard port used by RTMP and ghost) as the connection endpoint, stream authentication can be everything you want.
Example: DJI GO 4
Connect your drone to your phone, and open "General Settings" in the upper right corner.
Open "Choose Live Streaming Plattform"
Click on "Custom RTMP"
Now enter the IP-Adress of your PC at the dialog "Create Custom Livestream" and tap on "Next".
Now you can see the information on the left upper side if your drone is connected to the ghost server and information about the FPS (frames per second) it is streaming.
Your drone is now part of the running meeting.
If the FPS drops to 0, your drone is no longer connected.
Accessing the ghost server from anywhere in the world
If your source device (e.g. your drone) is not in the same network as your PC, make sure you can access the ghost server via a port forwarding, for example, use ngrok.io.
Use the TCP forwarding to get the streaming address for your device:
./ngrok tcp 1935
Example: Larix Streamcaster via ngrok.io
ghost settings via flags
You can adapt various settings via flags:
--api-endpoint string Sets a custom api-endpoint (default "https://api.eyeson.team") .
--delay int32 This flag allows you do set a custom delay in ms (default 150) if your streaming device is sending a variable fps-rate to avoid judders.
-h, --help Summons the help for the ghost rtmp-server.
--room-id string Sets a Room ID. If left empty, a new meeting will be created on each request.
--rtmp-listen-addr string This flag sets the RTMP address this server is listening to (default "rtmp://0.0.0.0:1935").
--user string Sets a custom participant/user name (default "rtmp-test").
--user-id string Sets a user id to use.
-v, --verbose Triggers the verbose output to display extended information.
./rtmp-server_windows_amd64.exe --user Drone --delay 60 https://app.eyeson.team/?guest=xxxxxxxxxxxxxxxxxxxxxxxx
Starts a ghost RTMP-server listening to rtmp://0.0.0.0:1935 with the user name "Drone" to join the running meeting with a delay of 60 ms.