Plugin API
简体中文
简体中文
  • 入門
    • 简介
    • 你的第一个插件
    • 文件结构概述
    • 插件类型
      • 窗口
      • 背景服務
      • 格式扩展
      • 检查器
    • 调试插件
    • 开发交流群
  • 部署
    • 准备插件
    • 打包插件
    • 发布插件
    • 更新插件
    • 开发者政策
    • 插件图标模板
  • 开发指南
    • manifest.json 完整配置
    • 取得数据
    • 修改数据
    • 存取本地文件
    • 发出网路请求
    • 使用 Node.js 原生 API
    • 使用第三方模快
    • 多国语言(i18n)
    • 无边框窗口
  • API 参考
    • event(事件)
    • item(项目)
    • folder(文件夾)
    • tag(标签)
    • tagGroup(标签群组)
    • library(资源库)
    • window(窗口)
    • app(应用)
    • os(操作系统)
    • screen(屏幕)
    • notification(通知)
    • contextMenu(右鍵菜單)
    • dialog(对话框)
    • clipboard(剪贴板)
    • drag(拖拽文件)
    • shell(壳)
    • log(日志)
  • 额外组件
    • FFmpeg
由 GitBook 提供支持
在本页
  • FFmpeg 依赖插件简介
  • 安装 FFmpeg 依赖插件
  • 如何使用 FFmpeg 依赖插件
  • 窗口插件示例
  • 缩略图插件示例
  1. 额外组件

FFmpeg

此插件提供了 FFmpeg 的依赖支持,以赋予开发者广泛的图像、视频、音频编解码能力。

注意:此功能需要在 Eagle 4.0 beta 7 以上版本才能使用

FFmpeg 依赖插件简介

「FFmpeg 依赖插件」是一款面向浏览器插件开发者的开发工具包,它将 FFmpeg 强大的多媒体处理能力封装为易用的依赖包。此工具包让开发者能在自身的插件中轻松实现图像、视频和音频格式的编解码,以及流媒体处理和格式转换等高级功能。通过集成「FFmpeg 依赖插件」,开发者可无缝拓展其插件的多媒体处理能力,为用户带来更多富有创意和实用性的功能。

安装 FFmpeg 依赖插件

  1. 进入插件中心

  2. 搜索并找到 FFmpeg 插件

  3. 点击安装 FFmpeg 插件

请注意,当用户安装具有 FFmpeg 依赖的插件时,Eagle 会自动提示用户安装「FFmpeg 依赖插件」。因此,开发者无需专门编写代码让用户进行安装,只需为可能出现的错误提供相应提示。

如何使用 FFmpeg 依赖插件

如果你希望在你的插件中使用 FFmpeg 相关功能,你需要在插件的 manifest.json 文件中添加 dependencies 定义,让 Eagle 系统知道这个插件需要额外的扩展功能,示例如下:

{
    "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.extraModule.ffmpeg 来调用 FFmpeg 依赖插件提供的功能,示例如下:

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"
    ]);
});

缩略图插件示例

你可以通过 extraModule 参数获取 FFmpeg 相关功能,示例如下:


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);
        }
    });
}
上一页log(日志)

最后更新于10个月前