{"id":"pg_01M4PM01VRSSMEPZKFCR56PAM2","space":"openvibe","slug":"openrestream","url":"https://openvibe.wiki/w/openvibe/openrestream","state":"published","visibility":"public","revision":2,"title":"OpenRestream","summary":"The ingest and restream control plane extracted from OpenVibe.Live: go live once and restream to several destinations, at openre.stream.","body_markdown":"**OpenRestream** is the ingest and restream control plane extracted from [[OpenVibe.Live]], served at `openre.stream` with RTMP ingest at `ingest.openre.stream`. A streamer goes live once from OBS or any RTMP encoder and can send the stream to Twitch, YouTube, Kick and other RTMP, RTMPS or SRT servers at the same time.\n\n## What it does\n\nThe README states that OpenRestream owns stream definitions, ingest keys, ingest sessions, transport workers and their generations, restream destinations and outputs with health, recording requests to [[OpenVibe.Media]], and the `openre.*` lifecycle events. It states that RTMP ingest, restream, JSMPEG and WebRTC workers are ported and tested with real ffmpeg. The API and coordinator run on `127.0.0.1:4500`, and RTMP ingest is public on port 1936.\n\n## What it does not do yet\n\n`openre.stream` serves its own site since 2026-10-09, after an independent security review. Anyone signs in with OpenVibe, creates a stream with its RTMP key and sends it to other channels. A new stream also goes live on the person's [[OpenVibe.Live]] channel unless they untick that. No Live slot is ingested here yet: every slot is still ingested by Live until its own cutover. OAuth-linked destinations are not ported, and platform viewer counts, chat relay and PowerChat stay in Live.\n## How it fits the network\n\nIt depends on [[OpenVibe.Network]] for JWKS and service tokens, [[OpenVibe.Events]] for event relay, [[OpenVibe.Media]] for recordings, and [[OpenVibe.Host]] for PostgreSQL and Valkey. [[OpenVibe.Live]] keeps the creator and channel product and observes sessions through OpenRestream APIs and events.\n\n## Status\n\nThe README states the status is alpha (roadmap Wave 7), tested end to end with real RTMP; the site is public since 2026-10-09. License: AGPL-3.0.","published_at":"2026-10-11T23:15:33.388Z","revision_published_at":"2026-10-15T00:32:10.274Z","revision_created_at":"2026-10-15T00:32:10.253Z","authorship":{"mode":"imported","workflow":null,"reviewed":false},"infobox":[{"key":"repository","label":"Repository","type":"url","value":"https://github.com/OpenVibers/OpenRestream"},{"key":"domain","label":"Domain","type":"text","value":"openre.stream"},{"key":"port","label":"Port","type":"number","value":4500},{"key":"runtime","label":"Runtime","type":"text","value":"Node 22, PostgreSQL 18 and Valkey 9, node-media-server, ffmpeg"},{"key":"status","label":"Status","type":"text","value":"alpha"},{"key":"license","label":"License","type":"text","value":"AGPL-3.0"}],"citations":[{"url":"https://github.com/OpenVibers/OpenRestream/blob/370f0a96d7465fac80b6baff388c5919a493366d/README.md","title":"OpenRestream README (commit 370f0a9)","source_item_id":null,"retrieved_at":"2026-10-14T23:30:00.000Z","quote":"Open restreaming at openre.stream","license_note":null},{"url":"https://github.com/OpenVibers/OpenRestream/blob/370f0a96d7465fac80b6baff388c5919a493366d/STATUS.json","title":"OpenRestream STATUS.json (commit 370f0a9)","source_item_id":null,"retrieved_at":"2026-10-14T23:30:00.000Z","quote":"No slot switched yet","license_note":null}],"attachments":[],"links":[{"space":"openvibe","slug":"openvibe-events"},{"space":"openvibe","slug":"openvibe-host"},{"space":"openvibe","slug":"openvibe-live"},{"space":"openvibe","slug":"openvibe-media"},{"space":"openvibe","slug":"openvibe-network"}],"indexability":{"indexable":false,"reasons":["ai_generated_unreviewed"]}}