download ffmepg for arm64 arch
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { ipcMain, app } from "electron";
|
||||
import { ipcMain } from "electron";
|
||||
import Ffmpeg from "fluent-ffmpeg";
|
||||
import settings from "@main/settings";
|
||||
import log from "electron-log/main";
|
||||
@@ -6,6 +6,7 @@ import path from "path";
|
||||
import fs from "fs-extra";
|
||||
import AdmZip from "adm-zip";
|
||||
import downloader from "@main/downloader";
|
||||
import storage from "@main/storage";
|
||||
|
||||
const logger = log.scope("ffmepg");
|
||||
export default class FfmpegWrapper {
|
||||
@@ -174,7 +175,41 @@ export class FfmpegDownloader {
|
||||
}
|
||||
}
|
||||
|
||||
async downloadForDarwinArm64(webContents?: Electron.WebContents) {
|
||||
const DARWIN_FFMPEG_ARM64_URL = storage.getUrl(
|
||||
"ffmpeg-apple-arm64-build-6.0.zip"
|
||||
);
|
||||
|
||||
fs.ensureDirSync(path.join(settings.libraryPath(), "ffmpeg"));
|
||||
|
||||
const ffmpegZipPath = await downloader.download(DARWIN_FFMPEG_ARM64_URL, {
|
||||
webContents,
|
||||
});
|
||||
const ffmepgZip = new AdmZip(ffmpegZipPath);
|
||||
|
||||
ffmepgZip.extractEntryTo(
|
||||
"ffmpeg/ffmpeg",
|
||||
path.join(settings.libraryPath(), "ffmpeg"),
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
||||
ffmepgZip.extractEntryTo(
|
||||
"ffmpeg/ffprobe",
|
||||
path.join(settings.libraryPath(), "ffmpeg"),
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
||||
fs.chmodSync(path.join(settings.libraryPath(), "ffmpeg", "ffmpeg"), 0o775);
|
||||
fs.chmodSync(path.join(settings.libraryPath(), "ffmpeg", "ffprobe"), 0o775);
|
||||
}
|
||||
|
||||
async downloadForDarwin(webContents?: Electron.WebContents) {
|
||||
if (process.arch === "arm64") {
|
||||
return this.downloadForDarwinArm64(webContents);
|
||||
}
|
||||
|
||||
const DARWIN_FFMPEG_URL = "https://evermeet.cx/ffmpeg/getrelease/zip";
|
||||
const DARWIN_FFPROBE_URL =
|
||||
"https://evermeet.cx/ffmpeg/getrelease/ffprobe/zip";
|
||||
@@ -192,10 +227,7 @@ export class FfmpegDownloader {
|
||||
true
|
||||
);
|
||||
|
||||
fs.chmodSync(
|
||||
path.join(settings.libraryPath(), "ffmpeg", "ffmpeg"),
|
||||
0o775
|
||||
);
|
||||
fs.chmodSync(path.join(settings.libraryPath(), "ffmpeg", "ffmpeg"), 0o775);
|
||||
|
||||
const ffprobeZipPath = await downloader.download(DARWIN_FFPROBE_URL, {
|
||||
webContents,
|
||||
@@ -207,10 +239,7 @@ export class FfmpegDownloader {
|
||||
false,
|
||||
true
|
||||
);
|
||||
fs.chmodSync(
|
||||
path.join(settings.libraryPath(), "ffmpeg", "ffprobe"),
|
||||
0o775
|
||||
);
|
||||
fs.chmodSync(path.join(settings.libraryPath(), "ffmpeg", "ffprobe"), 0o775);
|
||||
|
||||
return settings.ffmpegConfig();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user