{"id":46360004,"url":"https://github.com/tiny-pilot/ustreamer-debian","last_synced_at":"2026-03-05T01:02:15.789Z","repository":{"id":104196929,"uuid":"601371135","full_name":"tiny-pilot/ustreamer-debian","owner":"tiny-pilot","description":"TinyPilot-specific build of a uStreamer Debian package","archived":false,"fork":false,"pushed_at":"2026-02-26T18:59:57.000Z","size":52,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-27T00:24:55.333Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiny-pilot.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-13T23:22:43.000Z","updated_at":"2026-02-26T18:55:56.000Z","dependencies_parsed_at":"2025-08-05T13:19:36.050Z","dependency_job_id":"027352bc-a587-4fb9-9719-a625b2fd0d24","html_url":"https://github.com/tiny-pilot/ustreamer-debian","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/tiny-pilot/ustreamer-debian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiny-pilot%2Fustreamer-debian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiny-pilot%2Fustreamer-debian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiny-pilot%2Fustreamer-debian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiny-pilot%2Fustreamer-debian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiny-pilot","download_url":"https://codeload.github.com/tiny-pilot/ustreamer-debian/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiny-pilot%2Fustreamer-debian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30104218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T00:38:46.881Z","status":"ssl_error","status_checked_at":"2026-03-05T00:38:45.829Z","response_time":59,"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":[],"created_at":"2026-03-05T01:02:15.267Z","updated_at":"2026-03-05T01:02:15.757Z","avatar_url":"https://github.com/tiny-pilot.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ustreamer-debian\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/tiny-pilot/ustreamer-debian/tree/master.svg?style=svg)](https://app.circleci.com/pipelines/github/tiny-pilot/ustreamer-debian)\n\nTinyPilot-specific build of a uStreamer Debian package\n\n## Updating to new uStreamer versions\n\nWhen there are uStreamer releases that would benefit TinyPilot users, we need to update the TinyPilot uStreamer repos to pull in the changes and create a new Debian package. Note that we don't create Debian packages for every uStreamer change, as some uStreamer releases don't serve TinyPilot scenarios.\n\n### Review uStreamer's commit history\n\nBefore updating the uStreamer package, review uStreamer's commit history for anything that may impact TinyPilot scenarios.\n\nCheck the [uStreamer README](https://github.com/pikvm/ustreamer?tab=readme-ov-file#%C2%B5streamer) for any compatibility changes.\n\nIf the new version of uStreamer is a new major version, try and find out why the major version number increased.\n\nReview all commits made to uStreamer since we last cut a release for any breaking changes or feature improvements. You can do this using a GitHub comparison, e.g., [v5.43 to v6.11](https://github.com/pikvm/ustreamer/compare/v5.43...v6.11).\n\nCheck for any other obvious breaking changes by reviewing some of the major commit diffs.\n\n### Create a branch\n\nIf the new version of uStreamer doesn't have any obvious breaking changes, create a new uStreamer debian package in a development branch as follows.\n\nFirst, sync tags of [TinyPilot's fork of uStreamer](https://github.com/tiny-pilot/ustreamer) with [the upstream version](https://github.com/pikvm/ustreamer)\n\n```bash\ngit clone git@github.com:tiny-pilot/ustreamer.git \u0026\u0026 \\\n  cd ustreamer \u0026\u0026 \\\n  git remote add upstream https://github.com/pikvm/ustreamer.git \u0026\u0026 \\\n  git fetch --tags upstream \u0026\u0026 \\\n  git push --tags origin\n```\n\nThen, create a new branch in this repository and update the `ARG PKG_VERSION=` line in `Dockerfile` to the desired [uStreamer release tag](https://github.com/pikvm/ustreamer/tags).\n\n### Testing on device\n\nInstall the latest version of TinyPilot Pro on your test device and SSH into it.\n\nGet the URL of the new debian package:\n\n1. Go to the CircleCI build for your branch.\n1. Click the \"build_debian_package\" CircleCI step.\n1. Go the the \"Artifacts\" tab.\n1. Copy the link to the `armhf.deb` file.\n\nDownload the new debian package on the test device:\n\n```bash\n# Replace the URL with the link to the `armhf.deb` package.\nwget https://output.circle-artifacts.com/output/job/358d292c-6233-40c2-a31c-e6b3fcc1aced/artifacts/0/build/linux_arm_v7/ustreamer_armhf.deb\n```\n\nThen install the package with the following command:\n\n```bash\nsudo apt install -y ./ustreamer_*.deb\n```\n\nCapture a TinyPilot log to check the version of uStreamer that's running and make sure it's the version you expect.\n\nNow perform a manual test of TinyPilot's video features (a subset of our manual release testing process) to make sure they still work as expected.\n\nNote: these tests aren't OS dependent, but some steps assume the target machine is Ubuntu 22.04 for navigation and settings.\n\n#### Reduce video frame rate (MJPEG)\n\n1. Go to System \u003e Video settings\n1. Set FPS to 5\n1. Click “Apply”\n1. Verify that the video refreshes slower than it did previously\n\n#### Reduce video quality (MJPEG)\n\n1. Go to System \u003e Video settings\n1. Set JPEG quality to 10%\n1. Click “Apply”\n1. Verify that the image quality looks notably worse\n\n#### Reset video settings\n\n1. Go to System \u003e Video settings\n1. Click “Reset to Default” next to Frame Rate\n1. Click “Reset to Default” next to Quality\n1. Click “Apply”\n1. Verify that video quality and latency goes back to normal\n\n#### Use H.264 compression\n\n1. Go to System \u003e Video settings\n1. Select Streaming Mode of H.264\n1. Click “Apply”\n1. Verify that H.264 icon appears on the bottom left corner and that video functions\n\n#### Verify audio plays\n\n1. In the target system, click the speaker icon in the upper right corner\n1. Adjust the volume on the target machine\n1. Verify that the confirmation beeps from changing the volume play through the local machine\n\n#### Reduce video frame rate (H.264)\n\n1. Go to System \u003e Video settings\n1. Set FPS to 5\n1. Click “Apply”\n1. Verify that the video refreshes slower than it did previously\n\n#### Reduce video quality (H.264)\n\n1. Go to System \u003e Video settings\n1. Set Bit Rate to 0.05 Mb/s\n1. Click “Apply”\n1. Verify that the image quality looks notably worse\n   1. The difference is subtle. You might need to open a web browser in the target system to see the difference.\n\n#### Reset video settings\n\n1. Go to System \u003e Video settings\n1. Click “Reset to Default” next to Frame Rate\n1. Click “Reset to Default” next to Quality\n1. Click “Apply”\n1. Verify that video quality and latency goes back to normal\n\n#### Change display settings\n\n1. On the target machine, navigate to its display settings\n1. Select a different resolution (e.g., 1280x720 at 60Hz)\n1. Click \"Apply\"\n1. Verify that the video resolution changes\n\n#### Reset display settings\n\n1. On the target machine, navigate to its display settings\n1. Select the original resolution (e.g., 1920x1080 at 30Hz)\n1. Click \"Apply\"\n1. Verify that the video resolution changes back to the original settings\n\n### Measure latency\n\nIf the manual tests pass, measure the new latency:\n\n1. Connect TinyPilot to a device that has a display\n1. Mirror display between TinyPilot and the device's other monitor\n1. On the target device, visit a website that has a stopwatch with millisecond precision\n1. Take a photo that captures the TinyPilot client device's screen and the mirrored display in one photo\n1. Subtract the times to get the latency\n1. Repeat 3-4x to get an average\n\n### Create tickets\n\nIf we encounter any regression during the testing process, including a significant increase in latency, raise this with the product owner. The next steps would probably be one or more of these steps:\n\n1. See if we can fix the uStreamer regression and contribute it upstream\n1. Report the bug to uStreamer\n1. Accept the regression if it's minor\n\nIf the latency measurements indicate that latency has dropped by more than 5% compare to the previous uStreamer version, create some tickets.\n\n- Create a ticket to update the TinyPilot website with the new latency figure.\n- Create a ticket to include the latency improvements in the release announcement.\n\n## Publishing releases\n\nWe publish releases manually on Github. When we're ready to publish a new release, follow these steps:\n\n### Download Debian package files\n\n1. Go to the CircleCI build for the most recent `master` branch.\n1. Click the `build_debian_package` CircleCI step.\n1. Go the the \"Artifacts\" tab.\n1. Download the `*armhf.deb` file.\n\n### Create a Github release\n\n1. Create a new Github release for ustreamer-debian.\n1. Make the release tag and title the version number and timestamp suffix from the `.deb` file.\n   - e.g., `ustreamer_5.38-20230802141939_amdhf.deb` would have the tag `5.38-20230802141939`.\n1. Click \"Generate release notes.\"\n1. Upload the Debian package file you downloaded above.\n1. Click \"Publish release.\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiny-pilot%2Fustreamer-debian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiny-pilot%2Fustreamer-debian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiny-pilot%2Fustreamer-debian/lists"}