【ffmpeg.wasm 手册】架构
本文档详细阐述了 ffmpeg.wasm 的分层架构,介绍如何通过 WebAssembly 将 FFmpeg 功能带入浏览器。系统利用 Web Worker 隔离计算密集型任务,确保主线程响应性。内容涵盖 JavaScript API、Web Worker 实现、FFmpeg Core 模块及基于 Emscripten 的虚拟文件系统,并解析了从初始化到清理的典型媒体处理流程与多线程支持机制。
关于类型定义的技术文章和开发文档。
本文档详细阐述了 ffmpeg.wasm 的分层架构,介绍如何通过 WebAssembly 将 FFmpeg 功能带入浏览器。系统利用 Web Worker 隔离计算密集型任务,确保主线程响应性。内容涵盖 JavaScript API、Web Worker 实现、FFmpeg Core 模块及基于 Emscripten 的虚拟文件系统,并解析了从初始化到清理的典型媒体处理流程与多线程支持机制。
该扩展包为 Mediabunny 提供 MP3 编码功能,基于高度优化的 LAME MP3 编码器 WASM 构建版本。支持浏览器 WebCodecs、打包工具及 Node/Deno/Bun 环境。所有代码打包成单文件,无需 CDN 或路径配置,兼容性强且性能优异。
本文介绍一款可靠的 AAC-LC 编码器扩展包,专为配合 Mediabunny 使用而设计。该编码器基于 FFmpeg 底层实现,采用优化的快速 WASM 构建版本,解决了部分浏览器 WebCodecs 缺乏 AAC 支持的问题。用户可通过 npm 安装或 script 标签引入,轻松完成带 AAC 音频的 MP4 文件转换任务。
本文介绍 Mediabunny 的安装方法。您可使用包管理器安装,需 ECMAScript 2021 或更高版本的 JavaScript 环境及 TypeScript 5.7+。支持 ESM 导入以优化摇树,也可通过 HTML script 标签引入。提供构建版本下载及全局对象类型定义指南,助您在项目中快速集成使用。
本文介绍了解决浏览器 WebCodecs 不支持 AC-3 和 E-AC-3 的扩展包。该库提供解码器和编码器,可与 Mediabunny 配合使用,实现浏览器端直接处理 Dolby Digital 格式。基于 FFmpeg WASM 构建,支持快速且优化的性能,方便开发者集成使用。
该扩展包为浏览器 WebCodecs 实现提供缺失的 DTS 音频编解码器支持。它通过 Mediabunny 配合使用,利用 FFmpeg 优化的 WASM 构建版本,实现高效的解码与编码功能。用户可通过 npm 安装或 script 标签引入,轻松集成自定义编解码器 API,完成浏览器端的直接处理任务。
本文介绍了一个为 Mediabunny 提供可靠 FLAC 编码器的扩展包。该库基于自定义编码器 API,底层使用快速优化的 WASM 版本 libFLAC。支持与 Mediabunny 互为依赖,可通过 npm 安装或 script 标签引入。完成注册后,Mediabunny 将自动使用此编码器处理音频转换任务。
此扩展包为浏览器 WebCodecs 提供 Apple ProRes 解码支持,基于 Mediabunny 和 TurboRes 实现。利用 WASM 与共享内存多线程技术,在浏览器中以前所未有的速度直接解码 ProRes。需配置跨域隔离头以启用最佳性能,否则回退至较慢算法。支持 npm 安装或 script 标签引入。
本文介绍 Mediabunny 库中媒体数据的两种形式:包与采样。详细解析了视频包、音频包的创建与检查,以及视频样本、音频样本的构造、数据访问、转换和关闭方法。涵盖 WebCodecs API 对应关系、负时间戳处理及自定义资源支持等高级特性,帮助开发者高效处理多媒体数据。
Mediabunny 是一款高效的媒体文件读取库,支持从内存、磁盘或网络等多种输入源以惰性方式读取数据。它提供强大的元数据提取功能,包括时长、分辨率、编解码器及色彩空间信息。库内支持视频与音频轨道的时序分析、帧率计算及数据包统计,并具备灵活的轨道配对能力。通过异步 API 和 Promise 机制,Mediabunny 确保高性能与低内存占用,适用于复杂的流媒体处理场景。