mirror of
https://github.com/koush/scrypted.git
synced 2026-02-10 01:02:18 +00:00
core: fix camera aggregate encoding arguments
This commit is contained in:
6
plugins/core/package-lock.json
generated
6
plugins/core/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/core",
|
||||
"version": "0.0.244",
|
||||
"version": "0.0.245",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/core",
|
||||
"version": "0.0.244",
|
||||
"version": "0.0.245",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
@@ -87,7 +87,7 @@
|
||||
},
|
||||
"../../sdk": {
|
||||
"name": "@scrypted/sdk",
|
||||
"version": "0.0.195",
|
||||
"version": "0.0.196",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@babel/preset-typescript": "^7.16.7",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/core",
|
||||
"version": "0.0.244",
|
||||
"version": "0.0.245",
|
||||
"description": "Scrypted Core plugin. Provides the UI, websocket, and engine.io APIs.",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -116,9 +116,16 @@ function createVideoCamera(devices: VideoCamera[], console: Console): VideoCamer
|
||||
filter.join(' '),
|
||||
);
|
||||
|
||||
const parsers ={
|
||||
const parsers = {
|
||||
mpegts: createMpegTsParser({
|
||||
vcodec: ['-vcodec', 'libx264'],
|
||||
vcodec: [
|
||||
"-b:v", '2000k',
|
||||
"-c:v", "libx264",
|
||||
'-preset', 'ultrafast',
|
||||
"-bf", "0",
|
||||
'-r', '15',
|
||||
'-force_key_frames', 'expr:gte(t,n_forced*4)',
|
||||
],
|
||||
})
|
||||
};
|
||||
const ret = await startParserSession(filteredInput, {
|
||||
@@ -126,8 +133,8 @@ function createVideoCamera(devices: VideoCamera[], console: Console): VideoCamer
|
||||
parsers,
|
||||
timeout: 30000,
|
||||
});
|
||||
|
||||
let rebroadcaster = await createParserRebroadcaster(ret, 'mpegts',{
|
||||
|
||||
let rebroadcaster = await createParserRebroadcaster(ret, 'mpegts', {
|
||||
idle: {
|
||||
timeout: 30000,
|
||||
callback: () => ret.kill(),
|
||||
@@ -141,16 +148,20 @@ function createVideoCamera(devices: VideoCamera[], console: Console): VideoCamer
|
||||
};
|
||||
};
|
||||
|
||||
const createVideoStreamOptions = () => {
|
||||
if (devices.length === 1)
|
||||
return devices[0].getVideoStreamOptions();
|
||||
return [{
|
||||
id: 'default',
|
||||
name: 'Default',
|
||||
video: {},
|
||||
audio: null,
|
||||
}]
|
||||
}
|
||||
|
||||
return {
|
||||
async getVideoStreamOptions() {
|
||||
if (devices.length === 1)
|
||||
return devices[0].getVideoStreamOptions();
|
||||
return [{
|
||||
id: 'default',
|
||||
name: 'Default',
|
||||
video: {},
|
||||
audio: null,
|
||||
}]
|
||||
return createVideoStreamOptions();
|
||||
},
|
||||
|
||||
async getVideoStream(options) {
|
||||
@@ -160,21 +171,22 @@ function createVideoCamera(devices: VideoCamera[], console: Console): VideoCamer
|
||||
if (!sessionPromise) {
|
||||
sessionPromise = getVideoStreamWrapped(options);
|
||||
const ret = await sessionPromise;
|
||||
ret.session.on('killed', () => sessionPromise = undefined);
|
||||
ret.session.killed.finally(() => sessionPromise = undefined);
|
||||
}
|
||||
|
||||
const ret = await sessionPromise;
|
||||
const {url} = ret.rebroadcaster;
|
||||
const { url } = ret.rebroadcaster;
|
||||
const ffmpegInput: FFmpegInput = {
|
||||
url,
|
||||
mediaStreamOptions: createVideoStreamOptions()[0],
|
||||
container: 'mpegts',
|
||||
inputArguments: [
|
||||
...(ret.parsers.mpegts.inputArguments || []),
|
||||
'-f', ret.parsers.mpegts.container,
|
||||
'-i', url,
|
||||
...(ret.parsers.mpegts.inputArguments || []),
|
||||
'-f', ret.parsers.mpegts.container,
|
||||
'-i', url,
|
||||
],
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return mediaManager.createFFmpegMediaObject(ffmpegInput);
|
||||
}
|
||||
}
|
||||
|
||||
4
plugins/core/ui/package-lock.json
generated
4
plugins/core/ui/package-lock.json
generated
@@ -132,7 +132,7 @@
|
||||
},
|
||||
"../../../sdk": {
|
||||
"name": "@scrypted/sdk",
|
||||
"version": "0.0.195",
|
||||
"version": "0.0.196",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@babel/preset-typescript": "^7.16.7",
|
||||
@@ -167,7 +167,7 @@
|
||||
},
|
||||
"../../../sdk/types": {
|
||||
"name": "@scrypted/types",
|
||||
"version": "0.0.39",
|
||||
"version": "0.0.42",
|
||||
"license": "ISC",
|
||||
"devDependencies": {}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user