{"id":13567414,"url":"https://github.com/GRVYDEV/Lightspeed-ingest","last_synced_at":"2025-04-04T01:31:57.933Z","repository":{"id":42031514,"uuid":"320087478","full_name":"GRVYDEV/Lightspeed-ingest","owner":"GRVYDEV","description":" A FTL handshake server written in Rust. This server listens on port 8084 and performs the FTL handshake with incoming connections ","archived":false,"fork":false,"pushed_at":"2022-04-17T02:02:55.000Z","size":350,"stargazers_count":94,"open_issues_count":2,"forks_count":31,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-21T17:56:34.220Z","etag":null,"topics":[],"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/GRVYDEV.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-12-09T21:46:42.000Z","updated_at":"2025-02-24T21:17:52.000Z","dependencies_parsed_at":"2022-08-12T02:51:00.156Z","dependency_job_id":null,"html_url":"https://github.com/GRVYDEV/Lightspeed-ingest","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GRVYDEV%2FLightspeed-ingest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GRVYDEV%2FLightspeed-ingest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GRVYDEV%2FLightspeed-ingest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GRVYDEV%2FLightspeed-ingest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GRVYDEV","download_url":"https://codeload.github.com/GRVYDEV/Lightspeed-ingest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247107816,"owners_count":20884793,"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":[],"created_at":"2024-08-01T13:02:30.929Z","updated_at":"2025-04-04T01:31:53.232Z","avatar_url":"https://github.com/GRVYDEV.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca  href=\"https://github.com/GRVYDEV/Lightspeed-ingest\"\u003e\n    \u003cimg src=\"images/lightspeedlogo.svg\" alt=\"Logo\" width=\"150\" height=\"150\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n  \u003ch1 align=\"center\"\u003eProject Lightspeed Ingest [DEPRECATED]\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/GRVYDEV/Lightspeed-ingest\" alt=\"Stars Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/GRVYDEV/Lightspeed-ingest\" alt=\"Forks Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/pulls\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/GRVYDEV/Lightspeed-ingest\" alt=\"Pull Requests Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/GRVYDEV/Lightspeed-ingest\" alt=\"Issues Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/graphs/contributors\"\u003e\u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/GRVYDEV/Lightspeed-ingest?color=2b9348\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/GRVYDEV/Lightspeed-ingest?color=2b9348\" alt=\"License Badge\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003cp align=\"center\"\u003e\n\tNOTE: This repo has been deprecated in favor of a monorepo configuration. Please \u003ca href=\"https://github.com/GRVYDEV/Project-Lightspeed\"\u003esee\u003c/a\u003e\u003cbr\u003e\n    A FTL handshake server written in Rust. This server listens on port 8084 and performs the FTL handshake with incoming connections\n    \u003c!-- \u003cbr /\u003e --\u003e\n    \u003c!-- \u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e --\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://youtu.be/Dzin4_A8RDs\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GRVYDEV/Lightspeed-ingest/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003e\u003ch2 style=\"display: inline-block\"\u003eTable of Contents\u003c/h2\u003e\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#streaming-from-obs\"\u003eStreaming From OBS\u003c/a\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#stream-key\"\u003eStream Key\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e  \n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgements\"\u003eAcknowledgements\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Project\n\n\u003c!-- [![Product Name Screen Shot][product-screenshot]](https://example.com) --\u003e\n\nThis is one of three components required for Project Lightspeed. Project Lightspeed is a fully self contained live streaming server. With this you will be able to deploy your own sub-second latency live streaming platform. This particular repository performs the FTL handshake with clients. It verifies the stream key and negotiates a port with the client connection that we will accept RTP packets on. In order for this to work the Project Lightspeed WebRTC is required in order to accept and broadcast the RTP packets. In order to view the live stream the Project Lightspeed React is required.\n\n### Built With\n\n- Rust\n\n### Dependencies\n\n- [Lightspeed WebRTC](https://github.com/GRVYDEV/Lightspeed-webrtc)\n- [Lightspeed React](https://github.com/GRVYDEV/Lightspeed-react)\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\nTo get a local copy up and running follow these simple steps.\n\n### Prerequisites\n\nIn order to run this Rust is required. Installation instructions can be found \u003ca href=\"https://www.rust-lang.org/tools/install\"\u003ehere\u003c/a\u003e. A C compiler is required as well. If you get a `linker cc not found error` try installing a C compiler\n\n### Installation\n\n```sh\ngit clone https://github.com/GRVYDEV/Lightspeed-ingest.git\ncd Lightspeed-ingest\ncargo build\n```\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n## Usage\nTo print out full command line usage information.\n\n```sh\ncargo run -- -h\n```\n\nTo run it with default settings type the following command. \n\n```sh\ncargo run --release\n```\n\nTo specify which address to bind to.\n\n```sh\ncargo run --release -- -a 12.34.56.78\n```\n\n\u003c!-- _For more examples, please refer to the [Documentation](https://example.com)_ --\u003e\n\n\n## Streaming From OBS\n\nBy default since we are using the FTL protocol you cannot just use a custom server. You will need to edit your `services.json` file. It can be found at `%AppData%\\obs-studio\\plugin_config\\rtmp-services\\services.json` on Windows and `/Users/YOURUSERNAME/Library/Application\\ Support/obs-studio/plugin_config/rtmp-services/services.json`\n\nPaste this into the services array and change the url to either the IP or the hostname of your Project Lightspeed server\n```json\n{\n    \"name\": \"Project Lightspeed\",\n    \"common\": false,\n    \"servers\": [\n        {\n            \"name\": \"SERVER NAME HERE\",\n            \"url\": \"your.lightspeed.hostname\"\n        }\n    ],\n    \"recommended\": {\n        \"keyint\": 2,\n        \"output\": \"ftl_output\",\n        \"max audio bitrate\": 160,\n        \"max video bitrate\": 8000,\n        \"profile\": \"main\",\n        \"bframes\": 0\n    }\n},\n```\n\nAfter restarting OBS you should be able to see your service in the OBS settings pane\n(Special Thanks to [Glimesh](https://github.com/Glimesh) for these instructions)\n\n\n### Stream Key\nBy default on first time startup a new stream key will be generated and output to the terminal for you. In order \nto regenerate this key simply delete the file it generates called `hash`. Simply copy the key output in the terminal \nto OBS and you are all set! This key WILL NOT change unless the `hash` file is deleted.\n\nYou can assign a static key by passing `--stream-key mykey` or via environment variable `STREAM_KEY=mykey`. If you \nassign it manually it will become prefixed with `77-` so the result will be `77-mykey`. You can verify this in the boot \nlogs.\n\n\n\u003cimg src=\"images/streamkey-example.png\" alt=\"Streamkey example\"\u003e\n\n\u003c!-- ROADMAP --\u003e\n\n## Roadmap\n\nSee the [open issues](https://github.com/GRVYDEV/Lightspeed-ingest/issues) for a list of proposed features (and known issues).\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\nGarrett Graves - [@grvydev](https://twitter.com/grvydev)\n\nProject Link: [https://github.com/GRVYDEV/Lightspeed-ingest](https://github.com/GRVYDEV/Lightspeed-ingest)\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n\n## Acknowledgements\n\n- [Sean Dubois](https://github.com/Sean-Der)\n- [Hayden McAfee](https://github.com/haydenmc)\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGRVYDEV%2FLightspeed-ingest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGRVYDEV%2FLightspeed-ingest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGRVYDEV%2FLightspeed-ingest/lists"}