{"id":19177927,"url":"https://github.com/eyevinn/segment-emsg-parser","last_synced_at":"2026-01-08T18:46:52.541Z","repository":{"id":147982290,"uuid":"618403805","full_name":"Eyevinn/segment-emsg-parser","owner":"Eyevinn","description":"Parse EMSG data out of segments","archived":false,"fork":false,"pushed_at":"2024-06-10T10:08:38.000Z","size":100620,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-08T08:16:33.840Z","etag":null,"topics":["library"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"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/Eyevinn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2023-03-24T11:51:38.000Z","updated_at":"2024-06-10T10:08:40.000Z","dependencies_parsed_at":"2024-11-09T10:36:19.448Z","dependency_job_id":"2205a07e-19c1-4814-b2e4-509ef7b64166","html_url":"https://github.com/Eyevinn/segment-emsg-parser","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyevinn%2Fsegment-emsg-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyevinn%2Fsegment-emsg-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyevinn%2Fsegment-emsg-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyevinn%2Fsegment-emsg-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eyevinn","download_url":"https://codeload.github.com/Eyevinn/segment-emsg-parser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246558119,"owners_count":20796696,"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":["library"],"created_at":"2024-11-09T10:35:48.652Z","updated_at":"2026-01-08T18:46:52.512Z","avatar_url":"https://github.com/Eyevinn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Segment EMSG Parser\n\nA small package for reading emsg boxes from a mp4 segment.\n\n## Usage\n\n`npm install @eyevinn/segment-emsg-parser`\n\n`yarn add @eyevinn/segment-emsg-parser`\n\n```typescript\nimport { extractEmsgArrayFromSegment } from \"@Eyevinn/segment-emsg-parser\";\n\nconst response = await fetch(\"segment.m4s\");\nconst buffer = await response.arrayBuffer();\n\nconst emsgArray = extractEmsgArrayFromSegment(buffer);\n```\n\n## Develop\n\nInstall Node, npm, and yarn v3. Clone the repo and run `yarn` to install dependencies.\n\n`yarn dev` will start a dev server where you can test parsing of segments.\n\n### Git Ways of Working\n\nThe project uses feature branches, and a [rebase merge strategy](https://www.atlassian.com/git/tutorials/merging-vs-rebasing).\n\nMake sure you have `git pull` set to rebase mode:\n\n`git config pull.rebase true`\n\nOptionally, you can add the `--global` flag to the above command.\n\nTo start working on a new feature: `git checkout \u003cfeature branch name\u003e`.\n\nAs the project uses semantic-release to **automatically generate release notes** based on commits, it is important to follow some rules when committing.\n\nThis project uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary).\n\nRead [Using Git with Discipline](https://drewdevault.com/2019/02/25/Using-git-with-discipline.html).\n\nRead [How to Write a Commit Message](https://chris.beams.io/posts/git-commit/).\n\nA commit should:\n\n- contain a single change set (smaller commits are better)\n- pass tests, linting, and typescript checks\n- not be broken\n\nAlong with enabling time saving automation, it enables extremely powerful debug workflows via [git bisect](https://git-scm.com/docs/git-bisect), making bug hunting a matter of minutes instead of days. There are a number of articles out there on the magic of bisecting.\n\nBasic structure of a commit message:\n\n```\n\u003ctype\u003e[optional scope]: \u003ctitle starting with verb in infinitive\u003e\n\n[optional body]\n\n[optional footer]\n```\n\nFor automated release notes to work well, try to describe what was added or changed, instead of describing what the code does. Example:\n\n`fix(seek): rewrite calculation in seek module` `// bad, the consumer does not know what issue this fixes`\n\n`fix(seek): stop player from freezing after seek` `// good, the consumer understands what is now working again`\n\n### Releasing\n\nReleases are triggered via a github action that will automatically increment the version and write a changelog based on commits.\n\nManual releases can be made by running `yarn release`.\n\n# Support\n\nJoin our [community on Slack](http://slack.streamingtech.se) where you can post any questions regarding any of our open source projects. Eyevinn's consulting business can also offer you:\n\n- Further development of this component\n- Customization and integration of this component into your platform\n- Support and maintenance agreement\n\nContact [sales@eyevinn.se](mailto:sales@eyevinn.se) if you are interested.\n\n# About Eyevinn Technology\n\n[Eyevinn Technology](https://www.eyevinntechnology.se) is an independent consultant firm specialized in video and streaming. Independent in a way that we are not commercially tied to any platform or technology vendor. As our way to innovate and push the industry forward we develop proof-of-concepts and tools. The things we learn and the code we write we share with the industry in [blogs](https://dev.to/video) and by open sourcing the code we have written.\n\nWant to know more about Eyevinn and how it is to work here. Contact us at work@eyevinn.se!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyevinn%2Fsegment-emsg-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feyevinn%2Fsegment-emsg-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyevinn%2Fsegment-emsg-parser/lists"}