{"id":22876887,"url":"https://github.com/webini/node-gstreamer-launch","last_synced_at":"2025-05-06T21:23:43.575Z","repository":{"id":36938806,"uuid":"231843946","full_name":"Webini/node-gstreamer-launch","owner":"Webini","description":"gst-launch-1.0 helper for node","archived":false,"fork":false,"pushed_at":"2023-01-07T04:29:00.000Z","size":977,"stargazers_count":6,"open_issues_count":10,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-20T13:39:34.979Z","etag":null,"topics":["gstreamer","launch","node","pipeline","transcoding"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/Webini.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}},"created_at":"2020-01-04T23:42:09.000Z","updated_at":"2024-06-07T09:43:12.000Z","dependencies_parsed_at":"2023-01-17T07:21:18.293Z","dependency_job_id":null,"html_url":"https://github.com/Webini/node-gstreamer-launch","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Webini%2Fnode-gstreamer-launch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Webini%2Fnode-gstreamer-launch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Webini%2Fnode-gstreamer-launch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Webini%2Fnode-gstreamer-launch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Webini","download_url":"https://codeload.github.com/Webini/node-gstreamer-launch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252770234,"owners_count":21801511,"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":["gstreamer","launch","node","pipeline","transcoding"],"created_at":"2024-12-13T15:28:15.344Z","updated_at":"2025-05-06T21:23:43.545Z","avatar_url":"https://github.com/Webini.png","language":"JavaScript","readme":"# Installation\n\nYou must have `gst-launch-1.0` installed on your system (in package `gstreamer1.0-tools` for debian based distributions)\n\n`npm i node-gstreamer-launch`\n\n## About\n\nThis package is a simple utiliy helping you to build gstreamer pipelines.\n\n## Linear pipeline example\n\n```js\nconst gst = require('node-gstreamer-launch');\n\nconst gstProcess = gst\n  .pipeline(gst.element('fakesrc', { 'num-buffers': 10 }))\n  .next(gst.caps('video/x-raw', { width: [640, 'int'], height: 220 }))\n  .next(gst.element('fakesink'))\n  .execute({ debug: true });\n// execute return https://nodejs.org/api/child_process.html#child_process_class_childprocess\n// debug: true will display the command line with parameters executed\n\n// it will execute\n// gst-launch-1.0 -e  fakesrc num-buffers=10 ! video/x-raw,width=(int)640,height=220 ! fakesink\n```\n\n## Forked pipeline example\n\n```js\nconst gst = require('node-gstreamer-launch');\n\nconst entryPipe = gst\n  .pipeline(gst.element('fakesrc', { 'num-buffers': 10 }))\n  .next(gst.element('progressreport', { name: 'myProgress', 'update-freq': 1 }))\n  .next(gst.element('tee', { name: 'buffers' }));\n\n// fork parameter is the first pipe item, empty parameters is allowed\nconst output0 = entryPipe.fork(\n  entryPipe.element('fakesink', { name: 'output0' }),\n);\nconst output1 = entryPipe.fork(gst.element('fakesink', { name: 'output1' }));\n\nentryPipe\n  .fork(entryPipe.link('buffers'))\n  .next(gst.element('queue'))\n  .next(output0.link('output0'));\n\nentryPipe\n  .fork(entryPipe.link('buffers'))\n  .next(gst.element('queue'))\n  .next(output1.link('output1'));\n\n// always execute from the pipe who's forked\nentryPipe.execute({ debug: true });\n\n// it will execute\n// gst-launch-1.0 -e fakesrc num-buffers=10 ! progressreport name=myProgress update-freq=1 ! tee name=buffers \\\n//  fakesink name=output0 \\\n//  fakesink name=output1 \\\n//  buffers. ! queue ! output0. \\\n//  buffers. ! queue ! output1.\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebini%2Fnode-gstreamer-launch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebini%2Fnode-gstreamer-launch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebini%2Fnode-gstreamer-launch/lists"}