{"id":15057225,"url":"https://github.com/p4p-83/vision","last_synced_at":"2026-02-03T11:34:53.802Z","repository":{"id":247710232,"uuid":"796132028","full_name":"p4p-83/vision","owner":"p4p-83","description":"The machine vision that makes our pick-and-place intelligent.","archived":false,"fork":false,"pushed_at":"2024-10-07T06:29:10.000Z","size":1793,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-03T09:07:40.436Z","etag":null,"topics":["computer-vision","ffmpeg","julia","rtsp","vision","webrtc"],"latest_commit_sha":null,"homepage":"https://p4p.jamesnzl.xyz","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p4p-83.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-05T03:03:18.000Z","updated_at":"2024-10-07T06:29:14.000Z","dependencies_parsed_at":"2024-11-21T20:16:38.066Z","dependency_job_id":null,"html_url":"https://github.com/p4p-83/vision","commit_stats":null,"previous_names":["p4p-83/vision"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/p4p-83/vision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p4p-83%2Fvision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p4p-83%2Fvision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p4p-83%2Fvision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p4p-83%2Fvision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p4p-83","download_url":"https://codeload.github.com/p4p-83/vision/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p4p-83%2Fvision/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29044425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["computer-vision","ffmpeg","julia","rtsp","vision","webrtc"],"created_at":"2024-09-24T22:04:10.811Z","updated_at":"2026-02-03T11:34:53.779Z","avatar_url":"https://github.com/p4p-83.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `vision`\n\n\u003e [!NOTE]\n\u003e Refer to [`p4p.jamesnzl.xyz/learn`](https://p4p.jamesnzl.xyz/learn) for full details.\n\nThis repository contains the camera, keying, and compositing scripts to produce the [MediaMTX](https://github.com/bluenviron/mediamtx) real-time media server used to stream real-time video from the Raspberry Pi's camera(s).\n\nThe video is read from the sensor by `rpicam-vid`, before being piped to `ffmpeg`, which streams it to MediaMTX using RTSP.\n\nThe stream can then be accessed on a client using RTSP through a player such as VLC or IINA with\n```sh\nvlc rtsp://\u003craspberry.pi.ip.address\u003e:8554/hq\n# or\nvlc rtsp://\u003craspberry.pi.ip.address\u003e:8554/cm3\n# or\niina rtsp://\u003craspberry.pi.ip.address\u003e:8554/hq\n# or\niina rtsp://\u003craspberry.pi.ip.address\u003e:8554/cm3\n```\nor through WebRTC directly in a web browser at\n```\nhttp://\u003craspberry-pi-ip-address\u003e:8889/hq\nhttp://\u003craspberry-pi-ip-address\u003e:8889/cm3\n```\n\n\u003e [!warning]\n\u003e The RTSP latency is _bad_.  \n\u003e The WebRTC latency is 👌.\n\nThis repository is included as a submodule in [`p4p-83/controller`](https://github.com/p4p-83/controller) to be run on the Raspberry Pi.\n\n## Usage\n\nFirstly, clone this repository. Set up [SSH Agent Forwarding](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding) on the Raspberry Pi if needed.\n\nThe next step depends on whether you wish to run `vision` in a standalone manner for experimentation, or have it included as a submodule in a wider Julia project.\n\nFor standalone testing and experimentation, use `vision-run-standalone.jl` to call vision for you and print some baseline information as it holds the session open for you. Do this at the shell using the following command.\n\n```sh\njulia vision-run-standalone.jl\n```\n\nAlternatively, if you're using this as a submodule in a wider project (e.g. as is done by `controller`), you can do this in the usual Julia way by bringing `vision.jl` itself in as a submodule. This is done by `vision-run-standalone.jl`, so you can use that as a minimal example.\n\n## Interfaces\n\n### WebRTC\n\n- WebRTC is used for the real-time low-latency video streaming from MediaMTX on the Raspberry Pi to the web interface.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp4p-83%2Fvision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp4p-83%2Fvision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp4p-83%2Fvision/lists"}