@camera.ui/common 0.0.14 → 0.0.15
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/dist/cameraUtils/ffmpeg-process.d.ts +2 -2
- package/dist/cameraUtils/ffmpeg-process.js +2 -1
- package/dist/cameraUtils/ffmpeg-process.js.map +1 -1
- package/dist/cameraUtils/index.d.ts +0 -4
- package/dist/cameraUtils/index.js +0 -4
- package/dist/cameraUtils/index.js.map +1 -1
- package/dist/cameraUtils/mp4.js +1 -1
- package/dist/cameraUtils/mp4.js.map +1 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/index.js.map +1 -1
- package/dist/logger/index.d.ts +2 -2
- package/dist/utils/subscribed.d.ts +9 -0
- package/dist/utils/subscribed.js +16 -0
- package/dist/utils/subscribed.js.map +1 -1
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +38 -0
- package/dist/utils/utils.js.map +1 -1
- package/package.json +6 -32
- package/dist/cameraUtils/processor.d.ts +0 -49
- package/dist/cameraUtils/processor.js +0 -154
- package/dist/cameraUtils/processor.js.map +0 -1
- package/dist/cameraUtils/return-audio-transcoder.d.ts +0 -40
- package/dist/cameraUtils/return-audio-transcoder.js +0 -84
- package/dist/cameraUtils/return-audio-transcoder.js.map +0 -1
- package/dist/cameraUtils/srtp.d.ts +0 -8
- package/dist/cameraUtils/srtp.js +0 -22
- package/dist/cameraUtils/srtp.js.map +0 -1
- package/dist/cameraUtils/utils.d.ts +0 -1
- package/dist/cameraUtils/utils.js +0 -15
- package/dist/cameraUtils/utils.js.map +0 -1
- package/dist/messaging/index.d.ts +0 -48
- package/dist/messaging/index.js +0 -141
- package/dist/messaging/index.js.map +0 -1
- package/dist/nats/index.d.ts +0 -30
- package/dist/nats/index.js +0 -85
- package/dist/nats/index.js.map +0 -1
- package/dist/packer/index.d.ts +0 -2
- package/dist/packer/index.js +0 -17
- package/dist/packer/index.js.map +0 -1
- package/dist/python/index.d.ts +0 -48
- package/dist/python/index.js +0 -478
- package/dist/python/index.js.map +0 -1
|
@@ -2,8 +2,8 @@ export interface FfmpegProcessOptions {
|
|
|
2
2
|
ffmpegPath: string;
|
|
3
3
|
ffmpegArgs: (string | number)[];
|
|
4
4
|
logger?: {
|
|
5
|
-
error: (
|
|
6
|
-
info: (
|
|
5
|
+
error: (...args: any[]) => void;
|
|
6
|
+
info: (...args: any[]) => void;
|
|
7
7
|
};
|
|
8
8
|
logLabel?: string;
|
|
9
9
|
exitCallback?: (code: number | null, signal: string | null) => unknown;
|
|
@@ -14,7 +14,8 @@ export class FfmpegProcess {
|
|
|
14
14
|
exited = false;
|
|
15
15
|
constructor(options) {
|
|
16
16
|
this.options = options;
|
|
17
|
-
|
|
17
|
+
const ffmpegArgs = options.ffmpegArgs.map((x) => x.toString());
|
|
18
|
+
this.ff = spawn(options.ffmpegPath, ffmpegArgs);
|
|
18
19
|
const { logger, logLabel } = options;
|
|
19
20
|
const logError = logger?.error || noop;
|
|
20
21
|
const logInfo = logger?.info || noop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffmpeg-process.js","sourceRoot":"","sources":["../../src/cameraUtils/ffmpeg-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;AACxB,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAE,CAAC;AAE7C,4EAA4E;AAC5E,4DAA4D;AAC5D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAe5D,MAAM,OAAO,aAAa;IAOI;IANpB,EAAE,CAAiC;IACnC,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,GAAG,KAAK,CAAC;IAEvB,YAA4B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QACvD,
|
|
1
|
+
{"version":3,"file":"ffmpeg-process.js","sourceRoot":"","sources":["../../src/cameraUtils/ffmpeg-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,5 @@ export * from './ffmpeg-process.js';
|
|
|
2
2
|
export * from './ffmpeg.js';
|
|
3
3
|
export * from './mp4.js';
|
|
4
4
|
export * from './ports.js';
|
|
5
|
-
export * from './processor.js';
|
|
6
|
-
export * from './return-audio-transcoder.js';
|
|
7
5
|
export * from './rtp-splitter.js';
|
|
8
6
|
export * from './rtp.js';
|
|
9
|
-
export * from './srtp.js';
|
|
10
|
-
export * from './utils.js';
|
|
@@ -2,10 +2,6 @@ export * from './ffmpeg-process.js';
|
|
|
2
2
|
export * from './ffmpeg.js';
|
|
3
3
|
export * from './mp4.js';
|
|
4
4
|
export * from './ports.js';
|
|
5
|
-
export * from './processor.js';
|
|
6
|
-
export * from './return-audio-transcoder.js';
|
|
7
5
|
export * from './rtp-splitter.js';
|
|
8
6
|
export * from './rtp.js';
|
|
9
|
-
export * from './srtp.js';
|
|
10
|
-
export * from './utils.js';
|
|
11
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cameraUtils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cameraUtils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC"}
|
package/dist/cameraUtils/mp4.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import { timeoutPromise } from '
|
|
2
|
+
import { timeoutPromise } from './../utils/utils.js';
|
|
3
3
|
// https://yumichan.net/video-processing/video-compression/introduction-to-h264-nal-unit/
|
|
4
4
|
export const NAL_TYPE_STAP_A = 24;
|
|
5
5
|
export const NAL_TYPE_FU_A = 28;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mp4.js","sourceRoot":"","sources":["../../src/cameraUtils/mp4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mp4.js","sourceRoot":"","sources":["../../src/cameraUtils/mp4.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,20 +2,12 @@ export * from './cameraUtils/ffmpeg-process.js';
|
|
|
2
2
|
export * from './cameraUtils/ffmpeg.js';
|
|
3
3
|
export * from './cameraUtils/mp4.js';
|
|
4
4
|
export * from './cameraUtils/ports.js';
|
|
5
|
-
export * from './cameraUtils/processor.js';
|
|
6
|
-
export * from './cameraUtils/return-audio-transcoder.js';
|
|
7
5
|
export * from './cameraUtils/rtp-splitter.js';
|
|
8
6
|
export * from './cameraUtils/rtp.js';
|
|
9
|
-
export * from './cameraUtils/srtp.js';
|
|
10
|
-
export * from './cameraUtils/utils.js';
|
|
11
7
|
export * from './logger/index.js';
|
|
12
|
-
export * from './messaging/index.js';
|
|
13
|
-
export * from './nats/index.js';
|
|
14
8
|
export * from './net/index.js';
|
|
15
9
|
export * from './network/index.js';
|
|
16
10
|
export * from './npm/index.js';
|
|
17
|
-
export * from './packer/index.js';
|
|
18
|
-
export * from './python/index.js';
|
|
19
11
|
export * from './utils/env.js';
|
|
20
12
|
export * from './utils/subscribed.js';
|
|
21
13
|
export * from './utils/utils.js';
|
package/dist/index.js
CHANGED
|
@@ -2,20 +2,12 @@ export * from './cameraUtils/ffmpeg-process.js';
|
|
|
2
2
|
export * from './cameraUtils/ffmpeg.js';
|
|
3
3
|
export * from './cameraUtils/mp4.js';
|
|
4
4
|
export * from './cameraUtils/ports.js';
|
|
5
|
-
export * from './cameraUtils/processor.js';
|
|
6
|
-
export * from './cameraUtils/return-audio-transcoder.js';
|
|
7
5
|
export * from './cameraUtils/rtp-splitter.js';
|
|
8
6
|
export * from './cameraUtils/rtp.js';
|
|
9
|
-
export * from './cameraUtils/srtp.js';
|
|
10
|
-
export * from './cameraUtils/utils.js';
|
|
11
7
|
export * from './logger/index.js';
|
|
12
|
-
export * from './messaging/index.js';
|
|
13
|
-
export * from './nats/index.js';
|
|
14
8
|
export * from './net/index.js';
|
|
15
9
|
export * from './network/index.js';
|
|
16
10
|
export * from './npm/index.js';
|
|
17
|
-
export * from './packer/index.js';
|
|
18
|
-
export * from './python/index.js';
|
|
19
11
|
export * from './utils/env.js';
|
|
20
12
|
export * from './utils/subscribed.js';
|
|
21
13
|
export * from './utils/utils.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
|
package/dist/logger/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LoggerService } from '@camera.ui/types';
|
|
2
2
|
export interface LoggerOptions {
|
|
3
3
|
prefix?: string;
|
|
4
4
|
suffix?: string;
|
|
@@ -6,7 +6,7 @@ export interface LoggerOptions {
|
|
|
6
6
|
debugEnabled?: boolean;
|
|
7
7
|
traceEnabled?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export declare class Logger implements
|
|
9
|
+
export declare class Logger implements LoggerService {
|
|
10
10
|
private prefix;
|
|
11
11
|
private suffix?;
|
|
12
12
|
disableTimestamps: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Subscribed as SubscribedInterface } from '@camera.ui/types';
|
|
1
2
|
import type { Subscription } from 'rxjs';
|
|
2
3
|
export declare class Subscribed {
|
|
3
4
|
private readonly subscriptions;
|
|
@@ -7,3 +8,11 @@ export declare class Subscribed {
|
|
|
7
8
|
protected unsubscribe(): void;
|
|
8
9
|
protected unsubscribeAdditional(): void;
|
|
9
10
|
}
|
|
11
|
+
export declare class SubscribedPublic implements SubscribedInterface {
|
|
12
|
+
private readonly subscriptions;
|
|
13
|
+
private readonly additionalSubscriptions;
|
|
14
|
+
addSubscriptions(...subscriptions: Subscription[]): void;
|
|
15
|
+
addAdditionalSubscriptions(...subscriptions: Subscription[]): void;
|
|
16
|
+
unsubscribe(): void;
|
|
17
|
+
unsubscribeAdditional(): void;
|
|
18
|
+
}
|
package/dist/utils/subscribed.js
CHANGED
|
@@ -14,4 +14,20 @@ export class Subscribed {
|
|
|
14
14
|
this.additionalSubscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
export class SubscribedPublic {
|
|
18
|
+
subscriptions = [];
|
|
19
|
+
additionalSubscriptions = [];
|
|
20
|
+
addSubscriptions(...subscriptions) {
|
|
21
|
+
this.subscriptions.push(...subscriptions);
|
|
22
|
+
}
|
|
23
|
+
addAdditionalSubscriptions(...subscriptions) {
|
|
24
|
+
this.additionalSubscriptions.push(...subscriptions);
|
|
25
|
+
}
|
|
26
|
+
unsubscribe() {
|
|
27
|
+
this.subscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
28
|
+
}
|
|
29
|
+
unsubscribeAdditional() {
|
|
30
|
+
this.additionalSubscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
17
33
|
//# sourceMappingURL=subscribed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribed.js","sourceRoot":"","sources":["../../src/utils/subscribed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscribed.js","sourceRoot":"","sources":["../../src/utils/subscribed.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,UAAU;IACJ,aAAa,GAAmB,EAAE,CAAC;IACnC,uBAAuB,GAAmB,EAAE,CAAC;IAEpD,gBAAgB,CAAC,GAAG,aAA6B;QACzD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAC5C,CAAC;IAES,0BAA0B,CAAC,GAAG,aAA6B;QACnE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACtD,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IAES,qBAAqB;QAC7B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACrF,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IACV,aAAa,GAAmB,EAAE,CAAC;IACnC,uBAAuB,GAAmB,EAAE,CAAC;IAEvD,gBAAgB,CAAC,GAAG,aAA6B;QACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAC5C,CAAC;IAEM,0BAA0B,CAAC,GAAG,aAA6B;QAChE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACtD,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEM,qBAAqB;QAC1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACrF,CAAC;CACF"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { AudioCodec } from '@camera.ui/types';
|
|
1
2
|
export type Customizer<TObject, TSource> = (objValue: any, srcValue: any, key: string, object: TObject, source: TSource, stack: any[]) => any;
|
|
3
|
+
export declare function timeoutPromise<T>(timeout: number, promise: Promise<T>): Promise<T>;
|
|
2
4
|
export declare function toQuery(data: any): string;
|
|
3
5
|
export declare function toData(query: string): Record<string, any>;
|
|
4
6
|
export declare function isJson(str: any): boolean;
|
|
@@ -8,3 +10,6 @@ export declare function mergeWith<TObject, TSource>(object: TObject, source: TSo
|
|
|
8
10
|
export declare function orderBy(array: any[], keys: string[], orders: ('asc' | 'desc')[]): any[];
|
|
9
11
|
export declare function structuredClone<T>(obj: T): T;
|
|
10
12
|
export declare function createSourceName(cameraName: string, sourceName: string): string;
|
|
13
|
+
export declare function isWebRtcCompatibleAudioCodec(audioCodec: AudioCodec): boolean;
|
|
14
|
+
export declare function isWebRtcCompatibleVideoCodec(videoCodec: string): boolean;
|
|
15
|
+
export declare function getCleanSdp(sdp: string, includeVideo: boolean, direction?: 'sendonly' | 'recvonly'): string;
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
export function timeoutPromise(timeout, promise) {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
const t = setTimeout(() => reject(new Error('Operation timed out')), timeout);
|
|
4
|
+
promise
|
|
5
|
+
.then((v) => {
|
|
6
|
+
clearTimeout(t);
|
|
7
|
+
resolve(v);
|
|
8
|
+
})
|
|
9
|
+
.catch((e) => {
|
|
10
|
+
clearTimeout(t);
|
|
11
|
+
reject(e);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
1
15
|
export function toQuery(data) {
|
|
2
16
|
let query = '';
|
|
3
17
|
if (typeof data === 'object' && !Array.isArray(data)) {
|
|
@@ -164,4 +178,28 @@ export function structuredClone(obj) {
|
|
|
164
178
|
export function createSourceName(cameraName, sourceName) {
|
|
165
179
|
return `${cameraName.replace(/ /g, '_').toLowerCase()}_${sourceName.replace(/ /g, '_').toLowerCase()}`;
|
|
166
180
|
}
|
|
181
|
+
export function isWebRtcCompatibleAudioCodec(audioCodec) {
|
|
182
|
+
return audioCodec === 'opus' || audioCodec === 'G722' || audioCodec === 'PCMU' || audioCodec === 'PCMA';
|
|
183
|
+
}
|
|
184
|
+
export function isWebRtcCompatibleVideoCodec(videoCodec) {
|
|
185
|
+
return videoCodec === 'H264' || videoCodec === 'VP8' || videoCodec === 'VP9';
|
|
186
|
+
}
|
|
187
|
+
export function getCleanSdp(sdp, includeVideo, direction) {
|
|
188
|
+
return sdp
|
|
189
|
+
.split('\nm=')
|
|
190
|
+
.slice(1)
|
|
191
|
+
.map((section) => 'm=' + section)
|
|
192
|
+
.filter((section) => {
|
|
193
|
+
const isVideoSection = section.startsWith('m=video');
|
|
194
|
+
if (!includeVideo && isVideoSection) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
if (direction) {
|
|
198
|
+
const directionRegex = new RegExp(`a=${direction}`, 'i');
|
|
199
|
+
return directionRegex.test(section);
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
})
|
|
203
|
+
.join('\n');
|
|
204
|
+
}
|
|
167
205
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
4
4
|
"description": "camera.ui utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -19,16 +19,6 @@
|
|
|
19
19
|
"types": "./dist/logger/index.d.ts",
|
|
20
20
|
"require": "./dist/logger/index.js"
|
|
21
21
|
},
|
|
22
|
-
"./messaging": {
|
|
23
|
-
"default": "./dist/messaging/index.js",
|
|
24
|
-
"types": "./dist/messaging/index.d.ts",
|
|
25
|
-
"require": "./dist/messaging/index.js"
|
|
26
|
-
},
|
|
27
|
-
"./nats": {
|
|
28
|
-
"default": "./dist/nats/index.js",
|
|
29
|
-
"types": "./dist/nats/index.d.ts",
|
|
30
|
-
"require": "./dist/nats/index.js"
|
|
31
|
-
},
|
|
32
22
|
"./net": {
|
|
33
23
|
"default": "./dist/net/index.js",
|
|
34
24
|
"types": "./dist/net/index.d.ts",
|
|
@@ -44,16 +34,6 @@
|
|
|
44
34
|
"types": "./dist/npm/index.d.ts",
|
|
45
35
|
"require": "./dist/npm/index.js"
|
|
46
36
|
},
|
|
47
|
-
"./packer": {
|
|
48
|
-
"default": "./dist/packer/index.js",
|
|
49
|
-
"types": "./dist/packer/index.d.ts",
|
|
50
|
-
"require": "./dist/packer/index.js"
|
|
51
|
-
},
|
|
52
|
-
"./python": {
|
|
53
|
-
"default": "./dist/python/index.js",
|
|
54
|
-
"types": "./dist/python/index.d.ts",
|
|
55
|
-
"require": "./dist/python/index.js"
|
|
56
|
-
},
|
|
57
37
|
"./utils": {
|
|
58
38
|
"default": "./dist/utils/index.js",
|
|
59
39
|
"types": "./dist/utils/index.d.ts",
|
|
@@ -69,31 +49,25 @@
|
|
|
69
49
|
"prepublishOnly": "npm i --package-lock-only && npm run lint && npm run format && npm run build"
|
|
70
50
|
},
|
|
71
51
|
"dependencies": {
|
|
72
|
-
"@bjia56/portable-python": "^0.1.74",
|
|
73
52
|
"@seydx/fix-path": "^3.0.1",
|
|
74
53
|
"ansicolor": "^2.0.3",
|
|
75
|
-
"compare-versions": "^6.1.1",
|
|
76
|
-
"fs-extra": "^11.2.0",
|
|
77
|
-
"msgpackr": "^1.11.0",
|
|
78
|
-
"nats": "^2.28.2",
|
|
79
54
|
"pick-port": "^2.1.0",
|
|
80
|
-
"systeminformation": "^5.23.5"
|
|
81
|
-
"werift": "^0.19.8"
|
|
55
|
+
"systeminformation": "^5.23.5"
|
|
82
56
|
},
|
|
83
57
|
"devDependencies": {
|
|
84
|
-
"@camera.ui/types": "^0.0.
|
|
58
|
+
"@camera.ui/types": "^0.0.71",
|
|
85
59
|
"@rushstack/eslint-patch": "^1.10.4",
|
|
86
60
|
"@types/fs-extra": "^11.0.4",
|
|
87
61
|
"@types/node": "^22.5.4",
|
|
88
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
89
|
-
"@typescript-eslint/parser": "^8.
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^8.5.0",
|
|
63
|
+
"@typescript-eslint/parser": "^8.5.0",
|
|
90
64
|
"eslint": "8.57.0",
|
|
91
65
|
"eslint-config-prettier": "^9.1.0",
|
|
92
66
|
"eslint-plugin-prettier": "^5.2.1",
|
|
93
67
|
"prettier": "^3.3.3",
|
|
94
68
|
"rimraf": "^6.0.1",
|
|
95
69
|
"tsyringe": "^4.8.0",
|
|
96
|
-
"typescript": "^5.
|
|
70
|
+
"typescript": "^5.6.2",
|
|
97
71
|
"updates": "^16.4.0"
|
|
98
72
|
},
|
|
99
73
|
"author": "seydx (https://github.com/seydx/camera.ui)",
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { RtpPacket } from 'werift';
|
|
2
|
-
import type { Logger } from '../logger/index.js';
|
|
3
|
-
import type { RtpSplitter } from './rtp-splitter.js';
|
|
4
|
-
import type { SrtpOptions } from './srtp.js';
|
|
5
|
-
export declare function getSessionConfig(srtpOptions: SrtpOptions): {
|
|
6
|
-
keys: {
|
|
7
|
-
localMasterKey: Buffer;
|
|
8
|
-
localMasterSalt: Buffer;
|
|
9
|
-
remoteMasterKey: Buffer;
|
|
10
|
-
remoteMasterSalt: Buffer;
|
|
11
|
-
};
|
|
12
|
-
profile: number;
|
|
13
|
-
};
|
|
14
|
-
export declare function getDurationSeconds(start: number): number;
|
|
15
|
-
export declare class AudioProcessor {
|
|
16
|
-
private audioSsrc;
|
|
17
|
-
private audioSrtp;
|
|
18
|
-
private audioSplitter;
|
|
19
|
-
private targetAddress;
|
|
20
|
-
private targetPort;
|
|
21
|
-
private payloadType;
|
|
22
|
-
private isOpus;
|
|
23
|
-
private packetTime;
|
|
24
|
-
private logger;
|
|
25
|
-
private audioSrtpSession;
|
|
26
|
-
private sequenceNumber;
|
|
27
|
-
private timestamp;
|
|
28
|
-
private buffer;
|
|
29
|
-
constructor(audioSsrc: number, audioSrtp: SrtpOptions, audioSplitter: RtpSplitter, targetAddress: string, targetPort: number, payloadType: number, isOpus: boolean, packetTime: number, logger: Logger);
|
|
30
|
-
processPacket(data: Buffer): void;
|
|
31
|
-
private process20ms;
|
|
32
|
-
private process60ms;
|
|
33
|
-
private sendPacket;
|
|
34
|
-
}
|
|
35
|
-
export declare class VideoProcessor {
|
|
36
|
-
private videoSsrc;
|
|
37
|
-
private videoSrtp;
|
|
38
|
-
private videoSplitter;
|
|
39
|
-
private targetAddress;
|
|
40
|
-
private targetPort;
|
|
41
|
-
private mtu;
|
|
42
|
-
private payloadType;
|
|
43
|
-
private logger;
|
|
44
|
-
private videoSrtpSession;
|
|
45
|
-
private sequenceNumber;
|
|
46
|
-
constructor(videoSsrc: number, videoSrtp: SrtpOptions, videoSplitter: RtpSplitter, targetAddress: string, targetPort: number, mtu: number, payloadType: number, logger: Logger);
|
|
47
|
-
processPacket(rtp: RtpPacket): void;
|
|
48
|
-
private fragmentPacket;
|
|
49
|
-
}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { RtpHeader, RtpPacket, SrtpSession } from 'werift';
|
|
2
|
-
export function getSessionConfig(srtpOptions) {
|
|
3
|
-
return {
|
|
4
|
-
keys: {
|
|
5
|
-
localMasterKey: srtpOptions.srtpKey,
|
|
6
|
-
localMasterSalt: srtpOptions.srtpSalt,
|
|
7
|
-
remoteMasterKey: srtpOptions.srtpKey,
|
|
8
|
-
remoteMasterSalt: srtpOptions.srtpSalt,
|
|
9
|
-
},
|
|
10
|
-
profile: 1,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export function getDurationSeconds(start) {
|
|
14
|
-
return (Date.now() - start) / 1000;
|
|
15
|
-
}
|
|
16
|
-
export class AudioProcessor {
|
|
17
|
-
audioSsrc;
|
|
18
|
-
audioSrtp;
|
|
19
|
-
audioSplitter;
|
|
20
|
-
targetAddress;
|
|
21
|
-
targetPort;
|
|
22
|
-
payloadType;
|
|
23
|
-
isOpus;
|
|
24
|
-
packetTime;
|
|
25
|
-
logger;
|
|
26
|
-
audioSrtpSession;
|
|
27
|
-
sequenceNumber = Math.floor(Math.random() * 65536);
|
|
28
|
-
timestamp = 0;
|
|
29
|
-
buffer = [];
|
|
30
|
-
constructor(audioSsrc, audioSrtp, audioSplitter, targetAddress, targetPort, payloadType, isOpus, packetTime, logger) {
|
|
31
|
-
this.audioSsrc = audioSsrc;
|
|
32
|
-
this.audioSrtp = audioSrtp;
|
|
33
|
-
this.audioSplitter = audioSplitter;
|
|
34
|
-
this.targetAddress = targetAddress;
|
|
35
|
-
this.targetPort = targetPort;
|
|
36
|
-
this.payloadType = payloadType;
|
|
37
|
-
this.isOpus = isOpus;
|
|
38
|
-
this.packetTime = packetTime;
|
|
39
|
-
this.logger = logger;
|
|
40
|
-
this.audioSrtpSession = new SrtpSession(getSessionConfig(this.audioSrtp));
|
|
41
|
-
if (this.isOpus) {
|
|
42
|
-
this.logger.log(`AudioProcessor created with OPUS codec, audio will be split into ${this.packetTime}ms frames`);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.logger.log('AudioProcessor created with AAC codec, audio will be sent as is');
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
processPacket(data) {
|
|
49
|
-
const rtp = RtpPacket.deSerialize(data);
|
|
50
|
-
if (this.isOpus) {
|
|
51
|
-
if (this.packetTime === 20) {
|
|
52
|
-
this.process20ms(rtp);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.process60ms(rtp);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.sendPacket(rtp);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
process20ms(rtp) {
|
|
63
|
-
rtp.header.sequenceNumber = this.sequenceNumber++;
|
|
64
|
-
rtp.header.timestamp = this.timestamp;
|
|
65
|
-
rtp.header.ssrc = this.audioSsrc;
|
|
66
|
-
rtp.header.payloadType = this.payloadType;
|
|
67
|
-
this.sendPacket(rtp);
|
|
68
|
-
this.timestamp += 16000 * 0.02; // 16kHz * 20ms
|
|
69
|
-
}
|
|
70
|
-
process60ms(rtp) {
|
|
71
|
-
this.buffer.push(rtp.payload.subarray(1)); // Remove TOC byte
|
|
72
|
-
if (this.buffer.length === 3) {
|
|
73
|
-
const toc = rtp.payload[0] & 0xfc; // Keep config bits
|
|
74
|
-
const frameCountByte = 0x83; // VBR flag set, 3 frames
|
|
75
|
-
const header = Buffer.from([toc | 0x03, frameCountByte]);
|
|
76
|
-
const payload = Buffer.concat([header, ...this.buffer]);
|
|
77
|
-
rtp.header.sequenceNumber = this.sequenceNumber++;
|
|
78
|
-
rtp.header.timestamp = this.timestamp;
|
|
79
|
-
rtp.header.ssrc = this.audioSsrc;
|
|
80
|
-
rtp.payload = payload;
|
|
81
|
-
this.sendPacket(rtp);
|
|
82
|
-
this.timestamp += 16000 * 0.06; // 16kHz * 60ms
|
|
83
|
-
this.buffer = [];
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
sendPacket(rtp) {
|
|
87
|
-
const encryptedPacket = this.audioSrtpSession.encrypt(rtp.payload, rtp.header);
|
|
88
|
-
this.audioSplitter.send(encryptedPacket, {
|
|
89
|
-
port: this.targetPort,
|
|
90
|
-
address: this.targetAddress,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
export class VideoProcessor {
|
|
95
|
-
videoSsrc;
|
|
96
|
-
videoSrtp;
|
|
97
|
-
videoSplitter;
|
|
98
|
-
targetAddress;
|
|
99
|
-
targetPort;
|
|
100
|
-
mtu;
|
|
101
|
-
payloadType;
|
|
102
|
-
logger;
|
|
103
|
-
videoSrtpSession;
|
|
104
|
-
sequenceNumber = Math.floor(Math.random() * 65536);
|
|
105
|
-
constructor(videoSsrc, videoSrtp, videoSplitter, targetAddress, targetPort, mtu, payloadType, logger) {
|
|
106
|
-
this.videoSsrc = videoSsrc;
|
|
107
|
-
this.videoSrtp = videoSrtp;
|
|
108
|
-
this.videoSplitter = videoSplitter;
|
|
109
|
-
this.targetAddress = targetAddress;
|
|
110
|
-
this.targetPort = targetPort;
|
|
111
|
-
this.mtu = mtu;
|
|
112
|
-
this.payloadType = payloadType;
|
|
113
|
-
this.logger = logger;
|
|
114
|
-
this.videoSrtpSession = new SrtpSession(getSessionConfig(this.videoSrtp));
|
|
115
|
-
}
|
|
116
|
-
processPacket(rtp) {
|
|
117
|
-
if (!rtp || !rtp.payload) {
|
|
118
|
-
this.logger.warn('Received invalid RTP packet, ignore...');
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
const fragments = this.fragmentPacket(rtp.payload, this.mtu - 12); // Subtract RTP header size
|
|
122
|
-
for (let i = 0; i < fragments.length; i++) {
|
|
123
|
-
const newRtp = new RtpPacket(new RtpHeader({
|
|
124
|
-
version: 2,
|
|
125
|
-
padding: false,
|
|
126
|
-
extension: false,
|
|
127
|
-
marker: i === fragments.length - 1 && rtp.header.marker,
|
|
128
|
-
payloadType: this.payloadType,
|
|
129
|
-
sequenceNumber: this.sequenceNumber++,
|
|
130
|
-
timestamp: rtp.header.timestamp,
|
|
131
|
-
ssrc: this.videoSsrc,
|
|
132
|
-
}), fragments[i]);
|
|
133
|
-
const encryptedPacket = this.videoSrtpSession.encrypt(newRtp.payload, newRtp.header);
|
|
134
|
-
this.videoSplitter.send(encryptedPacket, {
|
|
135
|
-
port: this.targetPort,
|
|
136
|
-
address: this.targetAddress,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
fragmentPacket(payload, maxFragmentSize) {
|
|
141
|
-
if (payload.length <= maxFragmentSize) {
|
|
142
|
-
return [payload];
|
|
143
|
-
}
|
|
144
|
-
const fragments = [];
|
|
145
|
-
let startIndex = 0;
|
|
146
|
-
while (startIndex < payload.length) {
|
|
147
|
-
const endIndex = Math.min(startIndex + maxFragmentSize, payload.length);
|
|
148
|
-
fragments.push(payload.subarray(startIndex, endIndex));
|
|
149
|
-
startIndex = endIndex;
|
|
150
|
-
}
|
|
151
|
-
return fragments;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=processor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/cameraUtils/processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { FfmpegProcess } from './ffmpeg-process.js';
|
|
2
|
-
import type { FfmpegProcessOptions } from './ffmpeg-process.js';
|
|
3
|
-
import type { RtpSplitter } from './rtp-splitter.js';
|
|
4
|
-
interface Source {
|
|
5
|
-
srtp_key: Buffer;
|
|
6
|
-
srtp_salt: Buffer;
|
|
7
|
-
}
|
|
8
|
-
interface PrepareStreamRequest {
|
|
9
|
-
targetAddress: string;
|
|
10
|
-
addressVersion: 'ipv4' | 'ipv6';
|
|
11
|
-
audio: Source;
|
|
12
|
-
}
|
|
13
|
-
interface StartStreamRequest {
|
|
14
|
-
audio: {
|
|
15
|
-
codec: 'OPUS' | 'AAC_eld' | string;
|
|
16
|
-
channel: number;
|
|
17
|
-
sample_rate: number;
|
|
18
|
-
pt: number;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export declare class ReturnAudioTranscoder {
|
|
22
|
-
private options;
|
|
23
|
-
readonly returnRtpSplitter: RtpSplitter;
|
|
24
|
-
private startStreamRequest;
|
|
25
|
-
readonly ffmpegProcess: FfmpegProcess;
|
|
26
|
-
readonly reservedPortsPromise: Promise<number[]>;
|
|
27
|
-
constructor(options: {
|
|
28
|
-
outputArgs: (string | number)[];
|
|
29
|
-
prepareStreamRequest: PrepareStreamRequest;
|
|
30
|
-
incomingAudioOptions: {
|
|
31
|
-
ssrc: number;
|
|
32
|
-
rtcpPort: number;
|
|
33
|
-
};
|
|
34
|
-
returnAudioSplitter: RtpSplitter;
|
|
35
|
-
startStreamRequest?: StartStreamRequest;
|
|
36
|
-
} & Omit<FfmpegProcessOptions, 'ffmpegArgs'>);
|
|
37
|
-
start(): Promise<void>;
|
|
38
|
-
stop(): void;
|
|
39
|
-
}
|
|
40
|
-
export {};
|