Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Ragnar-H/TelloGo
Tello on the web via WebRTC
https://github.com/Ragnar-H/TelloGo
Last synced: 5 days ago
JSON representation
Tello on the web via WebRTC
- Host: GitHub
- URL: https://github.com/Ragnar-H/TelloGo
- Owner: Ragnar-H
- Created: 2019-05-05T10:37:37.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-07T01:56:49.000Z (over 1 year ago)
- Last Synced: 2024-08-01T19:45:12.100Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 14.3 MB
- Stars: 45
- Watchers: 4
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-pion - Ragnar-H/TelloGo - Tello on the web via WebRTC (Media API)
README
# Tello on the web via WebRTC
## What is this?
Playing around with the [Tello SDK](https://terra-1-g.djicdn.com/2d4dce68897a46b19fc717f3576b7c6a/Tello%20%E7%BC%96%E7%A8%8B%E7%9B%B8%E5%85%B3/For%20Tello/Tello%20SDK%20Documentation%20EN_1.3_1122.pdf)![](./demo.gif)
## Built with
* [Pion](https://github.com/pion/) to handle all things WebRTC
* [GStreamer](https://gstreamer.freedesktop.org/) for parsing video stream
* [React](https://reactjs.org/) for UI## Related work
* [Tello-WebRTC-FPV](https://github.com/oliverpool/tello-webrtc-fpv)
## Development
You need to install GStreamer locally unfortunately.
Follow [these steps](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)### Make
```
make install
``````
make start_client
``````
make start_server
```### WIP Docker
WebRTC negotiates and connects on a random UDP port. This means that all UDP ports need to be forwarded or docker need to run on [host network](https://docs.docker.com/network/host/)## Debug
Run video stream via GStreamer CLI
```
gst-launch-1.0 -v udpsrc port=11111 caps="video/x-h264, stream-format=(string)byte-stream, width=(int)960, height=(int)720, framerate=(fraction)24/1, skip-first-bytes=2" \
! queue \
! decodebin \
! videoconvert \
! autovideosink sync=false
```