{"id":22138173,"url":"https://github.com/microsoft/auteur","last_synced_at":"2025-07-25T22:32:00.455Z","repository":{"id":39743485,"uuid":"364727921","full_name":"microsoft/auteur","owner":"microsoft","description":"Live GStreamer node compositor service, implemented in rust","archived":false,"fork":false,"pushed_at":"2023-06-21T22:47:40.000Z","size":3543,"stargazers_count":61,"open_issues_count":3,"forks_count":11,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-11-30T16:54:27.933Z","etag":null,"topics":["actix","compositor","gstreamer","live-streaming","multimedia","rtmp","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2021-05-05T23:07:05.000Z","updated_at":"2024-07-08T21:15:48.000Z","dependencies_parsed_at":"2023-02-06T09:46:22.109Z","dependency_job_id":"7893f782-352e-4f81-a4d6-d23a5e596e82","html_url":"https://github.com/microsoft/auteur","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fauteur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fauteur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fauteur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fauteur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/auteur/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227621914,"owners_count":17795021,"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":["actix","compositor","gstreamer","live-streaming","multimedia","rtmp","rust"],"created_at":"2024-12-01T20:08:45.649Z","updated_at":"2024-12-01T20:08:47.319Z","avatar_url":"https://github.com/microsoft.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Auteur CI](https://github.com/MathieuDuponchelle/auteur/actions/workflows/CI.yml/badge.svg?branch=main)\n\n# Auteur\n\nThe current scope of this project is that of a basic live node\ncompositor, with a service exposing a JSON API for creating,\nconnecting, inspecting, scheduling and removing GStreamer processing\nnodes (sources, mixers and destinations as of writing).\n\nIt can be used for things like linear video feeds that allow hotswapping inputs/sources and compositing\nthem based on a schedule (cue time and duration). As well as fail-over to backup content when a source \nis unavailable.\n\nAn example client running commands one at a time is provided\nfor exploring that API.\n\n[Read the documentation](https://microsoft.github.io/auteur)\n\n## Environment\n\nThis project depends on:\n\n* Rust (stable channel)\n\n* GStreamer (master as of writing)\n\n* gst-plugins-rs (master as of writing)\n\nThe most convenient testing platform for this PoC is a Linux machine,\n\u003chttps://gitlab.freedesktop.org/gstreamer/gst-build\u003e, enter a devenv\nthen build \u003chttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/\u003e\nand export `GST_PLUGIN_PATH`:\n\n``` shell\nexport GST_PLUGIN_PATH=$GST_PLUGIN_PATH:/path/to/gst-plugins-rs/target/debug\n```\n\nA few GStreamer plugins are needed, make sure to install the dependencies\nfor all of those before building gst-build:\n\n``` shell\ngit grep \"make_element(\" | cut -d '\"' -f 2 | sort -u\n```\n\n## Building\n\n``` shell\ncargo build\n```\n\n## Running\n\nRun the service:\n\n``` shell\nAUTEUR_LOG=debug cargo run --bin auteur\n```\n\nExplore and test the API with the client:\n\n``` shell\ncargo run --bin auteur-controller -- help\n```\n\nYou can also find the API definition in `common/src/controller.rs`.\n\nIn addition, a simple wrapper script around the controller can\nbe found in `scripts/node_schedule.py`, alongside other scripts that leverage\nit to demonstrate other features (eg `scripts/crossfade.py`)\n\n## Contributing\n\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Trademarks\n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft \ntrademarks or logos is subject to and must follow \n[Microsoft's Trademark \u0026 Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\nAny use of third-party trademarks or logos are subject to those third-party's policies.\n\n## License\n\nAll code in this repository is licensed under the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fauteur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrosoft%2Fauteur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fauteur/lists"}