NEWS
[Gelöst] ffmpeg Error: spawn EACCES JS-Adapter
-
Hi Zusammen,
ich möchte eigentlich Screenshots einer mp4 Datei per Javascript erstellen und wollte dafür die Screenshots Funktion von ffmpeg verwenden.
Problem ist das ich es allerdings nicht zum laufen bringe da ich auf einen Error: spawn EACCES laufe und ich es bisher nicht schaffe diesen zu beheben.Ich habe im Javascript Adapter fluemt-ffmpeg, ffprobe und ffmpeg als zusätzlich npm Module in der Zwischenzeit schon angegeben. Am Anfang hatte ich das Problem das er auf den Fehler gelaufen ist das er ffmpeg und ffprobe nicht gefunden hat. Das konnte ich dann beheben indem ich mit setFfmpegPath und setFfprobePath die Pfade zu den Installationen gesetzt habe. Und jetzt laufe ich aber wie gesagt auf den EACCES Fehler.
Mein Skript sieht momentan so aus:
const ffmpeg = require('fluent-ffmpeg'); ffmpeg.setFfmpegPath('/opt/iobroker/node_modules/iobroker.javascript/node_modules/ffmpeg'); ffmpeg.setFfprobePath('/opt/iobroker/node_modules/iobroker.javascript/node_modules/ffprobe'); ffmpeg('/opt/iobroker/temp/cam/stamp.mp4') .on('end', function() { console.log('Screenshots taken'); }) .on('error', function(err) { console.error('Läuft auf Fehler: ' + err); }) .screenshots({ // Will take screenshots at 20%, 40%, 60% and 80% of the video count: 4, folder: '/opt/iobroker/temp/cam' });und das Log sieht so aus:
avascript.0 2019-08-17 12:42:03.063 error at ContextifyScript.Script.runInContext (vm.js:59:29) javascript.0 2019-08-17 12:42:03.063 error at script.js.onlyTests.Test_Screenshot_FFMPEG:21:2 javascript.0 2019-08-17 12:42:03.063 error at FfmpegCommand.proto.takeScreenshots.proto.thumbnail.proto.thumbnails.proto.screenshot.proto.screenshots (/opt/iobroker/node_modules/iobroker.javascript/node_modules/fluent-ffmpeg/lib/recipes.js javascript.0 2019-08-17 12:42:03.063 error at Object.awaitable(waterfall) [as waterfall] (/opt/iobroker/node_modules/iobroker.javascript/node_modules/async/dist/async.js:208:32) javascript.0 2019-08-17 12:42:03.063 error at Object.waterfall (/opt/iobroker/node_modules/iobroker.javascript/node_modules/async/dist/async.js:4589:9) javascript.0 2019-08-17 12:42:03.063 error at nextTask (/opt/iobroker/node_modules/iobroker.javascript/node_modules/async/dist/async.js:4578:27) javascript.0 2019-08-17 12:42:03.063 error at computeTimemarks (/opt/iobroker/node_modules/iobroker.javascript/node_modules/fluent-ffmpeg/lib/recipes.js:175:11) javascript.0 2019-08-17 12:42:03.063 error at getMetadata (/opt/iobroker/node_modules/iobroker.javascript/node_modules/fluent-ffmpeg/lib/recipes.js:160:14) javascript.0 2019-08-17 12:42:03.063 error at FfmpegCommand.proto.ffprobe (/opt/iobroker/node_modules/iobroker.javascript/node_modules/fluent-ffmpeg/lib/ffprobe.js:141:10) javascript.0 2019-08-17 12:42:03.063 error at FfmpegCommand.proto._getFfprobePath (/opt/iobroker/node_modules/iobroker.javascript/node_modules/fluent-ffmpeg/lib/capabilities.js:144:14) javascript.0 2019-08-17 12:42:03.063 error at /opt/iobroker/node_modules/iobroker.javascript/node_modules/fluent-ffmpeg/lib/ffprobe.js:155:21 javascript.0 2019-08-17 12:42:03.063 error at exports.spawn (child_process.js:508:9) javascript.0 2019-08-17 12:42:03.063 error at ChildProcess.spawn (internal/child_process.js:313:11) javascript.0 2019-08-17 12:42:03.063 error Error: spawn EACCES javascript.0 2019-08-17 12:42:03.063 error ^ javascript.0 2019-08-17 12:42:03.063 error throw errnoException(err, 'spawn'); javascript.0 2019-08-17 12:42:03.063 error script.js.onlyTests.Test_Screenshot_FFMPEG: internal/child_process.js:313Hat dir mir jemand eine Idee wo ich meinen Fehler habe?
Danke und Grüße
McD_HRTS -
Als Info.
Habe das Problem gelöst indem ich ffmpeg und ffprobe installiert habe über die beiden:
https://www.npmjs.com/package/@ffmpeg-installer/ffmpeg
https://www.npmjs.com/package/@ffprobe-installer/ffprobeund dann das Skript entsprechend angepasst:
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path; const ffprobePath = require('@ffprobe-installer/ffprobe').path; const ffmpeg = require('fluent-ffmpeg'); ffmpeg.setFfmpegPath(ffmpegPath); ffmpeg.setFfprobePath(ffprobePath); ffmpeg('/opt/iobroker/temp/cam/stamp.mp4') .on('end', function() { console.log('Screenshots taken'); }) .on('error', function(err) { console.error('Läuft auf Fehler: ' + err); }) .screenshots({ count: 12, folder: '/opt/iobroker/temp/cam' });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden