{"id":25609528,"url":"https://github.com/anttiai/ivs-asc","last_synced_at":"2026-02-24T12:08:55.169Z","repository":{"id":277181145,"uuid":"931376010","full_name":"anttiai/ivs-asc","owner":"anttiai","description":"Automatic Stream Configuration for AWS IVS","archived":false,"fork":false,"pushed_at":"2025-12-17T07:51:45.000Z","size":42,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-20T21:05:03.663Z","etag":null,"topics":["aws","aws-ivs","ivs"],"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/anttiai.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}},"created_at":"2025-02-12T07:04:29.000Z","updated_at":"2025-12-17T07:49:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"546cf721-ce34-47b6-b4e8-d16fd7026e8a","html_url":"https://github.com/anttiai/ivs-asc","commit_stats":null,"previous_names":["anttiai/ivs-asc"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/anttiai/ivs-asc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anttiai%2Fivs-asc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anttiai%2Fivs-asc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anttiai%2Fivs-asc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anttiai%2Fivs-asc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anttiai","download_url":"https://codeload.github.com/anttiai/ivs-asc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anttiai%2Fivs-asc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29781499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T10:45:18.109Z","status":"ssl_error","status_checked_at":"2026-02-24T10:45:09.911Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["aws","aws-ivs","ivs"],"created_at":"2025-02-21T21:40:03.747Z","updated_at":"2026-02-24T12:08:55.124Z","avatar_url":"https://github.com/anttiai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automatic Stream Configuration for AWS IVS.\n\nUse `createClientConfiguration` to generate a `ClientConfiguration` object by combining the user's hardware and software setup analysis with the desired streaming options. Use `fetchStreamConfiguration` to query the AWS IVS REST API for the optimal streaming configuration.\n\n\u003e Automatic stream configuration helps users get started quickly and automatically improves the quality of streams over time. Instead of users manually choosing settings (e.g., bitrate, resolution, framerate) that are set once and rarely tweaked, automatic stream configuration considers current software settings, hardware configuration, and platform support every time the user starts a new stream. For example, when a user upgrades the setup (e.g., with a new GPU), installs a new GPU driver, or the destination starts to support a new codec (e.g., H.265/HEVC), automatic stream configuration reacts and improves the quality of the user's next stream.\n\nAWS documentation at [docs.aws.amazon.com](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/multitrack-video-sw-integration.html#multitrack-video-sw-integration-auto-stream).\n\n## Supported GPUs\n- Nvidia: Requires *nvidia-smi*\n- Apple silicon: No additional software required\n- AMD: PRs welcome for device_id and vendor_id [heuristics](https://github.com/anttiai/ivs-asc/blob/main/src/index.ts#L33)\n\n## Installation\nnpm install ivs-asc\n\n## Usage\nCreate and print out the client configuration\n```ts\nimport { createClientConfiguration, FetchOptions } from 'ivs-asc';\n\nconst options: FetchOptions = {\n    authKey: 'authkey',\n    video: {},\n    canvases: [\n        {\n            canvas_height: 1080,\n            canvas_width: 1920,\n            framerate: {\n                denominator: 1,\n                numerator: 60\n            },\n            height: 1080,\n            width: 1920\n        }\n    ]\n}\ncreateClientConfiguration(options).then(console.log);\n```\n\nFetch optimal streaming configuration from IVS\n```ts\nimport { createClientConfiguration, fetchStreamConfiguration, FetchOptions, IVSResponse } from 'ivs-asc';\n\nasync function automaticStreamConfiguration() {\n    const options: FetchOptions = {\n        authKey: 'authkey',\n        video: {\n            maxBitrateKbps: 4000,\n            maxTracks: 3,\n            supportedCodecs: [\"h264\", \"h265\", \"av1\"]\n        },\n        canvases: [\n            {\n                canvas_height: 1080,\n                canvas_width: 1920,\n                framerate: {\n                    denominator: 1,\n                    numerator: 60\n                },\n                height: 1080,\n                width: 1920\n            }\n        ]\n    }\n\n    const clientConfiguration = await createClientConfiguration(options);\n    const response: IVSResponse = await fetchStreamConfiguration(clientConfiguration);\n    if (response.status?.result === 'error') {\n        console.log(response.status.html_en_us);\n    }\n    else {\n        console.log(response);\n    }\n}\nautomaticStreamConfiguration();\n```\n\nSpecial thanks to [Streamrun](https://streamrun.com), a cloud-based streaming server that offers features beyond what can be run on a single streaming device.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanttiai%2Fivs-asc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanttiai%2Fivs-asc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanttiai%2Fivs-asc/lists"}