当前位置: 首页 > article >正文

初识@ffmpeg/ffmpeg库

前言

FFmpeg是一套可以用来记录、转换数字音频、视频,并且能够利用它们来创建一个新的流媒体格式的自由软件项目,它被广泛应用在视频处理、音频处理以及直播领域。其中,@ffmpeg/ffmpeg 是一个将 FFmpeg 编译为 WebAssembly(WASM)的库,可支持几乎所有的音视频格式

 安装与引入

  1. 使用 npm 安装 @ffmpeg/ffmpeg 和 @ffmpeg/core
    npm install @ffmpeg/core@0.11.0 @ffmpeg/ffmpeg@0.11.6 --save
    
    // @ffmpeg/ffmpeg@0.11.x 系列版本已经被广泛使用,且与 Vite 和其他工具链兼容
    
  2. 在 JavaScript 文件中引入该库
    参数名 作用 默认值
    log 是否启用日志输出(true 或 false) false
    corePath 指定 FFmpeg WebAssembly 核心文件的路径,例如 /node_modules/@ffmpeg/core/ffmpeg-core.js (无默认值,必须指定)
    progress 提供进度回调函数,用于显示任务执行的进度信息 (无默认值,可选)
     
    import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg';
    
  3.  启用 跨源隔离(Cross-Origin Isolation),这是浏览器安全策略的一部分.

    // vite.config.js
    import { defineConfig } from 'vite';
    
    export default defineConfig({
      server: {
        headers: {
          'Cross-Origin-Opener-Policy': 'same-origin',
          'Cross-Origin-Embedder-Policy': 'require-corp',
        },
      },
    });
    

加载 FFmpeg

使用 createFFmpeg 创建一个 FFmpeg 实例,并通过 ffmpeg.load() 方法异步加载

const ffmpeg = createFFmpeg({
  log: true,
  corePath: '/node_modules/@ffmpeg/core/ffmpeg-core.js', // 指定核心路径
});
await ffmpeg.load();

处理输入文件

使用 fetchFile 方法从用户上传的文件或其他资源中获取文件,并通过 ffmpeg.FS 方法将其写入 FFmpeg 的虚拟文件系统(


http://www.kler.cn/a/502405.html

相关文章:

  • Docker启动失败 - 解决方案
  • JavaScript 学习总结
  • linux设置http,https代理
  • 系统看门狗配置--以ubuntu为例
  • 数据分析-使用Excel透视图/表分析禅道数据
  • linux网络 | 深度理解https加密过程 | 模拟设计方案
  • Springcloudgateway 请求无响应,要怎么处理
  • 在 Alpine Linux 下通过 Docker 部署 PostgreSQL 服务器
  • FFmpeg硬件解码
  • Redis HyperLogLog
  • linux 安装docker-compose
  • 黑马linux笔记(03)在Linux上部署各类软件 MySQL5.7/8.0 Tomcat(JDK) Nginx RabbitMQ
  • 基于单片机的数字气压计设计
  • 《零基础Go语言算法实战》【题目 2-25】goroutine 的执行权问题
  • 全网首发:嵌入式交叉编译libssh,正确编译脚本
  • LLM进化下的Agent演变及软件重构下的一点思考
  • Golang学习笔记_22——Reader示例
  • java项目之在线文档管理系统源码(springboot+mysql+vue+文档)
  • 从光子到图像——相机如何捕获世界?
  • 53_多级缓存基础环境搭建