ADS-B Camera overlay for tracking and displaying aircraft information
https://www.youtube.com/watch?v=869Ap32wEqw
Copy the file src/config.example.js
to src/config.js
and set your camera parameters
import LatLon from "geodesy/latlon-nvector-ellipsoidal";
export const AVR_WS = "ws://127.0.0.1:9999"; //websocket connection for AVR messages
export const CAM_W = 3840; //Camera resolution in pixels
export const CAM_H = 2160;
export const CAM_POS = new LatLon(0.0, 0.0, 0.0); //GPS Position of camera and altitude in meters
export const CAM_BEARING = 0.00; //Direction camera is facing in degrees
export const CAM_HFOV = 110.0; //110 deg horizontal
export const CAM_VHOV = (CAM_HFOV / CAM_W) * CAM_H; //Vertical FOV matches aspect ratio
Notes:
- Camera incline is currently not supported, your camera MUST be centered on the horizon
node.js
is requred to build.
git clone https://github.com/v0l/adsb-overlay
cd adsb-overlay
npx yarn install
npx webpack
Download from here
Run the command nc my-adsb-feeder-ip 30002 | websocat -s 9999
.
This will pipe the AVR output from your feeder to any clients that connect to ws://localhost:9999
- Add your camera as a video source
- Add a browser source
- Set the browser source to
Local File
- Select the file
/path/to/adsb-overlay/index.html
- You should now see the horizon marker with the heading markers
- Set the resolution so it matches your camera resolution
- Set the browser source to
- The browser source and the video source should be the same size in OBS
This is more of a POC than anything else, the last time I worked on it I was making a much better version but I had already moved onto some other projects.
Feel free to contribute (complete) the newer organised version, and if you feel like it please consdier supporting this project.
For me the vertical angle is wrong when planes are higher on the camera view so the marker box is way off, I dont know if this is because of something funky with my camera or not.
I have yet to devise a way to calibrate the FOV..
- Finish cleaner new version
- Stop using
netcat
andwebsocat
, could easily use a simplenode.js
script to replace this part. - Convert the project to use something like
OpenCV
so the overlay could be used in a more portable way, i dont like that its using a browser source or that you have to use OBS, ideally this could just run standalone..