openvibers/openrestream Commits
OpenRestream: llms.txt says the WHIP and JSMPEG workers run (they do; Bot's robots publish to WHIP) (#68)
Changes
@@@ -41,7 +41,7 @@ function createDiscoveryRoutes({ config, releaseLastmod }) {'Going live, as it runs today:','- From a browser, with nothing to install: on OpenVibe.Live (https://openvibe.live, the Go Live button; guide at https://openvibe.live/docs/go-live-in-your-browser). There is no follower, subscriber or eligibility threshold.','- With an encoder such as OBS: RTMP to rtmp://ingest.openre.stream:1936/live with the stream key OpenRestream shows once when the stream is created. Any signed-in OpenVibe account can create a stream.',-- '- Browser WebRTC (WHIP, RFC 9725) and JSMPEG ingest are ported to OpenRestream and tested, but their workers do not run in production yet; until they do, OpenVibe.Live serves them.',++ '- Browser WebRTC: WHIP (RFC 9725) to https://ingest.openre.stream/whip/<ingest key>, open to browsers (CORS), on OpenRestream\'s WebRTC worker with its SFU for viewers. OpenVibe.Bot\'s robots and phones publish their cameras there. JSMPEG ingest runs on its own worker too. OpenVibe.Live\'s Go Live button keeps its own WHIP endpoint.','','Restream: a session can fan out to several RTMP and SRT destinations at once, with per-output health, logs, backoff and a rapid-crash circuit breaker. Recording: OpenRestream asks OpenVibe.Media to record a VOD or clips of an RTMP session. Playback: a live, non-private session is served as HTTP-FLV at https://openre.stream/play/<session id>.flv.','',@@@ -60,7 +60,8 @@ t('llms.txt is plain text, leads with open restreaming (OpenVibe Live on by defaassert.match(lead, /OpenVibe Live channel on by default/);assert.match(lead, /go live from their browser on OpenVibe\.Live/, 'browser go-live is still named, where it runs');// Only the RTMP ingest and restream workers run in production: WHIP and JSMPEG are ported, not served yet.-- assert.match(r.text, /WHIP, RFC 9725\) and JSMPEG ingest are ported to OpenRestream and tested, but their workers do not run in production yet/);++ assert.match(r.text, /WHIP \(RFC 9725\) to https:\/\/ingest\.openre\.stream\/whip\/<ingest key>, open to browsers/);++ assert.doesNotMatch(r.text, /do not run in production yet/, 'the workers run');} finally {await api.close();}
@@ -41,7 +41,7 @@ function createDiscoveryRoutes({ config, releaseLastmod }) {
@@ -41,7 +41,7 @@ function createDiscoveryRoutes({ config, releaseLastmod }) {
'Going live, as it runs today:',
'Going live, as it runs today:',
'- From a browser, with nothing to install: on OpenVibe.Live (https://openvibe.live, the Go Live button; guide at https://openvibe.live/docs/go-live-in-your-browser). There is no follower, subscriber or eligibility threshold.',
'- From a browser, with nothing to install: on OpenVibe.Live (https://openvibe.live, the Go Live button; guide at https://openvibe.live/docs/go-live-in-your-browser). There is no follower, subscriber or eligibility threshold.',
'- With an encoder such as OBS: RTMP to rtmp://ingest.openre.stream:1936/live with the stream key OpenRestream shows once when the stream is created. Any signed-in OpenVibe account can create a stream.',
'- With an encoder such as OBS: RTMP to rtmp://ingest.openre.stream:1936/live with the stream key OpenRestream shows once when the stream is created. Any signed-in OpenVibe account can create a stream.',
- '- Browser WebRTC (WHIP, RFC 9725) and JSMPEG ingest are ported to OpenRestream and tested, but their workers do not run in production yet; until they do, OpenVibe.Live serves them.',
+ '- Browser WebRTC: WHIP (RFC 9725) to https://ingest.openre.stream/whip/<ingest key>, open to browsers (CORS), on OpenRestream\'s WebRTC worker with its SFU for viewers. OpenVibe.Bot\'s robots and phones publish their cameras there. JSMPEG ingest runs on its own worker too. OpenVibe.Live\'s Go Live button keeps its own WHIP endpoint.',
'',
'',
'Restream: a session can fan out to several RTMP and SRT destinations at once, with per-output health, logs, backoff and a rapid-crash circuit breaker. Recording: OpenRestream asks OpenVibe.Media to record a VOD or clips of an RTMP session. Playback: a live, non-private session is served as HTTP-FLV at https://openre.stream/play/<session id>.flv.',
'Restream: a session can fan out to several RTMP and SRT destinations at once, with per-output health, logs, backoff and a rapid-crash circuit breaker. Recording: OpenRestream asks OpenVibe.Media to record a VOD or clips of an RTMP session. Playback: a live, non-private session is served as HTTP-FLV at https://openre.stream/play/<session id>.flv.',
'',
'',
@@ -60,7 +60,8 @@ t('llms.txt is plain text, leads with open restreaming (OpenVibe Live on by defa
@@ -60,7 +60,8 @@ t('llms.txt is plain text, leads with open restreaming (OpenVibe Live on by defa
assert.match(lead, /OpenVibe Live channel on by default/);
assert.match(lead, /OpenVibe Live channel on by default/);
assert.match(lead, /go live from their browser on OpenVibe\.Live/, 'browser go-live is still named, where it runs');
assert.match(lead, /go live from their browser on OpenVibe\.Live/, 'browser go-live is still named, where it runs');
// Only the RTMP ingest and restream workers run in production: WHIP and JSMPEG are ported, not served yet.
// Only the RTMP ingest and restream workers run in production: WHIP and JSMPEG are ported, not served yet.
- assert.match(r.text, /WHIP, RFC 9725\) and JSMPEG ingest are ported to OpenRestream and tested, but their workers do not run in production yet/);
+ assert.match(r.text, /WHIP \(RFC 9725\) to https:\/\/ingest\.openre\.stream\/whip\/<ingest key>, open to browsers/);
+ assert.doesNotMatch(r.text, /do not run in production yet/, 'the workers run');
} finally {
} finally {
await api.close();
await api.close();
}
}