From c5de6de8222ce6395ca4802793aa3558dad910e8 Mon Sep 17 00:00:00 2001 From: Ragg Date: Fri, 7 Apr 2017 23:22:01 +0900 Subject: [PATCH] Fix failed to spawn ffmpeg on macOS --- src/delir-core/src/renderer/renderer.ts | 4 +++- src/renderer/services/renderer.ts | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/delir-core/src/renderer/renderer.ts b/src/delir-core/src/renderer/renderer.ts index 6acc9da6c..03e9c33a9 100644 --- a/src/delir-core/src/renderer/renderer.ts +++ b/src/delir-core/src/renderer/renderer.ts @@ -472,6 +472,7 @@ export default class Renderer { exportPath: string, tmpDir: string, targetCompositionId: string, + ffmpegBin: string, }) { return new ProgressPromise(async ( @@ -512,6 +513,7 @@ export default class Renderer { }, inputFramerate: rootComp.framerate, dest: tmpMovieFilePath, + ffmpegBin, }) const progPromise = Renderer.render({ @@ -567,7 +569,7 @@ export default class Renderer { notifier({state: 'Concat and encoding...'}) await new Promise((resolve, reject) => { - const ffmpeg = spawn('ffmpeg', [ + const ffmpeg = spawn(ffmpegBin, [ '-y', // '-f', // 'utvideo', diff --git a/src/renderer/services/renderer.ts b/src/renderer/services/renderer.ts index d2d771a92..673681337 100644 --- a/src/renderer/services/renderer.ts +++ b/src/renderer/services/renderer.ts @@ -4,6 +4,7 @@ import {join} from 'path' import * as Delir from 'delir-core' import {ProjectHelper} from 'delir-core' +import * as Platform from '../utils/platform' import dispatcher from '../dispatcher' import {KnownPayload} from '../actions/PayloadTypes' @@ -129,6 +130,12 @@ const handlePayload = (payload: KnownPayload) => { } case EditorStateDispatchTypes.RenderDestinate: (() => { + const appPath = remote.app.getPath('exe') + const ffmpegBin = require('path').resolve( + appPath, + Platform.isMacOS() ? '../../Resources/ffmpeg' : './ffmpeg.exe' + ) + const file = remote.dialog.showSaveDialog(({ title: 'Destinate', buttonLabel: 'Render', @@ -152,6 +159,7 @@ const handlePayload = (payload: KnownPayload) => { exportPath: file, tmpDir: remote.app.getPath('temp'), targetCompositionId: activeComp.id, + ffmpegBin }) .progress(progress => { if (progress.isRendering) {