字
字节笔记本
2026年6月9日
ffmpeg-webCLI:浏览器端视频编辑器,30+ 操作全部本地处理
API中转
¥120
ffmpeg-webCLI 是一个基于 ffmpeg.wasm 的浏览器端视频编辑器,支持 30+ 种视频操作。所有处理完全在本地浏览器中通过 WebAssembly 完成,无需上传文件到服务器,真正做到隐私优先。
项目简介
ffmpeg-webCLI 是一个开源的 JavaScript 项目,由 Tejaswi Gowda 开发维护。截至目前,该项目在 GitHub 上已获得 281 stars,完全使用 JavaScript 编写。项目已部署为 PWA 应用,支持离线使用。
核心亮点:零上传、零服务器、零数据收集——所有视频处理都在你的设备上完成。
核心特性
- 零上传隐私优先 — 所有视频处理完全在本地设备完成,文件不会发送到任何服务器
- 30+ 视频操作 — GIF 制作、格式转换、压缩、裁剪、特效、滤镜等一应俱全
- 离线优先 PWA — 首次加载后完全离线工作,可安装为原生应用
- 屏幕常亮 — 视频处理期间自动保持屏幕唤醒,防止设备休眠
- 实时预览 — 实时显示输出大小估算和设置调整效果
- 多格式支持 — MP4、WebM、MKV、MOV、AVI、GIF、MP3、AAC、WAV、OGG、FLAC、JPG、PNG
- 高级功能 — 原生 ffmpeg 命令行、字幕嵌入、视频拼接、画中画、音频混合
- 高性能 — 使用 Web Workers 后台处理,UI 始终流畅响应
支持的操作
基础操作
| 操作 | 说明 |
|---|---|
| GIF 制作 | 任意视频转 GIF,支持帧率设置,两阶段调色板生成 |
| 格式转换 | MP4(H.264)、WebM(VP9)、MKV、MOV、AVI 互转 |
| 视频压缩 | CRF 质量滑块(18 近无损 → 51 最大压缩) |
| 视频裁剪 | 时间轴滑块设置起止点,与其他操作可叠加 |
| 缩放压缩 | 修改输出尺寸并一次压缩完成 |
| 音频提取 | 提取音轨为 MP3、AAC、WAV、OGG、FLAC |
| 静音处理 | 移除音频轨道,保留纯视频 |
| 变速 | 0.25× – 4× 变速,音频音调同步保留 |
| 旋转/翻转 | 90° 旋转、水平/垂直翻转 |
| 裁剪画面 | 指定区域裁剪帧画面 |
进阶操作
| 操作 | 说明 |
|---|---|
| 缩略图提取 | 从任意时间点提取单帧为 JPEG/PNG |
| 视频倒放 | 视频和音频同时倒放 |
| 淡入淡出 | 独立设置淡入/淡出时长 |
| 亮度/对比度/饱和度 | 精调画面效果,支持一键灰度 |
| 元数据剥离 | 移除 GPS、相机型号、时间戳等嵌入信息 |
| 字幕嵌入 | 软字幕 mux,支持 .srt/.vtt/.ass,零画质损失 |
| 音量调节 | 0–4× 音量增益控制 |
| 循环播放 | 2–50 次循环拼接,流复制零重编码 |
| Logo/水印 | PNG 透明水印叠加,支持位置和尺寸调节 |
| 音频混合 | 背景音乐混入,独立音量控制 |
| 视频拼接 | 两段视频自动拼接,支持不同分辨率/编码 |
| 左右分屏 | 水平/垂直并排布局,适合对比/反应视频 |
| 画中画 | 小窗口叠加第二段视频,支持位置和大小 |
| 媒体信息 | 显示完整编解码器和容器元数据 |
特效操作
| 操作 | 说明 |
|---|---|
| 黑边填充(Letterbox) | 填充黑边到目标比例(16:9、9:16、1:1、4:3 等) |
| 音频标准化 | EBU R128 响度标准化(-14/-16/-23 LUFS) |
| 降噪 | hqdn3d 三维降噪(轻/中/重) |
| 回旋镖效果 | 正放 + 倒放循环的经典 boomerang 效果 |
| 锐化/模糊 | unsharp 掩码锐化 / boxblur 模糊 |
| 原生 ffmpeg 命令 | 完整命令行访问,含一键命令示例库 |
技术栈
- ffmpeg.wasm — WebAssembly 版本的 FFmpeg,浏览器端视频处理核心
- Web Workers — 后台线程处理,保持 UI 流畅
- Service Worker — 静态资源和 CDN 缓存,支持离线使用
- Screen Wake Lock API — 处理期间防止设备休眠
- SharedArrayBuffer — 需要 COOP/COEP 安全头支持
- Progressive Web App — 可安装为桌面/移动端原生应用
安装指南
前置要求
- Node.js
- Git
安装步骤
bash
git clone https://github.com/tejaswigowda/ffmpeg-webCLI
cd ffmpeg-webCLI
npm install
node server.js服务会设置必要的 Cross-Origin-Opener-Policy 和 Cross-Origin-Embedder-Policy 安全头(ffmpeg.wasm 的 SharedArrayBuffer 所需)。
也可以用任何支持自定义头的静态服务器:
bash
npx serve docs快速开始
- 访问 ffmpeg-webCLI 在线应用
- 点击 Load ffmpeg 下载 WebAssembly 核心(约 31MB,首次下载后缓存)
- 拖放或选择视频文件
- 可选:用时间轴滑块设置裁剪范围
- 选择操作并调整参数,实时查看输出大小估算
- 点击 Process Video,ffmpeg 在浏览器 Web Worker 中运行
- 预览结果并下载
PWA 离线使用
- 安装:浏览器地址栏点击安装按钮 → 添加到桌面
- 离线:首次在线加载 ffmpeg 后,后续完全离线工作
- 常亮:处理期间自动保持屏幕唤醒
支持 Chrome、Edge、Firefox、Safari 桌面端,以及 Chrome、Firefox、Samsung Internet 安卓端。
项目信息
- GitHub 仓库:tejaswigowda/ffmpeg-webCLI
- 在线体验:ffmpeg-webCLI
- 开源协议:GPL-3.0
- 技术栈:JavaScript 100%
分享: