FFmpeg

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

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

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

最后更新于