面向开发者的
FFmpeg API。
在云端运行真实 FFmpeg 命令。通过 HTTP 发送命令,worker、存储、重试和扩缩容交给 FFHub,完成后拿到处理好的文件 URL。
curl -X POST https://api.ffhub.io/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"command": "ffmpeg -i https://example.com/input.mp4 -c:v libx264 -crf 24 output.mp4"
}'
# → { "task_id": "tsk_..." }
# Poll GET /v1/tasks/{task_id}
# → outputs[0].url本地跑 FFmpeg 很简单,
生产环境难在周边。
真正拖慢团队的通常不是那条命令,而是命令外面的运行、排队、存储和扩缩容。
Worker 维护
FFmpeg 二进制、编码器、系统依赖、CPU 容量和任务隔离都要维护,还不能拖垮应用服务器。
队列和重试
视频任务会失败、超时、需要轮询。清晰的任务生命周期比多写一个脚本更重要。
存储链路
输入要有可访问 URL,输出要有稳定下载链接,临时文件还要清理。
突发扩容
一个上传很简单,一批用户视频就需要并发控制和能独立扩缩容的 worker。
一个 API,
仍然是熟悉的 FFmpeg 语法。
FFHub 把接入路径压到很短:上传或传 URL、创建任务、轮询状态、下载结果。
提供输入
使用公开 URL,或者通过 Files API 上传本地文件。
提交命令
用 bearer token 把 FFmpeg 命令 POST 到 /v1/tasks。
跟踪进度
从后端轮询任务状态,或者在 dashboard 里查看运行记录。
使用输出 URL
任务完成后返回公开输出 URL,可保存、分发或传给下游流程。
产品里那些一直想补的
媒体处理能力。
只要 FFmpeg 能表达,FFHub 就适合把它变成一个异步云端任务。
视频转码
把 MOV、MKV、AVI、WebM 或用户上传转成适合网页播放的 MP4、HLS、DASH。
压缩流水线
用 CRF、preset、缩放和编码器选择压缩大文件,参数完全自己控制。
缩略图生成
为 UGC 信息流、CMS 素材、产品视频或预览图截取封面帧。
音频提取
提取 MP3、AAC、WAV、FLAC 或 Opus,用于转写、播客和 AI 工作流。
字幕和叠加
烧录字幕、添加文字水印、叠加 logo,并保留完整 filter 控制。
批量处理
从队列、webhook、定时任务或你自己的后端工作流触发处理。
直接使用 FFmpeg,
但不用拥有整套机器。
FFHub 介于原始自建基础设施和纯 preset 视频 API 之间。
| 需求 | FFHub | 自建 FFmpeg | Preset 型 API |
|---|---|---|---|
| 命令控制 | 原生 FFmpeg 命令参数 | 完全控制 | 通常受限于已支持的 preset |
| 基础设施 | 托管云端 worker 和存储 | 自己维护服务器、队列和清理 | 托管,但不够 FFmpeg 原生 |
| 自定义 filter | 使用正常 filter graph | 使用正常 filter graph | 经常受限或不可用 |
| 接入方式 | REST task API、轮询和输出 URL | 自定义 worker 协议 | 供应商自己的 job 格式 |
| 适合场景 | 已经懂 FFmpeg 的开发者 | 有媒体基础设施能力的团队 | 只需要标准输出的团队 |
适合 API-first 团队,
不是魔法 preset 层。
FFHub 刻意贴近 FFmpeg,这正是它的价值。
适合使用 FFHub
- 你已经知道需要哪些 FFmpeg 参数。
- 你想要异步任务,但不想维护 worker。
- 你需要自定义 filter、stream mapping 或不常见编码器。
- 你想先小规模开始,按处理量付费,而不是为空闲机器付费。
更适合其他方案
- 你想要面向消费者的剪辑器或时间线 UI。
- 你想要完全不懂 FFmpeg 的 preset-only 工作流。
- 你想拥有每台机器并亲自调底层基础设施。
- 你需要完整视频 CMS、播放器、DRM 和分析平台。
几分钟内发送
第一个 FFmpeg 任务。
用 quickstart 跑一遍真实请求流程;如果想先试命令,也可以打开 playground。