mirror of
https://github.com/koush/scrypted.git
synced 2026-08-06 13:20:43 +01:00
ffmpeg
This commit is contained in:
57
server/package-lock.json
generated
57
server/package-lock.json
generated
@@ -24,6 +24,7 @@
|
||||
"debug": "^4.3.1",
|
||||
"engine.io": "^5.2.0",
|
||||
"express": "^4.17.1",
|
||||
"ffmpeg-for-homebridge": "^0.0.9",
|
||||
"level": "^6.0.1",
|
||||
"lodash": "^4.17.21",
|
||||
"memfs": "^3.2.2",
|
||||
@@ -1276,6 +1277,14 @@
|
||||
"webidl-conversions": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "8.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
|
||||
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
@@ -1469,6 +1478,30 @@
|
||||
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz",
|
||||
"integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
|
||||
},
|
||||
"node_modules/ffmpeg-for-homebridge": {
|
||||
"version": "0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/ffmpeg-for-homebridge/-/ffmpeg-for-homebridge-0.0.9.tgz",
|
||||
"integrity": "sha512-HmUatYfEf0dI7kbSh2vGLkJCuY7YLJODPn64Ng/Fj8YjpPbrLFGQBzvdQFBUC6RgGpvqEdlgZNQR8N9wEZuziQ==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"dotenv": "^8.2.0",
|
||||
"mkdirp": "^1.0.3",
|
||||
"simple-get": "^3.1.0",
|
||||
"tar": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ffmpeg-for-homebridge/node_modules/mkdirp": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
||||
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
|
||||
"bin": {
|
||||
"mkdirp": "bin/cmd.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/file-uri-to-path": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||
@@ -4380,6 +4413,11 @@
|
||||
"webidl-conversions": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"dotenv": {
|
||||
"version": "8.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
|
||||
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
@@ -4544,6 +4582,25 @@
|
||||
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz",
|
||||
"integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
|
||||
},
|
||||
"ffmpeg-for-homebridge": {
|
||||
"version": "0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/ffmpeg-for-homebridge/-/ffmpeg-for-homebridge-0.0.9.tgz",
|
||||
"integrity": "sha512-HmUatYfEf0dI7kbSh2vGLkJCuY7YLJODPn64Ng/Fj8YjpPbrLFGQBzvdQFBUC6RgGpvqEdlgZNQR8N9wEZuziQ==",
|
||||
"requires": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"dotenv": "^8.2.0",
|
||||
"mkdirp": "^1.0.3",
|
||||
"simple-get": "^3.1.0",
|
||||
"tar": "^6.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"mkdirp": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
||||
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"file-uri-to-path": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
"debug": "^4.3.1",
|
||||
"engine.io": "^5.2.0",
|
||||
"express": "^4.17.1",
|
||||
"ffmpeg-for-homebridge": "^0.0.9",
|
||||
"level": "^6.0.1",
|
||||
"lodash": "^4.17.21",
|
||||
"memfs": "^3.2.2",
|
||||
|
||||
@@ -9,6 +9,7 @@ import tmp from 'tmp';
|
||||
import net from 'net';
|
||||
import os from 'os';
|
||||
import { listenZeroCluster } from "./cluster-helper";
|
||||
import pathToFfmpeg from 'ffmpeg-for-homebridge';
|
||||
|
||||
const wrtc = require('wrtc');
|
||||
Object.assign(global, wrtc);
|
||||
@@ -290,9 +291,8 @@ export class MediaManagerImpl implements MediaManager {
|
||||
}
|
||||
|
||||
async getFFmpegPath(): Promise<string> {
|
||||
if (os.platform() === 'win32')
|
||||
return 'ffmpeg.exe';
|
||||
return 'ffmpeg';
|
||||
const defaultPath = os.platform() === 'win32' ? 'ffmpeg.exe' : 'ffmpeg';
|
||||
return pathToFfmpeg || defaultPath;
|
||||
}
|
||||
|
||||
getConverters(): BufferConverter[] {
|
||||
|
||||
@@ -28,25 +28,10 @@ process.on('unhandledRejection', error => {
|
||||
console.warn('unhandled rejection of RPC Result', error);
|
||||
});
|
||||
|
||||
function checkPrerequisites() {
|
||||
const ffmpeg = os.platform() === 'win32' ? 'ffmpeg.exe' : 'ffmpeg';
|
||||
const cp = child_process.spawn(ffmpeg, {
|
||||
stdio: 'ignore',
|
||||
})
|
||||
cp.on('error', e => {
|
||||
console.error('#############################################');
|
||||
console.error(`ffmpeg was not found in path!`);
|
||||
console.error('#############################################');
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
if (!cluster.isMaster) {
|
||||
startPluginRemoteClusterWorker();
|
||||
}
|
||||
else {
|
||||
checkPrerequisites();
|
||||
|
||||
let workerInspectPort: number = undefined;
|
||||
|
||||
const debugServer = net.createServer(socket => {
|
||||
|
||||
Reference in New Issue
Block a user