{"id":13907675,"url":"https://github.com/Casterlabs/Multistream","last_synced_at":"2025-07-18T06:30:40.954Z","repository":{"id":106782417,"uuid":"549332847","full_name":"Casterlabs/Multistream","owner":"Casterlabs","description":"This is a small little tool for multistreaming without a huge hassle.","archived":true,"fork":false,"pushed_at":"2024-08-05T14:47:21.000Z","size":32,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-07T23:53:10.484Z","etag":null,"topics":["ffmpeg","java","multistream","multistreaming","obs"],"latest_commit_sha":null,"homepage":"","language":"Java","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/Casterlabs.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}},"created_at":"2022-10-11T02:57:22.000Z","updated_at":"2024-08-05T14:47:32.000Z","dependencies_parsed_at":"2023-11-12T06:22:16.001Z","dependency_job_id":"243b86a4-25fd-4eed-a832-0f119ffcee5e","html_url":"https://github.com/Casterlabs/Multistream","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/Casterlabs%2FMultistream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Casterlabs%2FMultistream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Casterlabs%2FMultistream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Casterlabs%2FMultistream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Casterlabs","download_url":"https://codeload.github.com/Casterlabs/Multistream/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226361484,"owners_count":17612913,"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":["ffmpeg","java","multistream","multistreaming","obs"],"created_at":"2024-08-06T23:02:05.203Z","updated_at":"2024-11-25T16:30:49.687Z","avatar_url":"https://github.com/Casterlabs.png","language":"Java","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"Archived as of August 8th, 2024. We now offer a [paid service](https://multistream.casterlabs.co). Forks are welcome! :)\n\n# Multistream\n\nThis is a small little tool for multistreaming without a huge hassle.\n\n## Prerequisites\n\n-   Requires FFMPEG installed on your path, Google it ;)\n-   Requires Java 11 or greater. You can grab that [here](https://adoptium.net/)\n\n## Starting and Stoping\n\nDouble click either start.sh (for Unix/macOS (make sure to `chmod +x`!)) or start.bat (for Windows).\n\nWhile that is open, you can set OBS to stream to `rtmp://localhost:1935` (without a streamkey). Clicking \"Start Streaming\" in OBS will start all of the configured targets. Modify your bitrate and resolution how you normally would via OBS.\n\nClicking \"Stop Streaming\" will cause the configured targets to stop.\n\n## Performance\n\nThis program will just copy the audio/video information directly to the targets, which allows for much better performance when compared to other solutions because you're not encoding multiple streams.\n\n## Configuring\n\nThe program auto reloads the config when you click save, just make sure to restart your stream if it's active. If the config file doesn't exist a default one will be created.\n\n### debug\n\nEnables debug logging, which can get really spammy really quickly.\n\n### disableColoredConsole\n\nDisables color in the console, useful if your terminal application does not support color.\n\n### showPreview\n\nOpens a preview window which is muted by default. Spam `0` on your keyboard to increase volume.\n\n### recordToFile\n\nDumps video to a new mkv file.\n\n### rtmpTargets\n\nA list of rtmp server urls to use. Prefix with `#` to disable.\n\nHere's an example of how to stream to Twitch:\n`\"rtmp://live-dfw.twitch.tv/app/STREAMKEY\"`\n\nHere's an example of how to temporarily disable streaming to Twitch:\n`\"#rtmp://live-dfw.twitch.tv/app/STREAMKEY\"`\n\n### customTargets\n\nA list of custom commands to run when the stream starts, video is piped into `stdin` using the `nut` container format. Prefix with `#` to disable.\n\nHere's an example of how to stream to Caffeine via SRT:  \n`\"ffmpeg -hide_banner -v error -f nut -i pipe:0 -c copy -f mpegts SRT_URL_HERE\"`\n\n### Full Example Config\n\n```json\n{\n    \"debug\": false,\n    \"disableColoredConsole\": false,\n    \"showPreview\": false,\n    \"recordToFile\": true,\n    \"rtmpTargets\": [\"rtmp://live-dfw.twitch.tv/app/STREAM_KEY\", \"rtmp://livepush.trovo.live/live/STREAM_KEY\"],\n    \"customTargets\": []\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCasterlabs%2FMultistream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCasterlabs%2FMultistream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCasterlabs%2FMultistream/lists"}