This commit is contained in:
Koushik Dutta
2021-09-09 14:26:40 -07:00
parent bfde9e915a
commit 6afed66869
4 changed files with 61 additions and 18 deletions

View File

@@ -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",

View File

@@ -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",

View File

@@ -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[] {

View File

@@ -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 => {