https://github.com/openipc/pyosd
OSD python app to run on MacOS
https://github.com/openipc/pyosd
fpv openipc pyosd urllc
Last synced: 10 months ago
JSON representation
OSD python app to run on MacOS
- Host: GitHub
- URL: https://github.com/openipc/pyosd
- Owner: OpenIPC
- License: mit
- Created: 2024-06-21T11:13:26.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-13T13:48:13.000Z (over 1 year ago)
- Last Synced: 2025-04-10T00:13:33.629Z (10 months ago)
- Topics: fpv, openipc, pyosd, urllc
- Language: Python
- Homepage: https://openipc.org
- Size: 12.3 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![OpenIPC logo][logo]][site_basic]
## pyosd
simple python OSD app for openipc groundstation to run on MacOS / Ubuntu
using gtk3.0 transparent window + pymavlink
work in progress
## Installation
### 1. Install dependencies
- download and install python 3.11 or 3.12 : https://www.python.org/downloads/
- python packages : PyGObject, pymavlink
```
$ pip3 install PyGObject pymavlink
```
### 2. Install gstreamer for playing video stream
This osd app could show only osd elements. so gstreamer is needed to play the video stream from air unit.
- using homebrew on MacOS
```
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew install gstreamer
```
- using apt-get on Ubuntu
```
$ sudo apt-get update
$ sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
gstreamer1.0-libav
$ sudo apt-get install libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-good1.0-dev \
libgstreamer-plugins-bad1.0-dev
```
### 3. Git clone this repository and run pyosd.py
```
$ git clone https://github.com/OpenIPC/pyosd.git
$ cd pyosd
$ python3 pyosd.py
```
## Usage
1. udp packets of video and telemetry from air unit are needed ( running wfb-ng )
- MacOS : using utm virtual machine for installation and running wfb-ng on ubuntu-server
- Ubuntu : install and run wfb-ng
- wfb-ng ubuntu install guide : https://github.com/svpcom/wfb-ng?tab=readme-ov-file#quick-start-using-ubuntu-ground-station
2. playing video stream by gstreamer pipeline.
```
$ gst-launch-1.0 -vvvv udpsrc port=5600 ! application/x-rtp, payload=32, clock-rate=90000 ! queue max-size-buffers=1 \
! rtph265depay ! h265parse ! avdec_h265 ! autovideosink sync=false -e
```
3. running pyosd.py on the pyosd directory
```
$ python3 pyosd.py
```
*** If you want to use pyosd on Ubuntu, replacing the pymavlink connection from 'udpin:224.0.0.1:14550' to 'udpin:127.0.0.1:14550'
- 173 line of pyosd.py : https://github.com/OpenIPC/pyosd/blob/94451877e6558df44f6bf3085e632ff6120e89b1/pyosd.py#L173C9-L173C86
```
self.mavlink_connection = mavutil.mavlink_connection('udpin:127.0.0.1:14550')
```
*** If you want to use pyosd on MacOS, mulitcating the udp packets from utm virtual machine is needed. by replacing peer of video mavlink and video 'connect://224.0.0.1:14550' of utm virtual ubuntu-server.
```
$ sudo nano /etc/wifibroadcast.cfg
...
[gs_mavlink]
peer = 'connect://224.0.0.1:14550' # outgoing connection
# peer = 'listen://0.0.0.0:14550' # incoming connection
[gs_video]
peer = 'connect://224.0.0.1:5600' # outgoing connection for
# video sink (QGroundControl on GS)
```
*** when starting this app on MacOS, there are some gliches. then minimizing and re-maximizing window could be helpful.
## Examples
1. MacOS (14.2.1 Sonoma)

2. Ubuntu (23.10 mantic)

[logo]: https://openipc.org/assets/openipc-logo-black.svg
[site_basic]: https://openipc.org