@voltkit-rtc/client 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +128 -29
- package/dist/cjs/index.d.ts +70 -8
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +357 -27
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/music.d.ts +1 -1
- package/dist/cjs/music.d.ts.map +1 -1
- package/dist/cjs/quality.d.ts +19 -21
- package/dist/cjs/quality.d.ts.map +1 -1
- package/dist/cjs/quality.js +46 -28
- package/dist/cjs/quality.js.map +1 -1
- package/dist/cjs/recording.d.ts +91 -0
- package/dist/cjs/recording.d.ts.map +1 -0
- package/dist/cjs/recording.js +478 -0
- package/dist/cjs/recording.js.map +1 -0
- package/dist/esm/index.d.ts +70 -8
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +354 -27
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/music.d.ts +1 -1
- package/dist/esm/music.d.ts.map +1 -1
- package/dist/esm/quality.d.ts +19 -21
- package/dist/esm/quality.d.ts.map +1 -1
- package/dist/esm/quality.js +43 -28
- package/dist/esm/quality.js.map +1 -1
- package/dist/esm/recording.d.ts +91 -0
- package/dist/esm/recording.d.ts.map +1 -0
- package/dist/esm/recording.js +471 -0
- package/dist/esm/recording.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +327 -27
- package/src/music.ts +1 -1
- package/src/quality.ts +58 -29
- package/src/recording.ts +571 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.0 (prepared, unpublished)
|
|
4
|
+
|
|
5
|
+
- Paid camera recording: `StreamClient.startRecording` / `stopRecording`, `CameraRecording` and `RecordingUploader`. Admin-controlled capture resolution/bitrate/FPS, default 360p; independent live-call quality.
|
|
6
|
+
- Direct device-to-R2 multipart PUTs, 5/10 MiB chunks, bounded buffering, limited parallel uploads, retry URL renewal and recording-only backpressure. Short independently playable files; validation overlaps the next capture after upload buffers drain.
|
|
7
|
+
- Completed files return recording ID, stable owner playback link and 90-day expiry. `onRecordingReady` lets applications save metadata; application backends mint short-lived media URLs with their RTC project secret.
|
|
8
|
+
- No recording bytes pass through VoltKit API or RTC servers. R2-side validation and delivery run on Cloudflare.
|
|
9
|
+
|
|
10
|
+
## 0.5.0
|
|
11
|
+
|
|
12
|
+
- All video tiers included by default: 1080p, 720p and 480p. Per-project restrictions still apply.
|
|
13
|
+
- Authoritative 30 fps ladder: 6/3/1.2 Mbps top layers, 1080p lower layers 0.4/2 Mbps, 720p lower layers 0.2/0.8 Mbps. Phone/tablet defaults remain two layers.
|
|
14
|
+
- `PublishOptions.frameRate` and `setVideoFrameRate(30 | 60)`. At 60 fps only the top layer rises to 9/4.5/1.8 Mbps; smaller layers stay at 30. Low capture fps or sustained device/upload limitation falls back to 30 with `frame-rate-fallback` on `error`.
|
|
15
|
+
- Camera start bitrate is 2000 kbps.
|
|
16
|
+
- The 60 fps monitor allows encoder/bitrate warm-up before counting sustained limitation, so the intentional 30 fps lower layers during startup do not immediately trigger fallback.
|
|
17
|
+
- `publishScreen` / `unpublishScreen`, `ScreenPublishOptions`, `screenShareStarted` / `screenShareEnded`, separate `screen-audio`, native-size detail/motion ladders and reconnect restoration. Screen, camera, mic and music controls remain independent. Browser stop-sharing and interrupted capture clean up both screen producers.
|
|
18
|
+
- `setReceiveQuality(producerId, 'auto' | '1080p' | '720p' | '480p')`, `ReceiveQuality` and producer `videoLayers` metadata. Presets follow actual dimensions; Auto clears both layer ceilings; reconnect restores the choice. Older publishers without metadata report `quality-unavailable` for explicit presets.
|
|
19
|
+
- Same-size `replaceVideoTrack` stays smooth. A change in dimensions republishes camera video so advertised layer dimensions remain accurate.
|
|
20
|
+
- `raiseHand(metadata?)`, `lowerHand(identity?)`, hand-event metadata/reason and roster `handMetadata` support role requests and moderated responses.
|
|
21
|
+
- `participantMuted` normalizes moderation locks to `{ identity, kind, paused }`; `ParticipantInfo.videoBlocked` seeds camera locks on reconnect. Demotion while disconnected releases retained capture, and rejected unmute calls keep the device paused.
|
|
22
|
+
- A screen-share republish that fails halfway cleans up that share while the camera continues.
|
|
23
|
+
- No package publishing is part of this source update.
|
|
24
|
+
|
|
3
25
|
## 0.4.0
|
|
4
26
|
|
|
5
27
|
Sharper video, above all from phones. Nothing to change to upgrade: every 0.3.0
|
package/README.md
CHANGED
|
@@ -75,6 +75,7 @@ phones and computers alike; they are kept for a reconnect's republish.
|
|
|
75
75
|
| Option | Default | What it does |
|
|
76
76
|
| --- | --- | --- |
|
|
77
77
|
| `quality` | the highest the project allows | `'1080p'`, `'720p'` or `'480p'`; see [Video quality](#video-quality) |
|
|
78
|
+
| `frameRate` | `30` | `30` or `60`; only the top layer runs at 60 fps; capture at 60 too |
|
|
78
79
|
| `layers` | `2` on phones and tablets, `3` elsewhere | the most simulcast layers to send. When a phone is too busy, the browser shrinks the picture and may then send fewer layers, dropping the top one: asked for two, it keeps the full picture; asked for three, viewers were left with a quarter of it |
|
|
79
80
|
| `codec` | `'auto'` | `'auto'` sends H.264 on phones and tablets that encode it in hardware, VP8 elsewhere. `'vp8'` or `'h264'` forces one; a forced H.264 the browser cannot send is VP8, and fires `error` |
|
|
80
81
|
| `degradationPreference` | the browser's | what the encoder gives up first on a busy device: `'maintain-resolution'` (frame rate goes first), `'maintain-framerate'` or `'balanced'` |
|
|
@@ -95,8 +96,7 @@ it or the raw camera again:
|
|
|
95
96
|
await client.replaceVideoTrack(canvas.captureStream(30).getVideoTracks()[0]);
|
|
96
97
|
```
|
|
97
98
|
|
|
98
|
-
When the new track
|
|
99
|
-
safe choice), viewers see no pause; otherwise the camera's producer is replaced
|
|
99
|
+
When the new track has the same dimensions and layers as the old one, viewers see no pause; otherwise the camera's producer is replaced
|
|
100
100
|
and they see a brief one. A paused camera stays paused. Your own stream is not
|
|
101
101
|
modified: the client keeps one of its own (`client.local`, announced by
|
|
102
102
|
`localStreamChanged`) with the new track, and a reconnect republishes that. The
|
|
@@ -112,32 +112,38 @@ const media = await navigator.mediaDevices.getUserMedia({ audio: true, video: {
|
|
|
112
112
|
await client.publish(media, undefined, { quality: '1080p' });
|
|
113
113
|
await client.setVideoQuality('480p'); // resolves to the quality actually used
|
|
114
114
|
|
|
115
|
-
client.videoPolicy; // { maxQuality: '720p' | '1080p', maxBitrate } for this project
|
|
115
|
+
client.videoPolicy; // { maxQuality: '480p' | '720p' | '1080p', maxFrameRate, maxBitrate } for this project
|
|
116
116
|
client.videoQuality; // what is being sent now
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
| Quality | Layers from a computer | From a phone or tablet |
|
|
119
|
+
| Quality | Layers from a computer at 30 fps | From a phone or tablet | Video upload |
|
|
120
120
|
|---|---|---|---|
|
|
121
|
-
| 1080p | 480×270 @
|
|
122
|
-
| 720p | 320×180 @
|
|
123
|
-
| 480p | 427×240 @
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
121
|
+
| 1080p | 480×270 @ 0.4 Mbps · 960×540 @ 2 Mbps · 1920×1080 @ **6 Mbps** | the top two | about 8.4 Mbps (phone 8) |
|
|
122
|
+
| 720p | 320×180 @ 0.2 Mbps · 640×360 @ 0.8 Mbps · 1280×720 @ **3 Mbps** | the top two | about 4 Mbps (phone 3.8) |
|
|
123
|
+
| 480p | 427×240 @ 0.4 Mbps · 854×480 @ **1.2 Mbps** | the same two | about 1.6 Mbps |
|
|
124
|
+
|
|
125
|
+
All qualities are included on every plan. The default policy allows 1080p and
|
|
126
|
+
60 fps, with a 25 Mbps incoming safety cap per publisher. A project can have
|
|
127
|
+
an explicit administrative restriction; `videoPolicy` describes it.
|
|
128
|
+
The picture is scaled down to the chosen quality, never up. Portrait phones
|
|
129
|
+
keep their shape, for example 360×640 and 720×1280. Adaptive reception is the
|
|
130
|
+
default: viewers receive the best layer their connection can carry. Viewers
|
|
131
|
+
start with a 4 Mbps estimate, enough for 720p; 1080p ramps up as bandwidth allows.
|
|
132
|
+
|
|
133
|
+
30 fps is the default. For 60 fps, capture at 60 and opt in:
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
await client.publish(media, undefined, { quality: '1080p', frameRate: 60 });
|
|
137
|
+
const effectiveFps = await client.setVideoFrameRate(30); // camera only, other tracks continue
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Only the top layer uses 60 fps: 1080p is **9 Mbps**, 720p **4.5 Mbps**, and
|
|
141
|
+
480p **1.8 Mbps**; smaller layers stay at 30. This means roughly 1.5× the top
|
|
142
|
+
layer's data and twice the encoding work. Phones can heat up and use more
|
|
143
|
+
battery, and many front cameras capture only 30. If capture is below 50 fps,
|
|
144
|
+
a project restricts it, or sustained device/upload limitation prevents 60,
|
|
145
|
+
the SDK uses 30 and emits `error` with `code: 'frame-rate-fallback'` as a warning.
|
|
146
|
+
`setVideoFrameRate(60)` retries the preference while preserving a paused camera.
|
|
141
147
|
|
|
142
148
|
The full guide, with data use:
|
|
143
149
|
[voltkit.in/docs/video-quality](https://voltkit.in/docs/video-quality).
|
|
@@ -173,7 +179,7 @@ client.on('videoLimited', ({ reason }) => {
|
|
|
173
179
|
|
|
174
180
|
It fires once a new reason has held for about 4 seconds, so brief spikes stay
|
|
175
181
|
quiet, and never fires `none` first. The client checks every 2 seconds, and
|
|
176
|
-
|
|
182
|
+
while a camera is published and something listens, or while 60 fps needs fallback monitoring. `unpublish()` fires
|
|
177
183
|
`none` if a limitation was showing.
|
|
178
184
|
|
|
179
185
|
On a viewer, `getReceiveStats(producerId)` (the `producerId` from the `track`
|
|
@@ -205,13 +211,64 @@ await client.setPreferredLayers(producerId, 2); // the tile grew: the biggest
|
|
|
205
211
|
Layer 0 is the smallest copy the publisher sends. At 720p a computer sends
|
|
206
212
|
three (320×180, 640×360 and 1280×720) and a phone two (640×360 and 1280×720);
|
|
207
213
|
a layer above the biggest means the biggest. The 640×360 copy needs about
|
|
208
|
-
0.
|
|
214
|
+
0.9 Mbps including audio, the full picture about 3.1. An optional third argument, the
|
|
209
215
|
temporal layer, lowers the frame rate as well; without it the full frame rate
|
|
210
216
|
is kept. It is the most this viewer is sent: a connection that cannot carry it
|
|
211
217
|
still gets less. The choice is kept across reconnects and forgotten when the
|
|
212
218
|
track ends, and `setPreferredLayers` rejects for a video this client is not
|
|
213
219
|
receiving.
|
|
214
220
|
|
|
221
|
+
### Receive quality
|
|
222
|
+
|
|
223
|
+
```ts
|
|
224
|
+
await client.setReceiveQuality(producerId, '480p');
|
|
225
|
+
await client.setReceiveQuality(producerId, 'auto'); // recommended; clears spatial AND temporal ceilings
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Offer **Auto (recommended) / 1080p / 720p / 480p**. The `ReceiveQuality` helper
|
|
229
|
+
maps the request to the producer's actual `videoLayers` dimensions, including
|
|
230
|
+
portrait phones, two-layer cameras and screen tracks. It chooses the largest
|
|
231
|
+
available copy within the ceiling, or the smallest available if none fits.
|
|
232
|
+
It never creates a missing resolution: a 1080p screen with 540p and 1080p copies
|
|
233
|
+
uses 540p for the 480p choice. Connection adaptation still applies below the
|
|
234
|
+
ceiling. The preference is remembered across reconnects and ends with that
|
|
235
|
+
producer. Without layer metadata, explicit choices reject `quality-unavailable`;
|
|
236
|
+
Auto and the numeric `setPreferredLayers` API still work.
|
|
237
|
+
|
|
238
|
+
### Screen sharing
|
|
239
|
+
|
|
240
|
+
Hosts and cohosts can share a screen beside their camera in SDK 0.5.0:
|
|
241
|
+
|
|
242
|
+
```ts
|
|
243
|
+
client.on('screenShareStarted', ({ stream, mode }) => showScreenPreview(stream, mode));
|
|
244
|
+
client.on('screenShareEnded', ({ reason }) => hideScreenPreview(reason));
|
|
245
|
+
await client.publishScreen({ mode: 'detail', audio: true }); // from a button click
|
|
246
|
+
await client.unpublishScreen(); // camera, mic and music continue
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
`ScreenPublishOptions` accepts `mode: 'detail' | 'motion'` (default `detail`),
|
|
250
|
+
`audio?: boolean` and `stream?: MediaStream`. Without `stream`, the SDK opens
|
|
251
|
+
`getDisplayMedia` and returns its `MediaStream`; capture audio defaults to
|
|
252
|
+
false. An existing stream's audio is used unless `audio: false` is supplied.
|
|
253
|
+
The SDK stops the supplied screen tracks when sharing ends.
|
|
254
|
+
|
|
255
|
+
Detail sends up to native 1920×1080 at 15 fps and 2.5 Mbps plus a half-size
|
|
256
|
+
0.6 Mbps copy. Motion uses 30 fps, 6 Mbps plus 0.6 Mbps. Capture is never
|
|
257
|
+
upscaled. Optional tab/system audio is separate, `source: 'screen-audio'`,
|
|
258
|
+
128 kbps stereo. Viewers play it like `music`; screen video arrives with
|
|
259
|
+
`source: 'screen'`. A browser may grant video without granting audio.
|
|
260
|
+
|
|
261
|
+
The browser's **Stop sharing** automatically unpublishes and emits
|
|
262
|
+
`screenShareEnded({ reason: 'track-ended' })`. Calling `unpublishScreen` emits
|
|
263
|
+
`reason: 'stopped'`. A reconnect republishes a still-live screen without another
|
|
264
|
+
picker. `unpublish()` and `close()` stop all local media. Unsupported capture
|
|
265
|
+
(most mobile browsers) rejects `screen-share-unsupported`; overlapping shares
|
|
266
|
+
reject `screen-share-active`; missing live video rejects `screen-share-no-video`.
|
|
267
|
+
Browser cancellation retains its `NotAllowedError`. Capture requires HTTPS,
|
|
268
|
+
a user gesture and permission; in iframes, also allow `display-capture`.
|
|
269
|
+
|
|
270
|
+
[Setup, modes, native platforms and troubleshooting](https://voltkit.in/docs/screen-sharing).
|
|
271
|
+
|
|
215
272
|
### Music
|
|
216
273
|
|
|
217
274
|
A host can play music to the room from inside the page. It does not go through
|
|
@@ -256,6 +313,8 @@ musicAudio.muted = true; // "mute the music" for this viewer only
|
|
|
256
313
|
```ts
|
|
257
314
|
await client.raiseHand();
|
|
258
315
|
await client.lowerHand();
|
|
316
|
+
await client.raiseHand({ requestRole: 'cohost' }); // metadata also supports 'moderator'
|
|
317
|
+
await client.lowerHand(identity); // host/moderator: decline that raised hand
|
|
259
318
|
await client.muteParticipant(identity); // moderating roles: asks them to mute
|
|
260
319
|
await client.forceMute(identity, 'video'); // moderating roles: camera off, locked until released
|
|
261
320
|
await client.forceMute(identity, 'video', false); // release
|
|
@@ -269,17 +328,19 @@ await client.getRoomState();
|
|
|
269
328
|
|
|
270
329
|
| Event | Fires when |
|
|
271
330
|
| --- | --- |
|
|
272
|
-
| `track` / `trackEnded` | someone's audio or video is ready to render, or went away; `source` is `mic`, `music`, `camera` or `screen` |
|
|
331
|
+
| `track` / `trackEnded` | someone's audio or video is ready to render, or went away; `source` is `mic`, `music`, `camera`, `screen` or `screen-audio` |
|
|
273
332
|
| `trackMuted` | someone paused or resumed a track — muted their mic, switched their music off |
|
|
274
333
|
| `participantJoined` / `participantLeft` | roster changes |
|
|
334
|
+
| `participantMuted` | moderation lock changed: `{ identity, kind, paused }`; reconnect roster `muted` / `videoBlocked` seed the locks |
|
|
275
335
|
| `roleChanged` | someone was promoted or demoted |
|
|
276
|
-
| `handRaised` | a hand went up or down |
|
|
336
|
+
| `handRaised` | a hand went up or down, with optional `metadata` and `reason`; reconnect rosters include `handMetadata` |
|
|
337
|
+
| `screenShareStarted` / `screenShareEnded` | local screen capture began (`stream`, `mode`) or stopped (`reason`) |
|
|
277
338
|
| `forceMuted` | a moderator switched **your** mic or camera off |
|
|
278
339
|
| `streamInterrupted` | media stopped but the connection is fine — the publisher is reconnecting |
|
|
279
340
|
| `localMediaChanged` / `localStreamChanged` | your own mic, camera or stream changed |
|
|
280
341
|
| `connected` / `disconnected` | the socket came up or dropped; reconnection is automatic |
|
|
281
342
|
| `kicked` / `roomClosed` | you were removed, or the host ended the room |
|
|
282
|
-
| `error` |
|
|
343
|
+
| `error` | a failure or recoverable warning such as `frame-rate-fallback`; inspect its code |
|
|
283
344
|
| `usageLimit` | your project ran out of minutes or hit a usage limit; the session ends at `endsAt` unless it is topped up |
|
|
284
345
|
| `videoLimited` | your camera video is held back by this device (`cpu`) or the upload (`bandwidth`), or that cleared (`none`) |
|
|
285
346
|
| `closed` | terminal — `replaced`, `kicked`, `room-closed` or `gave-up`, or `left` when your own `close()` ends the session |
|
|
@@ -438,3 +499,41 @@ contact@voltkit.in.
|
|
|
438
499
|
## Licence
|
|
439
500
|
|
|
440
501
|
MIT
|
|
502
|
+
|
|
503
|
+
## Private camera recording (0.6.0)
|
|
504
|
+
|
|
505
|
+
`startRecording({ apiUrl, chunkMiB?, onState?, onRecordingReady? })` copies camera
|
|
506
|
+
and available microphone into the funded recording policy without changing live
|
|
507
|
+
RTC tracks. The project owner must enable recording and purchase its separate
|
|
508
|
+
storage quota first. Only camera-on hosts/cohosts are eligible. The default is
|
|
509
|
+
360p / 15 fps / 400 kbps video / 48 kbps audio; recording quality is independent
|
|
510
|
+
of live quality and cannot be overridden by SDK developers.
|
|
511
|
+
|
|
512
|
+
Upload parts go **device → private Cloudflare R2**, never through VoltKit's VPS.
|
|
513
|
+
Default 10 MiB chunks, two concurrent uploads and a 40 MiB buffer ceiling; 5 MiB
|
|
514
|
+
is optional when allowed by admin. Files rotate after 300 seconds by default.
|
|
515
|
+
Backpressure pauses recording only (show gaps to the user); persistent failures
|
|
516
|
+
stop recording and clean up instead of filling RAM. Validation is Cloudflare-side.
|
|
517
|
+
|
|
518
|
+
```ts
|
|
519
|
+
await client.startRecording({
|
|
520
|
+
apiUrl: 'https://api.voltkit.in/api/v1',
|
|
521
|
+
onRecordingReady: file => {
|
|
522
|
+
// Save file.id, file.playbackUrl and file.retainUntil in your app database.
|
|
523
|
+
},
|
|
524
|
+
});
|
|
525
|
+
const files = await client.stopRecording(); // await before camera-off/room close
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
Storage quota covers validated uploaded bytes with **90-day retention**; it is
|
|
529
|
+
not refilled by deleting files. Repeat purchases add capacity; replay uses a
|
|
530
|
+
separate delivery quota. Completed-file metadata contains a stable authenticated
|
|
531
|
+
owner-console link, ID and expiry. For in-app playback your authenticated backend
|
|
532
|
+
mints a 10-minute media URL using its RTC project secret through
|
|
533
|
+
`/recording/upload/server/playback`. No secret/R2 key belongs in browser code.
|
|
534
|
+
Media goes R2 → Cloudflare Worker → viewer. Access expires at the saved 90-day
|
|
535
|
+
boundary; cleanup and a bucket lifecycle rule delete media automatically.
|
|
536
|
+
|
|
537
|
+
See [recording integration](https://voltkit.in/docs/recording) and the repository's
|
|
538
|
+
`docs/RECORDING-R2-SETUP.md`. Prepared release is unpublished; real Cloudflare
|
|
539
|
+
integration and physical-device acceptance have not been claimed.
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RecordingOptions, type RecordingFile } from './recording.js';
|
|
1
2
|
/**
|
|
2
3
|
* Thin client SDK over the orchestrator's signaling protocol.
|
|
3
4
|
*
|
|
@@ -10,15 +11,17 @@ type RtpCapabilities = ms.RtpCapabilities;
|
|
|
10
11
|
import type { ChatEvents, ChatMessage, ChatState, SendMessageOptions } from './chat.js';
|
|
11
12
|
import { type CodecPreference } from './device.js';
|
|
12
13
|
import { type MusicInput, type MusicOptions, type TrackSource } from './music.js';
|
|
13
|
-
import { type LayerCount, type VideoPolicy, type VideoQuality } from './quality.js';
|
|
14
|
+
import { type ScreenMode, type ReceiveQuality, type VideoLayer, type LayerCount, type VideoPolicy, type VideoQuality } from './quality.js';
|
|
14
15
|
import { type VideoLimitedEvent, type VideoReceiveStats, type VideoSendStats } from './stats.js';
|
|
16
|
+
export { CameraRecording, RecordingUploader, RecordingError } from './recording.js';
|
|
17
|
+
export type { RecordingOptions, RecordingEvent, RecordingState, RecordingSession, RecordingFile } from './recording.js';
|
|
15
18
|
export { BroadcastPublisher, WhipError, whipEnd, whipOffer } from './broadcast.js';
|
|
16
19
|
export { AudioMixer, MusicSource } from './music.js';
|
|
17
20
|
export type { MusicInput, MusicOptions, TrackSource } from './music.js';
|
|
18
21
|
export type { BroadcastEvents, BroadcastStartOptions, BroadcastState } from './broadcast.js';
|
|
19
22
|
export { ChatClient, ChatRpcError } from './chat.js';
|
|
20
23
|
export { allowedQuality, layerBitrate, videoEncodings, VIDEO_QUALITIES } from './quality.js';
|
|
21
|
-
export type { LayerCount, VideoEncoding, VideoPolicy, VideoQuality } from './quality.js';
|
|
24
|
+
export type { LayerCount, VideoEncoding, VideoPolicy, VideoQuality, VideoLayer, ReceiveQuality, ScreenMode } from './quality.js';
|
|
22
25
|
export type { CodecPreference } from './device.js';
|
|
23
26
|
export type { VideoLayerStats, VideoLimitedEvent, VideoLimitReason, VideoReceiveStats, VideoSendStats } from './stats.js';
|
|
24
27
|
export type { ChatClientEvents, ChatEvents, ChatJoinResult, ChatMessage, ChatState, SendMessageOptions, } from './chat.js';
|
|
@@ -48,11 +51,13 @@ export interface JoinResult {
|
|
|
48
51
|
blockedSlots?: string[];
|
|
49
52
|
/**
|
|
50
53
|
* The highest video quality this project may publish, and the server's cap
|
|
51
|
-
* on a publisher's incoming bitrate. Absent from older servers:
|
|
54
|
+
* on a publisher's incoming bitrate. Absent from older servers: 1080p.
|
|
52
55
|
*/
|
|
53
56
|
video?: VideoPolicy;
|
|
54
57
|
}
|
|
55
58
|
export interface PublishOptions {
|
|
59
|
+
/** 30 by default. Only the top layer uses 60; capture at 60 too. */
|
|
60
|
+
frameRate?: 30 | 60;
|
|
56
61
|
/**
|
|
57
62
|
* The video quality to send: 1080p, 720p or 480p. Defaults to the highest
|
|
58
63
|
* the project allows (`videoPolicy.maxQuality`), and is lowered to it if
|
|
@@ -88,6 +93,12 @@ export interface PublishOptions {
|
|
|
88
93
|
*/
|
|
89
94
|
degradationPreference?: 'maintain-resolution' | 'maintain-framerate' | 'balanced';
|
|
90
95
|
}
|
|
96
|
+
export interface ScreenPublishOptions {
|
|
97
|
+
mode?: ScreenMode;
|
|
98
|
+
audio?: boolean;
|
|
99
|
+
/** An existing screen stream; otherwise capture is requested from this user gesture. */
|
|
100
|
+
stream?: MediaStream;
|
|
101
|
+
}
|
|
91
102
|
export interface SlotClaim {
|
|
92
103
|
key: string;
|
|
93
104
|
identity: string;
|
|
@@ -100,7 +111,9 @@ export interface ParticipantInfo {
|
|
|
100
111
|
identity: string;
|
|
101
112
|
role: Role;
|
|
102
113
|
handRaised: boolean;
|
|
114
|
+
handMetadata?: Record<string, unknown>;
|
|
103
115
|
muted: boolean;
|
|
116
|
+
videoBlocked?: boolean;
|
|
104
117
|
metadata?: unknown;
|
|
105
118
|
}
|
|
106
119
|
export interface RemoteProducer {
|
|
@@ -110,6 +123,10 @@ export interface RemoteProducer {
|
|
|
110
123
|
paused: boolean;
|
|
111
124
|
/** What the track carries. A host playing music publishes two audio tracks: `mic` and `music`. */
|
|
112
125
|
source?: TrackSource;
|
|
126
|
+
videoLayers?: VideoLayer[];
|
|
127
|
+
appData?: {
|
|
128
|
+
videoLayers?: VideoLayer[];
|
|
129
|
+
};
|
|
113
130
|
}
|
|
114
131
|
export interface ClientEvents extends ChatEvents {
|
|
115
132
|
connected: () => void;
|
|
@@ -140,6 +157,11 @@ export interface ClientEvents extends ChatEvents {
|
|
|
140
157
|
identity: string;
|
|
141
158
|
reason?: string;
|
|
142
159
|
}) => void;
|
|
160
|
+
participantMuted: (e: {
|
|
161
|
+
identity: string;
|
|
162
|
+
kind?: 'audio' | 'video' | '';
|
|
163
|
+
paused: boolean;
|
|
164
|
+
}) => void;
|
|
143
165
|
roleChanged: (e: {
|
|
144
166
|
identity: string;
|
|
145
167
|
role: Role;
|
|
@@ -147,6 +169,8 @@ export interface ClientEvents extends ChatEvents {
|
|
|
147
169
|
handRaised: (e: {
|
|
148
170
|
identity: string;
|
|
149
171
|
handRaised: boolean;
|
|
172
|
+
metadata?: Record<string, unknown>;
|
|
173
|
+
reason?: string;
|
|
150
174
|
}) => void;
|
|
151
175
|
/**
|
|
152
176
|
* A moderator switched your microphone (`audio`), camera (`video`) or both
|
|
@@ -170,6 +194,13 @@ export interface ClientEvents extends ChatEvents {
|
|
|
170
194
|
by: string;
|
|
171
195
|
reason?: string;
|
|
172
196
|
}) => void;
|
|
197
|
+
screenShareStarted: (e: {
|
|
198
|
+
stream: MediaStream;
|
|
199
|
+
mode: ScreenMode;
|
|
200
|
+
}) => void;
|
|
201
|
+
screenShareEnded: (e: {
|
|
202
|
+
reason: 'stopped' | 'track-ended';
|
|
203
|
+
}) => void;
|
|
173
204
|
error: (err: Error) => void;
|
|
174
205
|
localMediaChanged: (state: {
|
|
175
206
|
micEnabled: boolean;
|
|
@@ -221,12 +252,27 @@ export declare class StreamClient {
|
|
|
221
252
|
private token;
|
|
222
253
|
private joinResult;
|
|
223
254
|
private localStream;
|
|
255
|
+
private recording;
|
|
224
256
|
private wasPublishing;
|
|
225
257
|
private publishConstraints;
|
|
226
258
|
private publishOptions;
|
|
227
259
|
/** In-app music being published, kept across reconnects so it can be published again. */
|
|
228
260
|
private music;
|
|
229
261
|
private musicProducerId;
|
|
262
|
+
private screenStream;
|
|
263
|
+
private screenMode;
|
|
264
|
+
private screenAudioEnabled;
|
|
265
|
+
private screenGeneration;
|
|
266
|
+
private screenPending;
|
|
267
|
+
private screenStarted;
|
|
268
|
+
private screenEndedListener;
|
|
269
|
+
private readonly screenProducerIds;
|
|
270
|
+
private readonly remoteVideoLayers;
|
|
271
|
+
private readonly receiveQualities;
|
|
272
|
+
private cameraFrameRate;
|
|
273
|
+
private frameRateFallback;
|
|
274
|
+
private frameRateLowSamples;
|
|
275
|
+
private frameRateWarmupSamples;
|
|
230
276
|
/** What each remote producer carries, so a pause can say "music" rather than just "audio". */
|
|
231
277
|
private readonly remoteSources;
|
|
232
278
|
/**
|
|
@@ -288,7 +334,7 @@ export declare class StreamClient {
|
|
|
288
334
|
* kept for a reconnect's republish.
|
|
289
335
|
*/
|
|
290
336
|
publish(stream: MediaStream, constraints?: MediaStreamConstraints, options?: PublishOptions): Promise<void>;
|
|
291
|
-
/** What this project may publish. Known once joined;
|
|
337
|
+
/** What this project may publish. Known once joined; 1080p before that. */
|
|
292
338
|
get videoPolicy(): VideoPolicy;
|
|
293
339
|
/** The quality video is being sent at, after the project's limit. */
|
|
294
340
|
get videoQuality(): VideoQuality;
|
|
@@ -299,11 +345,12 @@ export declare class StreamClient {
|
|
|
299
345
|
* that size (for example with `track.applyConstraints`) first.
|
|
300
346
|
*/
|
|
301
347
|
setVideoQuality(quality: VideoQuality): Promise<VideoQuality>;
|
|
348
|
+
/** Change the camera frame rate without stopping screen, microphone or music. */
|
|
349
|
+
setVideoFrameRate(frameRate: 30 | 60): Promise<30 | 60>;
|
|
302
350
|
/**
|
|
303
351
|
* Send a different video track from now on: a canvas with effects drawn on
|
|
304
352
|
* it, the raw camera again, another camera. When the new track needs the
|
|
305
|
-
* same layers as the current one
|
|
306
|
-
* project's quality scales alike), viewers see no pause, and the layers
|
|
353
|
+
* same dimensions and layers as the current one, viewers see no pause, and the layers
|
|
307
354
|
* take the new picture's bitrates. Otherwise the camera producer is
|
|
308
355
|
* replaced, as `setVideoQuality` does. Either way a paused camera stays
|
|
309
356
|
* paused.
|
|
@@ -351,6 +398,8 @@ export declare class StreamClient {
|
|
|
351
398
|
*/
|
|
352
399
|
setPreferredLayers(producerId: string, spatialLayer: number, temporalLayer?: number): Promise<void>;
|
|
353
400
|
private collectVideoStats;
|
|
401
|
+
/** Friendly receive ceiling using this producer's real layer sizes; auto restores adaptation. */
|
|
402
|
+
setReceiveQuality(producerId: string, quality: ReceiveQuality): Promise<void>;
|
|
354
403
|
private cameraProducer;
|
|
355
404
|
private cameraTask;
|
|
356
405
|
/** Swap the video in the client's own stream, never the app's. */
|
|
@@ -396,6 +445,15 @@ export declare class StreamClient {
|
|
|
396
445
|
* when the tracks have genuinely ended.
|
|
397
446
|
*/
|
|
398
447
|
private republish;
|
|
448
|
+
/** Publish a screen beside the camera. Call from a click so capture permission can open. */
|
|
449
|
+
publishScreen(options?: ScreenPublishOptions): Promise<MediaStream>;
|
|
450
|
+
/** Stop only the screen and its tab/system audio; keep camera, microphone and music. */
|
|
451
|
+
unpublishScreen(): Promise<void>;
|
|
452
|
+
private releaseScreen;
|
|
453
|
+
private stopScreen;
|
|
454
|
+
private restoreScreen;
|
|
455
|
+
private frameRateFor;
|
|
456
|
+
private sampleCamera;
|
|
399
457
|
/**
|
|
400
458
|
* Publish music playing inside the page, as its own track.
|
|
401
459
|
*
|
|
@@ -431,12 +489,16 @@ export declare class StreamClient {
|
|
|
431
489
|
*/
|
|
432
490
|
setMicEnabled(enabled: boolean): Promise<void>;
|
|
433
491
|
setCamEnabled(enabled: boolean): Promise<void>;
|
|
492
|
+
private applyLocalModeration;
|
|
434
493
|
private setKindEnabled;
|
|
435
494
|
/** Stop publishing entirely and release the local devices. */
|
|
436
495
|
unpublish(): Promise<void>;
|
|
496
|
+
/** Paid camera recording; project opt-in, quotas and quality are checked by the backend. */
|
|
497
|
+
startRecording(options: RecordingOptions): Promise<void>;
|
|
498
|
+
stopRecording(): Promise<RecordingFile[]>;
|
|
437
499
|
get local(): MediaStream | null;
|
|
438
|
-
raiseHand(): Promise<unknown>;
|
|
439
|
-
lowerHand(): Promise<unknown>;
|
|
500
|
+
raiseHand(metadata?: Record<string, unknown>): Promise<unknown>;
|
|
501
|
+
lowerHand(identity?: string): Promise<unknown>;
|
|
440
502
|
muteParticipant(identity: string): Promise<unknown>;
|
|
441
503
|
/**
|
|
442
504
|
* Moderating roles: switch someone's microphone (`audio`), camera (`video`)
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|