← All posts

FFHub vs AWS MediaConvert — 一篇老实的对比

从配置成本、FFmpeg 兼容性、计费方式几个维度对比 FFHub 和 AWS Elemental MediaConvert,附真实场景的成本测算。

FFHub·2026-05-06
FFHub vs AWS MediaConvert — 一篇老实的对比

挑一个云端视频处理服务,对做媒体业务的团队来说是个比较重的决定。AWS Elemental MediaConvert 和 FFHub 解决的是同一个问题——在云端处理视频——但思路完全不一样。这篇文章把两者放在一起对比,方便你自己判断哪个合适。

各是什么

AWS Elemental MediaConvert 是 AWS 自家的托管转码服务,作业(job)模型,输入是一份 JSON 规范,支持硬件加速编码,跟 S3、CloudFront、Lambda 这些 AWS 服务深度联动。

FFHub 是一个云端 FFmpeg API。你通过 REST 把一条 FFmpeg 命令发过来,FFHub 在托管基础设施上跑。会写 FFmpeg 就会用 FFHub,没有别的概念。

对比一览

维度FFHubAWS MediaConvert
接入时间几分钟(拿 API Key 发请求)几小时(IAM 角色、S3 桶、作业模板、endpoint)
API 模型单一 REST 端点,发 FFmpeg 命令JSON 作业规范,100+ 参数
FFmpeg 兼容性100%——任何合法的 FFmpeg 命令都能跑子集——支持的编解码器和功能有限
计费方式按实际处理秒数按输出时长(向上取整到分钟)+ 数据传输
最低消费无,但杂项费用会累积
GPU 编码不提供提供(HEVC、AV1 硬件加速)
编解码器FFmpeg 支持的全部H.264、H.265、VP8、VP9、AV1、MPEG-2、Apple ProRes
输入源URL、本地文件上传仅 S3(HTTP 需额外配置)
供应商锁定无——标准 FFmpeg 命令较高——专有作业规范格式
企业合规标准SOC、HIPAA、FedRAMP、PCI DSS
CLI 工具有(ffhub CLI)AWS CLI
控制台任务历史和日志完整 AWS 控制台 + 监控
Webhook 通知走 CloudWatch Events + SNS/Lambda

配置一个能跑的环境要多久

FFHub:2 分钟

  1. ffhub.io 注册
  2. 拿 API Key
  3. 发请求:
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 23 output.mp4"
  }'

完事,视频已经在跑了。

AWS MediaConvert:1–3 小时

要在好几个 AWS 服务之间来回切:

Step 1:创建 IAM 角色,配置 MediaConvert 的信任策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "mediaconvert.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Step 2:挂上 S3 权限,让 MediaConvert 能读输入、写输出。

Step 3:把源文件传到 S3:

aws s3 cp input.mp4 s3://my-media-bucket/inputs/input.mp4

Step 4:写一份作业规范(下面是简化版,真实作业通常 100+ 行):

{
  "Role": "arn:aws:iam::123456789012:role/MediaConvertRole",
  "Settings": {
    "Inputs": [
      {
        "FileInput": "s3://my-media-bucket/inputs/input.mp4",
        "AudioSelectors": {
          "Audio Selector 1": {
            "DefaultSelection": "DEFAULT"
          }
        }
      }
    ],
    "OutputGroups": [
      {
        "Name": "File Group",
        "OutputGroupSettings": {
          "Type": "FILE_GROUP_SETTINGS",
          "FileGroupSettings": {
            "Destination": "s3://my-media-bucket/outputs/"
          }
        },
        "Outputs": [
          {
            "VideoDescription": {
              "CodecSettings": {
                "Codec": "H_264",
                "H264Settings": {
                  "RateControlMode": "QVBR",
                  "QvbrSettings": {
                    "QvbrQualityLevel": 7
                  },
                  "MaxBitrate": 5000000
                }
              }
            },
            "AudioDescriptions": [
              {
                "CodecSettings": {
                  "Codec": "AAC",
                  "AacSettings": {
                    "Bitrate": 128000,
                    "CodingMode": "CODING_MODE_2_0",
                    "SampleRate": 48000
                  }
                }
              }
            ],
            "ContainerSettings": {
              "Container": "MP4"
            }
          }
        ]
      }
    ]
  }
}

Step 5:提交作业:

aws mediaconvert create-job \
  --endpoint-url https://abc123.mediaconvert.us-east-1.amazonaws.com \
  --cli-input-json file://job.json

Step 6:还想要完成通知?再去配 CloudWatch Events 和 SNS。

同样的编码效果,FFHub 这边一行:

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 23 -c:a aac -b:a 128k output.mp4"
  }'

一次 API 调用 vs 六步配置。

价格对比

FFHub

按真实处理秒数算。任务跑了 45 秒就是 45 秒,没有取整、没有附加费。

  • 处理:$0.005/秒(标准档)
  • 存储:24 小时免费临时存储
  • 数据传输:包含

AWS MediaConvert

输出时长分钟算,向上取整到整分钟,单价跟编解码器、分辨率、基础档/专业档都有关:

  • SD(H.264,基础):$0.0075/分钟
  • HD(H.264,基础):$0.015/分钟
  • 4K(H.264,基础):$0.030/分钟
  • HD(H.265,专业):$0.036/分钟

外加:

  • 输入输出文件的 S3 存储费
  • S3 出站流量费
  • CloudWatch 日志费
  • SNS 通知费(如果用了)

真实场景算笔账

场景 1:1,000 个视频,每个平均 5 分钟,H.264 1080p 转 720p。

费项FFHubAWS MediaConvert
处理约 $150(按 30 秒/视频估)$75(5 分钟 × 1,000 × $0.015)
S3 存储$0约 $11.50(输入 + 输出共约 50GB)
S3 出站$0约 $4.50(50GB)
CloudWatch$0约 $0.50
合计约 $150约 $91.50

这个场景纯算处理费 AWS 更便宜——但前提是你的视频够长。如果视频很短(MediaConvert 会向上取整到分钟),或者把搭管线和维护的工程时间算进去,账就完全不一样了。

场景 2:10,000 个片段,每个平均 8 秒。

费项FFHubAWS MediaConvert
处理约 $250(按 5 秒/片段估)$150(最低 1 分钟 × 10,000 × $0.015)
AWS 杂项$0约 $20
合计约 $250约 $170

哪怕按分钟取整,纯转码 AWS 还是便宜。但工程成本是另一回事:IAM、S3、作业模板、错误处理、监控这一套搭下来通常要好几天。FFHub 几分钟。在 AWS 上跑 FFmpeg 还有哪些坑可以看 FFmpeg on serverless and Lambda

FFmpeg 兼容性

差距最大的就是这块。

FFHub:完整的 FFmpeg

FFHub 底下跑的就是真正的 FFmpeg。任何合法命令都能跑:

# 复杂滤镜链
ffmpeg -i input.mp4 -vf "scale=1280:720,drawtext=text='%{pts\:hms}':fontsize=24:fontcolor=white:x=10:y=10" -c:v libx264 -crf 23 output.mp4

# 多文件拼接
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1" output.mp4

# 按间隔抽帧
ffmpeg -i input.mp4 -vf "select=not(mod(n\,30))" -vsync vfn frame_%04d.png

# 多码率 HLS
ffmpeg -i input.mp4 \
  -map 0:v -map 0:a -map 0:v -map 0:a \
  -c:v libx264 -crf 22 \
  -var_stream_map "v:0,a:0 v:1,a:1" \
  -b:v:0 5M -s:v:0 1920x1080 \
  -b:v:1 2M -s:v:1 1280x720 \
  -f hls -hls_time 6 \
  -master_pl_name master.m3u8 \
  stream_%v/playlist.m3u8

只要写得出 FFmpeg 命令,FFHub 就能跑。

AWS MediaConvert:受限的子集

MediaConvert 支持一组精挑细选的编解码器和功能:

  • H.264、H.265、VP8、VP9、AV1、MPEG-2、Apple ProRes
  • 标准滤镜(去隔行、降噪、色彩校正)
  • HDR 转换
  • DRM 封装(这一块是它的强项)

但下面这些做不到:

  • 自定义 FFmpeg 滤镜链(-filter_complex
  • 小众编解码器(独立 Opus、FLAC video mux 等)
  • 任意流映射
  • 自定义抽帧逻辑
  • 不少 FFmpeg 专属参数

如果你的工作流刚好落在 MediaConvert 支持的范围内,这不是问题。如果需要 FFmpeg 的全部能力,MediaConvert 会卡住你。

AWS MediaConvert 更合适的场景

公道说话,下面几种情况选 MediaConvert 是对的:

1. 企业合规

MediaConvert 持有 SOC 1/2/3、HIPAA、FedRAMP、PCI DSS。如果你的组织硬性要求这些认证,没得选。

2. GPU 加速编码

MediaConvert 提供 H.265、AV1 的硬件加速,跑这些编解码器明显更快。FFHub 是 CPU 编码。

3. 已经在 AWS 生态里

基础设施全在 AWS 上的话,MediaConvert 跟 S3、CloudFront、Lambda、Step Functions、EventBridge 都是原生对接,端到端管线很顺。

4. DRM 和内容保护

Apple FairPlay、Google Widevine、Microsoft PlayReady 三家 DRM 封装开箱可用。用纯 FFmpeg 自己搞 DRM 复杂得多。

5. 大规模企业工作流

每个月几百万分钟的量,又有专职 AWS 团队,MediaConvert 的按分钟计费和成熟工具链通常更划算。

FFHub 更合适的场景

1. 简单

一个端点,一个概念(发命令、拿结果)。没有 IAM 角色,没有作业模板,没有 endpoint discovery。

2. 完整的 FFmpeg

没有缺口,没有翻译层,FFmpeg 能做的都能做。

3. 没有供应商锁定

你的 FFmpeg 命令在 FFHub、本地、其他服务器上行为一样,迁移成本几乎为零。

4. 起步快

从零到能跑视频不用 5 分钟。

5. 短内容

视频在 1 分钟以内,按秒计费明显比按分钟取整划算。

6. 学习成本低

会 FFmpeg 就会 FFHub。不用学新 DSL,不用啃 200 页 API 文档。

同一件事的代码对比:抽一张缩略图

FFHub

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/video.mp4 -ss 00:00:05 -frames:v 1 -q:v 2 thumbnail.jpg"
  }'

AWS MediaConvert

{
  "Role": "arn:aws:iam::123456789012:role/MediaConvertRole",
  "Settings": {
    "Inputs": [{
      "FileInput": "s3://bucket/video.mp4"
    }],
    "OutputGroups": [{
      "OutputGroupSettings": {
        "Type": "FILE_GROUP_SETTINGS",
        "FileGroupSettings": {
          "Destination": "s3://bucket/thumbnails/"
        }
      },
      "Outputs": [{
        "VideoDescription": {
          "CodecSettings": {
            "Codec": "FRAME_CAPTURE",
            "FrameCaptureSettings": {
              "FramerateNumerator": 1,
              "FramerateDenominator": 5,
              "MaxCaptures": 1,
              "Quality": 80
            }
          }
        },
        "ContainerSettings": {
          "Container": "RAW"
        }
      }]
    }]
  }
}

FFHub 这边是一行任何写过 FFmpeg 的人都能看懂的命令。MediaConvert 这边得先把作业规范的 schema 搞清楚。

怎么选

选 FFHub,如果:

  • 需要完整的 FFmpeg 兼容性
  • 想几分钟内开始处理视频,而不是几天
  • 团队会 FFmpeg,希望直接复用这个技能
  • 主要是短内容,按秒计费更合适
  • 不想被供应商锁定
  • 需要复杂滤镜链或小众编解码器

选 AWS MediaConvert,如果:

  • 必须有合规认证(HIPAA、FedRAMP 等)
  • 需要 H.265 或 AV1 的 GPU 加速
  • 基础设施已经在 AWS 上,要深度集成
  • 需要内置 DRM 封装
  • 有专职媒体团队,熟 AWS 生态
  • 每月几百万分钟级别,要走批量定价

也可以看 FFHub 跟 CoconutTransloadit 的对比。

上手 FFHub

如果你看重简单和 FFmpeg 兼容性,可以试试 FFHub.io。注册、拿 API Key,几分钟就能开跑——FFmpeg 全部能力都在。

# 装 CLI
npm install -g ffhub

# 跑第一条命令
ffhub run "ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4"

总结

MediaConvert 和 FFHub 服务的是不同的人群。MediaConvert 是给深度泡在 AWS 生态里的组织准备的企业级方案,工具链成熟。FFHub 是给想直接用 FFmpeg、不愿意花时间搭基础设施的团队准备的。

没有谁"更好"——看你的合规、编解码器、预算和上线速度怎么权衡。对很多团队来说,最快上线的路径是一次发到 FFHub 的 API 调用;对另一些团队,MediaConvert 的企业级特性值得多花一点配置成本。

延伸阅读

FFHub vs AWS MediaConvert — 一篇老实的对比