- 一、什么是 Serverless
- 二、编写你的第一个 Serverless 应用
- 三、Serverless 应用是怎么运行的
- 四、如何提高应用开发调试和部署效率
- 五、serverless 应用
- 阿里云函数计算
- 腾讯云函数
- 使用 vercel 部署你的应用-推荐
- 六、场景案例
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3.2 基于 Serverless 的音视频处理系统
- 从基础设施的角度来看,基于 Serverless 的音视频解决方案,主要是替换了传统方案中的计算资源,也就是替换了服务器。
- 此外,我们基于 Serverless 平台提供的丰富的触发器,也能简化编程模型。比如以往我们需要用户将视频上传到 OSS 后,再通过接口主动通知服务器进行视频处理,但在 Serverless 架构中,我们可以为函数设置 OSS 触发器,这样只要有文件被上传到 OSS 中,就可以触发函数执行,进而简化了业务逻辑。
下图就是基于 Serverless 的视频处理系统解决方案:
用户将视频上传后 OSS 后,触发函数计算中的视频转码函数执行,该函数对视频进行转码后,将元数据存入数据库,然后将转码后的视频再保存到 OSS 中。
接下来我们就实现一个基于 Serverless 的音视频处理系统,系统主要有以下几个功能:
- 获取视频时长;
- 获取视频元数据;
- 截取视频 GIF 图;
- 为视频添加水印;
- 对视频进行转码。
为了方便你实践,我为你提供了一份示例代码,你可以通过 git 下载查看:
$ git clone https://github.com/poetries/serverless-class $ cd 18/serverless-video
代码结构如下:
. ├── functions │ ├── common │ │ └── utils.js │ ├── get_duration │ │ └── index.js │ └── get_meta │ └── index.js ├── build.js ├── ffmpeg ├── ffprobe ├── package.json └── template.yml
其中 functions 中是函数源代码,common/utils.js 是一些公共方法,get_duration、get_meta 等目录则分别对应的每个具体的功能。build.js 是用来构建函数的脚本。在代码中,我们会使用 FFmpeg 进行视频处理,FFmpeg 是一款功能强大、用途广泛的开源软件,很多视频网站都在用它,比如 Youtube、Bilibili。ffmpeg 和 ffprobe 是 FFmpeg 的两个命令行工具,我们会将其作为依赖部署到 FaaS 平台(函数计算)上,这样在函数中就可以使用这两个命令来处理视频了。
接下来就让我们学习具体如何实现。
由于这几个函数的逻辑基本类似,所以我主要针对“获取视频时长”函数进行讲解,学会了这个函数的实现就很容易理解其他函数了。另外,由于该视频处理系统用到了公共方法及依赖,所以我还会为你介绍如何部署这些函数。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论