{"id":20161520,"url":"https://github.com/openipc/pyosd","last_synced_at":"2025-04-10T00:13:41.757Z","repository":{"id":245429601,"uuid":"818222813","full_name":"OpenIPC/pyosd","owner":"OpenIPC","description":"OSD python app to run on MacOS","archived":false,"fork":false,"pushed_at":"2024-09-13T13:48:13.000Z","size":12863,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T00:13:33.629Z","etag":null,"topics":["fpv","openipc","pyosd","urllc"],"latest_commit_sha":null,"homepage":"https://openipc.org","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenIPC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-21T11:13:26.000Z","updated_at":"2025-04-04T03:34:37.000Z","dependencies_parsed_at":"2024-10-24T00:09:29.960Z","dependency_job_id":"444e8251-1eb8-48e8-afc0-92f677ab2f9c","html_url":"https://github.com/OpenIPC/pyosd","commit_stats":{"total_commits":7,"total_committers":3,"mean_commits":"2.3333333333333335","dds":0.5714285714285714,"last_synced_commit":"d9e59e95ac68510a96909459c426f4151c735fe9"},"previous_names":["openipc/pyosd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenIPC%2Fpyosd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenIPC%2Fpyosd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenIPC%2Fpyosd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenIPC%2Fpyosd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenIPC","download_url":"https://codeload.github.com/OpenIPC/pyosd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131315,"owners_count":21052819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fpv","openipc","pyosd","urllc"],"created_at":"2024-11-14T00:19:21.753Z","updated_at":"2025-04-10T00:13:41.728Z","avatar_url":"https://github.com/OpenIPC.png","language":"Python","readme":"[![OpenIPC logo][logo]][site_basic]\n\n## pyosd\nsimple python OSD app for openipc groundstation to run on MacOS / Ubuntu\n\nusing gtk3.0 transparent window + pymavlink\n\nwork in progress\n\n## Installation\n### 1. Install dependencies\n- download and install python 3.11 or 3.12 : https://www.python.org/downloads/\n- python packages : PyGObject, pymavlink\n```\n$ pip3 install PyGObject pymavlink\n```\n\n### 2. Install gstreamer for playing video stream\n\nThis osd app could show only osd elements. so gstreamer is needed to play the video stream from air unit.\n\n- using homebrew on MacOS\n```\n$ /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n$ brew install gstreamer\n```\n\n- using apt-get on Ubuntu\n```\n$ sudo apt-get update\n$ sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \\\n gstreamer1.0-plugins-base gstreamer1.0-plugins-good \\\n gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \\\n gstreamer1.0-libav\n$ sudo apt-get install libgstreamer1.0-dev \\\n libgstreamer-plugins-base1.0-dev \\\n libgstreamer-plugins-good1.0-dev \\\n libgstreamer-plugins-bad1.0-dev \n```\n\n### 3. Git clone this repository and run pyosd.py\n\n```\n$ git clone https://github.com/OpenIPC/pyosd.git\n$ cd pyosd\n$ python3 pyosd.py \n```\n\n## Usage\n1. udp packets of video and telemetry from air unit are needed ( running wfb-ng )\n\n   - MacOS : using utm virtual machine for installation and running wfb-ng on ubuntu-server\n   - Ubuntu : install and run wfb-ng\n   - wfb-ng ubuntu install guide : https://github.com/svpcom/wfb-ng?tab=readme-ov-file#quick-start-using-ubuntu-ground-station\n\n2. playing video stream by gstreamer pipeline.\n```\n$ gst-launch-1.0 -vvvv udpsrc port=5600 ! application/x-rtp, payload=32, clock-rate=90000 ! queue max-size-buffers=1 \\\n! rtph265depay ! h265parse ! avdec_h265 ! autovideosink sync=false -e\n```\n\n3. running pyosd.py on the pyosd directory\n```\n$ python3 pyosd.py \n```\n\n\n\n*** 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'\n\n- 173 line of pyosd.py  : https://github.com/OpenIPC/pyosd/blob/94451877e6558df44f6bf3085e632ff6120e89b1/pyosd.py#L173C9-L173C86\n```\nself.mavlink_connection = mavutil.mavlink_connection('udpin:127.0.0.1:14550')\n```\n\n\n\n*** 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.\n```\n$ sudo nano /etc/wifibroadcast.cfg\n...\n[gs_mavlink]\npeer = 'connect://224.0.0.1:14550'  # outgoing connection\n# peer = 'listen://0.0.0.0:14550'   # incoming connection\n\n[gs_video]\npeer = 'connect://224.0.0.1:5600'  # outgoing connection for\n                                   # video sink (QGroundControl on GS)\n```\n\n\n*** when starting this app on MacOS, there are some gliches. then minimizing and re-maximizing window could be helpful.\n\n\n## Examples\n1. MacOS (14.2.1 Sonoma)\n\u003cimg width=\"1080\" alt=\"MacOS\" src=\"https://github.com/betaflight/betaflight/assets/165914105/262a60c6-80a4-43f6-a6ef-95f4fd46b926\"\u003e\n\n\n\n2. Ubuntu (23.10 mantic)\n\u003cimg width=\"1080\" alt=\"Ubuntu\" src=\"https://github.com/betaflight/betaflight/assets/165914105/b8753553-562f-44be-acbd-aa8fe682ae19\"\u003e\n\n[logo]: https://openipc.org/assets/openipc-logo-black.svg\n[site_basic]: https://openipc.org\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenipc%2Fpyosd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenipc%2Fpyosd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenipc%2Fpyosd/lists"}