diff --git a/web/apps/photos/src/services/ffmpeg.ts b/web/apps/photos/src/services/ffmpeg.ts index f637b5bd2..dbdc53a3c 100644 --- a/web/apps/photos/src/services/ffmpeg.ts +++ b/web/apps/photos/src/services/ffmpeg.ts @@ -104,11 +104,21 @@ export const extractVideoMetadata = async ( const outputData = uploadItem instanceof File ? await ffmpegExecWeb(command, uploadItem, "txt", 0) - : await electron.ffmpegExec(command, uploadItem, "txt", 0); + : await electron.ffmpegExec(command, forE(uploadItem), "txt", 0); return parseFFmpegExtractedMetadata(outputData); }; +/** + * For each of cases of {@link UploadItem} that apply when we're running in the + * context of our desktop app, return a value that can be passed to + * {@link Electron}'s {@link ffmpegExec} over IPC. + */ +const forE = (desktopUploadItem: Exclude) => + typeof desktopUploadItem == "string" || Array.isArray(desktopUploadItem) + ? desktopUploadItem + : desktopUploadItem.path; + // Options: // // - `-c [short for codex] copy`