@voltkit-rtc/client 0.2.0 → 0.4.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +147 -3
  3. package/dist/cjs/chat.d.ts +2 -0
  4. package/dist/cjs/chat.d.ts.map +1 -1
  5. package/dist/cjs/chat.js +23 -4
  6. package/dist/cjs/chat.js.map +1 -1
  7. package/dist/cjs/device.d.ts +85 -0
  8. package/dist/cjs/device.d.ts.map +1 -0
  9. package/dist/cjs/device.js +134 -0
  10. package/dist/cjs/device.js.map +1 -0
  11. package/dist/cjs/index.d.ts +184 -1
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +546 -32
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/quality.d.ts +74 -0
  16. package/dist/cjs/quality.d.ts.map +1 -0
  17. package/dist/cjs/quality.js +115 -0
  18. package/dist/cjs/quality.js.map +1 -0
  19. package/dist/cjs/stats.d.ts +151 -0
  20. package/dist/cjs/stats.d.ts.map +1 -0
  21. package/dist/cjs/stats.js +243 -0
  22. package/dist/cjs/stats.js.map +1 -0
  23. package/dist/esm/chat.d.ts +2 -0
  24. package/dist/esm/chat.d.ts.map +1 -1
  25. package/dist/esm/chat.js +23 -4
  26. package/dist/esm/chat.js.map +1 -1
  27. package/dist/esm/device.d.ts +85 -0
  28. package/dist/esm/device.d.ts.map +1 -0
  29. package/dist/esm/device.js +122 -0
  30. package/dist/esm/device.js.map +1 -0
  31. package/dist/esm/index.d.ts +184 -1
  32. package/dist/esm/index.d.ts.map +1 -1
  33. package/dist/esm/index.js +541 -31
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/quality.d.ts +74 -0
  36. package/dist/esm/quality.d.ts.map +1 -0
  37. package/dist/esm/quality.js +107 -0
  38. package/dist/esm/quality.js.map +1 -0
  39. package/dist/esm/stats.d.ts +151 -0
  40. package/dist/esm/stats.d.ts.map +1 -0
  41. package/dist/esm/stats.js +232 -0
  42. package/dist/esm/stats.js.map +1 -0
  43. package/package.json +3 -2
  44. package/src/chat.ts +21 -4
  45. package/src/device.ts +168 -0
  46. package/src/index.ts +627 -29
  47. package/src/quality.ts +126 -0
  48. package/src/stats.ts +328 -0
@@ -8,12 +8,19 @@
8
8
  import { type types as ms } from 'mediasoup-client';
9
9
  type RtpCapabilities = ms.RtpCapabilities;
10
10
  import type { ChatEvents, ChatMessage, ChatState, SendMessageOptions } from './chat.js';
11
+ import { type CodecPreference } from './device.js';
11
12
  import { type MusicInput, type MusicOptions, type TrackSource } from './music.js';
13
+ import { type LayerCount, type VideoPolicy, type VideoQuality } from './quality.js';
14
+ import { type VideoLimitedEvent, type VideoReceiveStats, type VideoSendStats } from './stats.js';
12
15
  export { BroadcastPublisher, WhipError, whipEnd, whipOffer } from './broadcast.js';
13
16
  export { AudioMixer, MusicSource } from './music.js';
14
17
  export type { MusicInput, MusicOptions, TrackSource } from './music.js';
15
18
  export type { BroadcastEvents, BroadcastStartOptions, BroadcastState } from './broadcast.js';
16
19
  export { ChatClient, ChatRpcError } from './chat.js';
20
+ export { allowedQuality, layerBitrate, videoEncodings, VIDEO_QUALITIES } from './quality.js';
21
+ export type { LayerCount, VideoEncoding, VideoPolicy, VideoQuality } from './quality.js';
22
+ export type { CodecPreference } from './device.js';
23
+ export type { VideoLayerStats, VideoLimitedEvent, VideoLimitReason, VideoReceiveStats, VideoSendStats } from './stats.js';
17
24
  export type { ChatClientEvents, ChatEvents, ChatJoinResult, ChatMessage, ChatState, SendMessageOptions, } from './chat.js';
18
25
  export type Role = 'host' | 'cohost' | 'moderator' | 'viewer';
19
26
  /** Sent when the account behind a session can no longer be used. */
@@ -39,6 +46,47 @@ export interface JoinResult {
39
46
  claims?: SlotClaim[];
40
47
  /** Slots a moderator has locked. */
41
48
  blockedSlots?: string[];
49
+ /**
50
+ * The highest video quality this project may publish, and the server's cap
51
+ * on a publisher's incoming bitrate. Absent from older servers: 720p.
52
+ */
53
+ video?: VideoPolicy;
54
+ }
55
+ export interface PublishOptions {
56
+ /**
57
+ * The video quality to send: 1080p, 720p or 480p. Defaults to the highest
58
+ * the project allows (`videoPolicy.maxQuality`), and is lowered to it if
59
+ * higher, and to the camera's own size if that is smaller.
60
+ */
61
+ quality?: VideoQuality;
62
+ /**
63
+ * The most simulcast layers to send: 1, 2 or 3. Defaults to 2 on phones and
64
+ * tablets and 3 elsewhere. Each layer is a separate encode. When a phone is
65
+ * too busy, the browser shrinks the picture and then sends fewer layers,
66
+ * dropping the top one: from three, viewers were left with a quarter of the
67
+ * picture; from two, the full picture survives every step down to 480×270.
68
+ * Never more than the picture allows: 3 from 960×540 up, 2 from 480×270,
69
+ * else 1. Two layers are half and full size. One is full size only, and
70
+ * every viewer then gets the same stream, whatever their connection.
71
+ */
72
+ layers?: LayerCount;
73
+ /**
74
+ * The video codec. `'auto'` (the default) sends H.264 on phones and tablets
75
+ * that encode it in hardware and VP8 everywhere else. `'h264'` and `'vp8'`
76
+ * force one; a forced H.264 the browser cannot send falls back to VP8 and
77
+ * fires `error`. A viewer whose browser cannot decode the codec cannot
78
+ * watch, so force VP8 if your audience uses such browsers.
79
+ */
80
+ codec?: CodecPreference;
81
+ /**
82
+ * What the encoder gives up first when the device cannot keep up:
83
+ * `'maintain-resolution'` lowers the frame rate, `'maintain-framerate'` the
84
+ * picture size, `'balanced'` some of each. Unset leaves the browser's
85
+ * default. Chrome also takes it from the track's `contentHint`: `'detail'`
86
+ * keeps resolution, `'motion'` keeps frame rate. Browsers that do not
87
+ * support it ignore it.
88
+ */
89
+ degradationPreference?: 'maintain-resolution' | 'maintain-framerate' | 'balanced';
42
90
  }
43
91
  export interface SlotClaim {
44
92
  key: string;
@@ -142,6 +190,15 @@ export interface ClientEvents extends ChatEvents {
142
190
  * account is topped up first -- tell the user, and stop asking them to wait.
143
191
  */
144
192
  usageLimit: (e: UsageLimitNotice) => void;
193
+ /**
194
+ * Your camera video is being held back by this device (`cpu`: too busy to
195
+ * encode it), by the upload (`bandwidth`), or by something else (`other`);
196
+ * or that has cleared (`none`). Fires when the reason changes and has held
197
+ * for about 4 s, so brief spikes stay quiet; never `none` first. Tell the
198
+ * publisher: "your device is busy" or "your connection is slow". Checked
199
+ * every 2 s, only while publishing a camera and someone listens.
200
+ */
201
+ videoLimited: (e: VideoLimitedEvent) => void;
145
202
  }
146
203
  /** An error returned by the server, carrying its machine-readable code. */
147
204
  export declare class RpcError extends Error {
@@ -166,18 +223,38 @@ export declare class StreamClient {
166
223
  private localStream;
167
224
  private wasPublishing;
168
225
  private publishConstraints;
226
+ private publishOptions;
169
227
  /** In-app music being published, kept across reconnects so it can be published again. */
170
228
  private music;
171
229
  private musicProducerId;
172
230
  /** What each remote producer carries, so a pause can say "music" rather than just "audio". */
173
231
  private readonly remoteSources;
232
+ /**
233
+ * The layers asked for each remote video, by producerId. A reconnect
234
+ * consumes everything again, and the new consumer would otherwise start at
235
+ * the full picture.
236
+ */
237
+ private readonly preferredLayers;
174
238
  private closedByUs;
175
239
  private reconnecting;
176
240
  private reconnectAttempt;
241
+ /** Set once a connect() has joined and set up. Only such a session is reconnected. */
242
+ private joinedOnce;
243
+ /** The camera producer's layers, to tell whether a new track fits them. */
244
+ private cameraEncodings;
245
+ private cameraQueue;
246
+ private publishGeneration;
247
+ private codecFallbackLogged;
248
+ private readonly sendStatsBaseline;
249
+ private readonly recvStatsBaseline;
250
+ private readonly limitWatch;
177
251
  constructor(wsUrl: string, token: string);
178
252
  on<K extends keyof ClientEvents>(event: K, fn: ClientEvents[K]): () => void;
253
+ private listenerCount;
179
254
  private emit;
180
255
  connect(): Promise<JoinResult>;
256
+ /** A new mediasoup Device for each join. Its own method so tests, which have no WebRTC, can stand one in. */
257
+ private createDevice;
181
258
  private openSocket;
182
259
  private detachSocket;
183
260
  /**
@@ -203,8 +280,114 @@ export declare class StreamClient {
203
280
  *
204
281
  * Pass the constraints used to obtain the stream and they will be reused to
205
282
  * reacquire the devices if a reconnect finds the tracks have ended.
283
+ *
284
+ * `options.quality` picks 1080p, 720p or 480p (see `videoPolicy` for what
285
+ * the project allows). Capture at least that size for the full picture.
286
+ * `options.layers`, `codec` and `degradationPreference` tune how the video
287
+ * is encoded; the defaults suit both phones and computers. The options are
288
+ * kept for a reconnect's republish.
289
+ */
290
+ publish(stream: MediaStream, constraints?: MediaStreamConstraints, options?: PublishOptions): Promise<void>;
291
+ /** What this project may publish. Known once joined; 720p before that. */
292
+ get videoPolicy(): VideoPolicy;
293
+ /** The quality video is being sent at, after the project's limit. */
294
+ get videoQuality(): VideoQuality;
295
+ /**
296
+ * Change the video quality while publishing. The camera's producer is
297
+ * replaced, so viewers see a brief pause while the new one starts. Resolves
298
+ * to the quality actually used, after the project's limit. Capture at least
299
+ * that size (for example with `track.applyConstraints`) first.
300
+ */
301
+ setVideoQuality(quality: VideoQuality): Promise<VideoQuality>;
302
+ /**
303
+ * Send a different video track from now on: a canvas with effects drawn on
304
+ * it, the raw camera again, another camera. When the new track needs the
305
+ * same layers as the current one (the same size, or another size the
306
+ * project's quality scales alike), viewers see no pause, and the layers
307
+ * take the new picture's bitrates. Otherwise the camera producer is
308
+ * replaced, as `setVideoQuality` does. Either way a paused camera stays
309
+ * paused.
310
+ *
311
+ * Your own stream is left as it is: the client keeps a stream of its own
312
+ * (`local`, announced by `localStreamChanged`) with the new track and your
313
+ * microphone, and a reconnect republishes that. The track you replaced is
314
+ * not stopped; it is yours again, switched back on if pausing the camera
315
+ * had switched it off. Rejects when no camera is being published.
316
+ */
317
+ replaceVideoTrack(track: MediaStreamTrack): Promise<void>;
318
+ /**
319
+ * Give a camera producer whose track was swapped in place the bitrates of
320
+ * its new picture. The layout matched, but a bigger picture at the same
321
+ * scales (a 1280×720 canvas for a 960×540 camera) would otherwise stay
322
+ * capped at the smaller one's. Best effort: a browser that refuses keeps
323
+ * the old caps.
324
+ */
325
+ private applyLayerBitrates;
326
+ /**
327
+ * What your camera video is sending now, layer by layer, or null when no
328
+ * camera is being published. The top-level fields describe the biggest
329
+ * layer going out. `qualityLimitation` says why it is less than asked:
330
+ * `cpu` is this device, `bandwidth` the upload, `none` neither (then check
331
+ * the camera and the light). Bitrates are averaged since the previous call,
332
+ * so call it every second or two; the first call reports 0.
333
+ */
334
+ getVideoStats(): Promise<VideoSendStats | null>;
335
+ /**
336
+ * What this client receives of a remote video (by its `producerId`, from
337
+ * the `track` event), or null when it is not receiving that video. Bitrates
338
+ * are averaged since the previous call for it; the first call reports 0.
339
+ */
340
+ getReceiveStats(producerId: string): Promise<VideoReceiveStats | null>;
341
+ /**
342
+ * Receive a smaller copy of someone's video (by its `producerId`, from the
343
+ * `track` event), for a tile that does not need the full picture. Spatial
344
+ * layer 0 is the smallest copy the publisher sends: a computer sends three
345
+ * (at 720p 320×180, 640×360 and 1280×720), a phone two (640×360 and
346
+ * 1280×720), and a layer above the biggest means the biggest. Leave
347
+ * `temporalLayer` out to keep the full frame rate. It is the most this
348
+ * client is sent: a connection that cannot carry it still gets less. The
349
+ * choice is kept across reconnects and forgotten when the track ends.
350
+ * Rejects for a producer whose video this client is not receiving.
351
+ */
352
+ setPreferredLayers(producerId: string, spatialLayer: number, temporalLayer?: number): Promise<void>;
353
+ private collectVideoStats;
354
+ private cameraProducer;
355
+ private cameraTask;
356
+ /** Swap the video in the client's own stream, never the app's. */
357
+ private adoptVideoTrack;
358
+ /** Close the camera producer and produce `track` in its place, paused on both ends if it was. */
359
+ private reproduceCamera;
360
+ /** `options.layers` when valid, else 2 on phones and tablets and 3 elsewhere. */
361
+ private layerCount;
362
+ /**
363
+ * Produce the camera from `track`, paused on both ends when `paused`. By
364
+ * default the track says: one handed over switched off is a camera that is
365
+ * off, and so is one a pause switched off before a reconnect.
366
+ */
367
+ private produceCamera;
368
+ /**
369
+ * Keep a producer just made -- unless unpublish() ran while it was being
370
+ * made. Kept, it would publish again what was just unpublished, so it is
371
+ * closed instead, on both ends.
372
+ */
373
+ private keepProducer;
374
+ /**
375
+ * mediasoup-client makes a producer paused when its track is off, and the
376
+ * server makes every producer live. Unless the server is told, viewers get
377
+ * black video or silence from a camera or microphone they are told is on.
378
+ */
379
+ private pauseOnServer;
380
+ /**
381
+ * H.264 or VP8 for the camera (see chooseCodec), with the device's own
382
+ * capability entry for it: produce() must only ever get one of those.
206
383
  */
207
- publish(stream: MediaStream, constraints?: MediaStreamConstraints): Promise<void>;
384
+ private cameraCodec;
385
+ /** A forced H.264 that could not be used is the app's to hear about; 'auto' just notes it, once. */
386
+ private reportCodecFallback;
387
+ /** Best effort: a browser that ignores or refuses it keeps its own default. */
388
+ private applyDegradationPreference;
389
+ /** videoLimited sampling runs while a camera is published and someone listens. */
390
+ private syncLimitWatch;
208
391
  /**
209
392
  * Re-establish this client's broadcast after a reconnect.
210
393
  *
@@ -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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"}