{"id":15290600,"url":"https://github.com/thinkski/berrymse","last_synced_at":"2025-05-07T04:45:47.633Z","repository":{"id":46238272,"uuid":"247670582","full_name":"thinkski/berrymse","owner":"thinkski","description":"BerryMSE: Simple low-latency live video streaming from a Raspberry Pi via Media Source Extensions","archived":false,"fork":false,"pushed_at":"2020-09-10T08:14:59.000Z","size":41,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-07T04:45:41.965Z","etag":null,"topics":["h264","low-latency","media-source-extensions","mse","raspberry-pi","realtime","streaming","video"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thinkski.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}},"created_at":"2020-03-16T10:14:47.000Z","updated_at":"2024-01-28T01:03:17.000Z","dependencies_parsed_at":"2022-08-28T16:22:53.358Z","dependency_job_id":null,"html_url":"https://github.com/thinkski/berrymse","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkski%2Fberrymse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkski%2Fberrymse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkski%2Fberrymse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkski%2Fberrymse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thinkski","download_url":"https://codeload.github.com/thinkski/berrymse/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252816520,"owners_count":21808702,"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":["h264","low-latency","media-source-extensions","mse","raspberry-pi","realtime","streaming","video"],"created_at":"2024-09-30T16:08:44.647Z","updated_at":"2025-05-07T04:45:47.608Z","avatar_url":"https://github.com/thinkski.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍓 BerryMSE\n\nSimple low-latency live video streaming from a Raspberry Pi\u0026trade; via the [Media Source Extensions API](//developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API).\n\nNote: As of March 2020, Safari on iOS devices still does not support this API (excluding iOS 13 on iPad devices, which do support the API).\n\n## Overview\n\nH.264 Network Abstraction Layer (NAL) units are read from `/dev/video0`, a\nVideo4Linux2 compatible camera interface. Each unit corresponds to one frame.\nFrames are packaged into MPEG-4 ISO BMFF (ISO/IEC 14496-12) compliant\nfragments and sent via a websocket to the browser client. The client appends\neach received buffer to the media source for playback.\n\n## Quickstart\n\nThis demo requires a Raspberry Pi with Camera Module (USB Video Class devices\nnot currently supported). As it uses the Video4Linux2 interface to access the\ncamera, the Broadcom v4l2 driver must be installed and the camera must be\nenabled in `/boot/config.txt`.\n\nTo fetch dependencies:\n\n    GOOS=linux go get -v ./...\n    go get github.com/markbates/pkger/cmd/pkger\n\nTo build:\n\n    make\n\nTo run, copy the appropriate `berrymse` executable to the Raspberry Pi and run:\n\n\t./berrymse -l \u003craspberry pi ip address\u003e:2020\n\nFor example:\n\n    ./berrymse -l 192.168.2.1:2020\n\nThe Raspberry Pi Zero uses the `armv6l/berrymse` executable. Other models use\nthe `armv7l/berrymse` executable.\n\nThe webpage will show a live video stream with approximately 200ms of latency.\nThe browser will buffer frames, providing a lookback window.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkski%2Fberrymse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthinkski%2Fberrymse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkski%2Fberrymse/lists"}