「FFmpeg 相依性插件」是一款針對瀏覽器插件開發者的開發工具包,它將 FFmpeg 強大的多媒體處理能力封裝為易用的相依性包。此工具包讓開發者能在自身的插件中輕鬆實現圖像、影片和音訊格式的編解碼,以及串流媒體處理和格式轉換等高階功能。透過整合「FFmpeg 相依性插件」,開發者可以無縫擴展其插件的多媒體處理能力,為使用者帶來更多富有創意和實用性的功能。
{
"id": "LBCZE8V6LPCKD",
"version": "1.0.0",
"platform": "all",
"arch": "all",
"name": "視窗插件",
"logo": "/logo.png",
"keywords": [],
"dependencies": ["ffmpeg"],
"devTools": false,
"main":
{
"url": "index.html",
"width": 640,
"height": 480,
}
}
eagle.onPluginCreate(async (plugin) => {
// 檢查 FFmpeg 相依性插件是否已經安裝
const isFFemptInstalled = await eagle.extraModule.ffmpeg.isInstalled();
// 從開啟插件中心,彈出安裝 FFmpeg 相依性插件頁面。
if (!isFFemptInstalled) {
await eagle.extraModule.ffmpeg.install();
return;
}
// 取得 FFmpeg 二進位檔案所在位置
const ffmpegPaths= await eagle.extraModule.ffmpeg.getPaths();
const ffmpegBinaryPath = ffmpegPaths.ffmpeg;
const ffprobeBinaryPath = ffmpegPaths.ffprobe;
// 使用 spwan 指令執行相關操作
const spawn = require('child_process').spawn;
const ffprobe = spawn(ffprobePath, [
'-v', 'error',
'-print_format', 'json',
'-show_format',
'-show_streams',
"C:\\your_file.mp4"
]);
});
module.exports = async ({ src, dest, item, plugin, extraModule }) => {
return new Promise(async (resolve, reject) => {
try {
const ffmpegModule = extraModule.ffmpeg;
// 檢查 FFmpeg 相依性插件是否已經安裝
if (!ffmpegModule.isInstalled) {
return reject(new Error(`ffmpeg is not installed.`));
}
// 取得 FFmpeg 二進位檔案所在位置
const { ffmpeg, ffprobe } = ffmpegModule.paths;
// 使用 spwan 指令執行相關操作
const spawn = require('child_process').spawn;
const ffprobe = spawn(ffprobePath, [
'-v', 'error',
'-print_format', 'json',
'-show_format',
'-show_streams',
"C:\\your_file.mp4"
]);
return resolve(item);
}
catch (err) {
return reject(err);
}
});
}