mirror of
https://github.com/koush/scrypted.git
synced 2026-09-17 09:10:38 +01:00
core: use low/medium res on aggregate devices
This commit is contained in:
4
plugins/core/package-lock.json
generated
4
plugins/core/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/core",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/core",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/core",
|
||||
"version": "0.1.23",
|
||||
"version": "0.1.24",
|
||||
"description": "Scrypted Core plugin. Provides the UI, websocket, and engine.io APIs.",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import sdk, { EventListener, EventListenerRegister, FFmpegInput, LockState, RequestMediaStreamOptions, ResponseMediaStreamOptions, ScryptedDevice, ScryptedDeviceBase, ScryptedInterface, ScryptedInterfaceDescriptors, ScryptedMimeTypes, VideoCamera } from "@scrypted/sdk";
|
||||
import sdk, { EventListener, EventListenerRegister, FFmpegInput, LockState, MediaStreamDestination, RequestMediaStreamOptions, ResponseMediaStreamOptions, ScryptedDevice, ScryptedDeviceBase, ScryptedInterface, ScryptedInterfaceDescriptors, ScryptedMimeTypes, VideoCamera } from "@scrypted/sdk";
|
||||
const { systemManager, mediaManager, deviceManager } = sdk;
|
||||
|
||||
export interface AggregateDevice extends ScryptedDeviceBase {
|
||||
@@ -40,8 +40,11 @@ aggregators.set(ScryptedInterface.Lock,
|
||||
|
||||
function createVideoCamera(devices: VideoCamera[], console: Console): VideoCamera {
|
||||
async function getVideoStreamWrapped(options: RequestMediaStreamOptions) {
|
||||
const destination: MediaStreamDestination = devices.length > 4 ? 'low-resolution' : "medium-resolution";
|
||||
const args = await Promise.allSettled(devices.map(async (device) => {
|
||||
const mo = await device.getVideoStream();
|
||||
const mo = await device.getVideoStream({
|
||||
destination,
|
||||
});
|
||||
const buffer = await mediaManager.convertMediaObjectToBuffer(mo, ScryptedMimeTypes.FFmpegInput);
|
||||
const ffmpegInput = JSON.parse(buffer.toString()) as FFmpegInput;
|
||||
return ffmpegInput;
|
||||
|
||||
Reference in New Issue
Block a user