You need to enable JavaScript to run this app.
导航
一键部署 FFmpeg 视频截帧应用
最近更新时间:2024.08.02 15:33:05首次发布时间:2024.08.02 15:33:05

本文为您介绍如何通过函数服务应用中心一键部署 FFmpeg 视频截帧应用。

背景信息

  • 应用介绍
    FFmpeg 是一款开源的用于音视频多媒体素材处理的软件,广泛应用于音视频转码、视频剪辑、视频特效等场景。 本应用模板内置 FFmpeg 工具,帮助您快速部署一个视频截帧应用。部署完毕后,可通过 API 网关发送视频截帧请求,对指定时间点的视频进行截图。

  • 运行时
    Golang 运行时

  • 关联云服务

    • 函数服务:使用 FFmpeg 进行视频截帧操作。
    • API 网关:通过 API 网关发送视频截帧请求。

前提条件

  • 已开通本应用关联的所有云服务。
  • IAM 用户需确保已授权 VeFaaSFullAccessAPIGFullAccessSTSAssumeRoleAccess 策略。如果缺少以上策略,请联系主账号或管理员进行授权。具体操作可参见 创建用户并授权
  • API 网关准备工作:
    当前应用支持选择已有 API 网关实例或自动创建 API 网关实例。
    • 选择已有 API 网关实例:请提前准备好网关实例,注意网关实例需与应用部署在同一地域。详细操作可参见 创建实例
    • 自动创建 API 网关实例:请提前准备好 VPC 和子网信息,注意 VPC 需与应用部署在同一地域。详细操作可参见 创建私有网络
  • 首次使用函数服务,需确保已完成跨服务授权。如未授权,控制台会弹出跨服务授权页面引导您进行授权。

操作步骤

  1. 登录 函数服务控制台
  2. 在顶部导航栏,选择目标地域。
  3. 在左侧导航栏选择 应用
  4. 在应用页面,单击 创建应用
  5. 在创建应用页面,选择 volcano-ffmpeg 模板,单击 创建
  6. 在创建应用页面,按要求配置以下信息。
    • 基础信息
    配置项说明
    已选模板展示选择的模板。本场景为 volcano-ffmpeg。
    名称自定义应用的名称。
    备注填写当前应用的备注信息,可以为空。

    IAM 角色

    应用中心提供了系统默认角色 ServerlessApplicationRole,该角色包含了应用中心需要访问的部分云资源权限。

    • 如果您的用户角色未包含此角色,将会自动添加该角色。
    • 如果您的用户角色已包含此角色,系统会自动检测该角色是否已包含当前应用需要的所有策略。当缺少相关策略时,控制台会提示需要添加的策略名称,请单击 添加策略 进行添加。

    注意

    • IAM 用户需确保已授权 IAMReadOnlyAccess 策略,否则无权限获取 ServerlessApplicationRole 角色信息。
    • IAM 用户如需进一步为 ServerlessApplicationRole 角色添加策略,需确保已授权 IAMFullAccess 策略。
    关联云服务展示当前应用需要使用的所有云服务名称、开通状态及开通目的。
  • 高级配置
    配置项说明
    地域展示当前应用及应用下关联云资源所在的地域。
    函数名称自定义函数名称。

    API 网关实例

    设置待使用的 API 网关实例。将在该网关实例下自动创建 API 网关触发器相关资源,包括:服务、Upstream、路由。

    • 选择已有 API 网关实例:支持选择已有的 API 网关实例。

    • 自动创建 API 网关实例:请填写实例名称,并选择私有网络、可用区 A 的子网 ID、可用区 B 的子网 ID。应用将在该 VPC 下自动创建 Serverless 网关实例。

    注意

    自动创建 API 网关实例为 Serverless 网关实例。由于一个地域仅允许创建 1 个 Serverless 网关实例。如果该地域已存在 Serverless 网关实例,请选择已有 API 网关实例。

  1. 单击 确定,开始创建并部署应用。 系统将自动跳转至应用详情页面,为您实时展示应用部署日志。

结果验证

本节为您介绍如何发送视频截帧请求,获取指定时刻的视频截图。

  1. 提前准备好视频素材的 URL 地址。例如:将视频文件上传至火山引擎对象存储 TOS 中,并将文件设置为可公共读。本示例使用的视频文件为: https://volcengine-vefaas-demo-resource.tos-cn-beijing.volces.com/moment-120sec.mp4 。

  2. 打开本地命令行控制台,执行以下命令,截取视频素材第 10 秒的图片,并将图片保存至本地 /tmp/image.jpeg 文件中。

    # https://api_gateway_address需替换为您的 API网关服务地址
    # Source 为提前准备好的视频源地址
    # TimeInSeconds 为需要截取的时间点,单位为秒
    curl -X POST 'https://api_gateway_address/snapshot' -d '{"Source": "https://volcengine-vefaas-demo-resource.tos-cn-beijing.volces.com/moment-120sec.mp4","TimeInSeconds": 10}' > /tmp/image.jpeg
    
    #返回如下内容表明执行成功
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 71136    0 71019  100   117  24537     40  0:00:02  0:00:02 --:--:-- 24572
    
  3. 打开本地 /tmp/image.jpeg 文件,查看步骤 2 获取的视频截图。