详情页标题前

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

详情页1

操作场景

在视频、社交应用等场景下,用户上传的图片、音视频的总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。而上传的视频短片,可对应不同的清晰度使用多个云函数对其分别处理,以满足不同场景下用户的需求,同时适应移动网络带宽较小且不稳定的特性。

运行原理

使用云函数、ffmpeg 及对象存储 COS 联动实现音视频转码的运行原理图如下:n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

n在云函数中,可基于不同的编程语言(Python、Node、PHP、JAVA 及 GO)撰写自定义业务逻辑。以转码为例,操作步骤如下:1. 创建函数,并在其中部署 ffmpeg 资源包及转码逻辑。2. 配置 COS Bucket 触发器,对源视频实时处理加工。旁路生成日志和监控、支持告警。3. 对转码后的视频回传 COS,并触发自动预热。

与容器服务的对比

与容器服务对比,使用云函数及 ffmpeg 实现音视频转码服务的优势和不足如下表:

对比项 基于容器的实现 基于云函数的实现 分析
实现方法 在 docker 容器中运行 ffmpeg。ffmpeg 进行了自定义处理,不同版本具备不同的 binary 依赖,均打包为镜像。自主控制 docker 镜像版本,不同服务加载不同的 docker 镜像,其中包含不同的 ffmpeg。 不同的 ffmpeg 编译为不同的可执行文件,并部署到云函数“层”,和业务逻辑解耦。 编写不同的函数,分别和“层”中不同的 ffmpeg 绑定,提供不同的转码功能。编写调度函数,分片视频和调度不同的转码服务。 实现方案差异不大。
开发/测试/部署体验 本地开发测试后,触发 CI/CD 流程,烧制镜像,完成部署。需要维护灰度发布系统,容器服务集群每次更新速度较慢。 本地开发测试后,触发 CI/CD 流程,完成部署。云函数提供灰度/发布/回滚功能,部署流程可以直接集成 API 接口实现全自动化流程。个人子账号可以通过 CLI 工具,在测试环境实时开发及调试,效率更高。 在开发流程方面,云函数更加简单高效。
日志/监控/告警 需要在容器集群里启动 Agent,并对接日志平台、监控中心及告警平台。 自带日志/监控/告警能力,同时开放 API 接口,可以对接第三方日志/监控平台。支持运行时启动 Agent 进程,同步上报数据。 云函数自带能力较完善,但如需对接自建平台,启动 Agent 相比容器较复杂。
运维 需自主维护容器集群,弹性伸缩效率较低。 无需维护,云函数保障集群可用性、负载均衡及弹性伸缩。 云函数更加易用。
费用 需根据峰值预留容器资源,存在资源浪费可能性。 根据实际流量弹性伸缩、计费,费用节省30%以上。 云函数具有明显优势。

通过以上与容器的多维度对比,可得出以下结论:n优势:云函数提供标准运行环境,并且保障资源的高可用和弹性伸缩,无需专人维护。云函数基于实际业务消耗收费,不存在资源浪费。云函数的开发调试流程效率会更加高效,依赖和业务解耦,可以分别单独更新,支持实时热更新。运行环境隔离,单次请求失败不影响其他请求的正常执行。不足:云函数的引入,需要对接现有 CI/CD 流程,开发方式上有一定的转变。现有业务代码需进行一定程度的改造,主要集中在 ffmpeg 编包上。云函数可以提供编包工具及相关研发协助改造。

前提条件

本文以广州地域为例:前往 对象存储控制台 创建 COS Bucket,且 Bucket 权限设置为公有读私有写。(可选)当视频文件大于500M时,需前往文件存储控制台开通 CFS 服务,用于扩展云函数的本地存储空间。详情请参见 挂载 CFS 文件系统。前往访问管理控制台,创建云函数的运行角色,并授予该角色 COS、CFS 的读写权限,用于授权云函数访问相应服务。详情请参见 创建函数运行角色。

操作步骤

创建云函数

1. 登录 Serverless 控制台,进入函数服务页面。2. 在“函数服务”上方选择期望创建函数的地域,并单击新建,进入函数创建流程。3. 在“新建函数”页面根据以下信息选择函数模板。如下图所示: n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

创建方式:选择模板创建模糊搜索:输入“转码”,并进行搜索,本文以运行环境 Python3.6 为例。n 单击模板中的查看详情,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。4. 单击下一步,函数名称默认填充,可根据需要自行修改。按照引导配置环境变量和运行角色,如下图所示: n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

环境变量:填写可参考下表。n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技



key value
region COS Bucket 所在地域。
target_bucket 转码后的视频,上传到已创建好的 COS Bucket 中。
target_path 转码后的视频,上传到 Bucket 的指定目录中。

运行角色:勾选“启用”,选择“配置并使用SCF模板运行角色”,将会自动创建并选择关联了 COS、CFS 全读写权限的 SCF 模板运行角色,或选择“使用已有角色”,在下拉列表中选择在 前提条件 中已创建的运行角色,本文以“配置并使用SCF模板运行角色”为例。n 云函数在运行时,会使用运行角色换取临时密钥,操作读取和写入 COS Bucket 的资源。5.触发器配置中,参考以下信息创建 COS 触发器。如下图所示: n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

n主要参数信息如下,其余选项请保持默认设置:触发方式:选择“COS触发”。COS Bucket:选择存储桶。若用的同一个 Bucket 存储源视频和转码后的视频,则需在触发器中配置前缀过滤规则/。例如 demo/。6. 单击完成即可完成函数和触发器创建。

(可选)配置 CFS 挂载

说明若您开通了 CFS 挂载服务,则请参考以下步骤在云函数中同时启用私有网络和文件系统挂载能力。1. 在的云函数“函数配置”页面,单击右上角编辑,参考以下信息进行配置。如下图所示: n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

私有网络:勾选“启动”,并选择私有网络及子网。文件系统:勾选“启用”,选择选择在 前提条件 中已创建的文件系统。2. 单击函数代码页签,进入函数代码编辑页面,修改文件上传路径。如下图所示: n

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技

n注释第76行代码,并在77行添加以下代码。

upload_path = '/mnt/new-'+ key.split('/')[-1]

测试功能

登录 对象存储控制台 ,进入对应的 Bucket 目录下,上传视频文件,并到对应的转码目录下查看,是否生成压缩的视频文件。如下图所示: 说明根据视频大小不同,压缩时间也不同。如果视频过大,则压缩时间也会延长,需要较长的时间才能查看到新视频。

腾讯云云函数(SCF)SCF + COS 实现实时音视频转码-云淘科技



扩展能力

基于本文示例,您还可扩展自动化 CDN 刷新/预热的能力。例如,转码后的视频在回传 COS Bucket 时,可触发新函数执行 CDN 刷新/预热功能。详情请参见 CDN 缓存刷新。您还可借助云函数的高并发能力,实现快速转码或者切片功能。例如,函数 A 进行调度任务,函数 B 进行实际的转码/切片工作。可借助 CFS 挂载能力,轻松实现跨函数的文件共享功能。
官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/149942.html

(0)
上一篇 2023年12月9日 下午1:28
下一篇 2023年12月9日 下午1:28
详情页2

相关推荐

  • 腾讯云TDSQL-C MySQL版功能特性

    数据库调配时间需要多久,是否会影响业务? TDSQL-C MySQL 版调整配置分为计算规格的调整和存储空间的调整。计算规格配置调整非 Serverless 计费模式下,计算规格的配置变更为秒级处理,切换计算规格时,可能会出现3秒 – 5秒的闪断,请确保业务具备重连机制,建议在业务低峰执行此操作。Serverless 计费模式下,算力上下限为自动…

    腾讯云 2023年12月9日
  • 腾讯云云点播集成指引

    环境准备 Flutter 3.0 及以上版本。Android 端开发:Android Studio 3.5及以上版本。App 要求 Android 4.1及以上版本设备。iOS 端开发:Xcode 11.0及以上版本。OSX 系统版本要求 10.11 及以上版本。请确保您的项目已设置有效的开发者签名。 SDK 下载 腾讯云视立方 Flutter 播放器项目的…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 函数计算里quickbi的判断函数是什么?-云小二-阿里云

    函数计算里quickbi的判断函数是什么?mysql中的case when,类似excel中的if函数。我试了quick bi提供的lod函数,结果错误。是有其他的函数/代码能实现吗?

    2023年12月26日
  • 腾讯云容器镜像服务访问权限管理概述同尘

    腾讯云容器镜像服务(Tencent Container Registry,TCR)为企业版实例提供了两种访问权限管理模式,支持实例管理者为使用实例的研发运维人员,及内部 CI/CD 等自动化系统分配独立的访问凭证,并精细化管理用户权限,保障实例的数据安全。 使用场景 人员权限管控 企业购买企业版实例后,一般会有多个业务团队同时使用该实例,并涉及到研发、运维、…

    腾讯云 2023年12月9日
  • 腾讯云内容分发网络CDN故障概览

    您在使用 CDN 的过程中,可能会遇到一些不符合预期或报错的场景,我们整理了一些常见场景的说明和解决方案供您参考,后续我们会持续补充。 场景 场景描述 状态码说明以及处理意见 返回各类状态码。 不同节点缓存内容不一致 对 CDN 同一个资源 URL,不同地域的终端用户访问到 CDN 节点返回的内容不一致。 接入 CDN 后,网页访问速度慢 如果您使用腾讯云 …

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。