认证故事|我和阿里云学知识

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储OSS,敏感数据保护2.0 200GB 1年
简介: 在使用阿里云服务的过程中,我们可以学到很多设计和流程上的经验,在自己独立开发云服务的时候,可以借鉴很多内容。本文就介绍了自己学习阿里云多媒体处理服务的一次实战经历,学知识可以找阿里云,借鉴经验也可以找阿里云。

前言

在开发一个上传点播系统时,自己第一次接触到了阿里云的 OSS 对象存储服务和媒体处理服务,在这个过程中,我学到了很多相关的经验和知识。

正文

其实,这个上传点播系统是项目中的用户需求的一部分,我们在讨论和设计方案的时候,前后权衡了两种具体的实现方案。接下来详细介绍一下。

第一种方案,全权委托阿里云

这种方案,我们自己的开发工作工作量最少,我们只需要开发一个云存储和多媒体处理的网关服务,把前端页面上传的视频文件和音频文件上传到阿里云的对象存储服务,然后,再调用阿里云的媒体处理服务接口,完成对应媒体文件的转码任务。最后,拿到目标文件地址,返回给播放器满足用户播放需求。方案实现示意图如下:

image.png

虽然该方案的开发工作量少是优势,但是也引出了另外一个问题,那就成本也比较高。为什么这么说呢,我们根据具体的业务场景分析一下其中的原因。首先,考虑到并发转码的费用较高(这是第一个现实问题),因此,用户上传的大量视频文件不可能完成实时转码,并生成目标文件。这样造成的结果就是我们需要保存原始文件一段时间,尽管用户没有下载需求,我们也不能立即删除它们,这就导致了一定量多余存储费用的产生(这是第二个现实问题)。所以,这套方案的成本分布情况是并发转码占大头,原始文件存储占少部分,剩下的是点播费用。

基于第一种方案的上述问题,我们讨论出了第二套实现方案。

第二种方案,半委托阿里云。

这种方案,我们自己的开发工作量稍微会增加一些(其实是很多,哈哈)我们需要自己开发一个多媒体转码服务,将上传的音频文件和视频文件统一转码成 m3u8 文件,同时保证音频编码格式是 aac,视频编码格式是 h264,然后再把 m3u8 和 ts 分片文件上传到阿里云的对象存储服务 OSS,然后把上传文件的存储地址返回给播放器满足用户的播放需求。方案实现示意图如下:

image.png

可以看得出来,这种方案减少了调用阿里云多媒体处理的接口,节省了多媒体处理相关的费用(这一点非常符合公司降本增效的企业文化),解决了方案一中的第一个问题。另外,我们不需要把原始媒体文件上传到 OSS 云存储,而是在本地完成转码,把最终的目标文件上传到 OSS 云存储,这样就解决了方案一中的第二个问题。

结论

综上所述,我们选择了第二种方案,半委托方式。在这个过程中我们体验了阿里云的对象存储服务能力和多媒体处理能力,就是多媒体处理费用稍微有些高,但是这也无可厚非,毕竟这样的定价在市面上也算中规中矩。了解音视频的小伙伴都知道,多媒体转码会消耗大量的服务器CPU资源,费用高也是可以理解的。

目录
相关文章
|
11月前
|
API
使用京东API接口进行支付结算有哪些注意事项?
使用京东API接口进行支付结算时,需遵守京东开放平台规定,保护用户隐私,关注API接口变化,确保应用合法、完整、可靠,正确使用API对接信息,保持API接口调用成功率,及时整改程序缺陷,结算依据以商家后台系统为准。如需帮助,请私信或评论联系。
|
小程序 JavaScript
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
本文介绍了使用 Taro 和 Vue 创建轮播组件的两种方法:一是通过 `<swiper>` 实现,二是利用 Nut UI 的 `<nut-swiper>` 组件实现。
398 2
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
|
12月前
|
存储 JavaScript 前端开发
什么是循环引用现象呢
【10月更文挑战第13天】什么是循环引用现象呢
256 0
|
监控 算法 安全
基于颜色模型和边缘检测的火焰识别FPGA实现,包含testbench和matlab验证程序
本项目展示了基于FPGA的火焰识别算法,可在多种应用场景中实时检测火焰。通过颜色模型与边缘检测技术,结合HSV和YCbCr颜色空间,高效提取火焰特征。使用Vivado 2019.2和Matlab 2022a实现算法,并提供仿真结果与测试样本。FPGA平台充分发挥并行处理优势,实现低延迟高吞吐量的火焰检测。项目包含完整代码及操作视频说明。
|
11月前
|
存储 Java Nacos
Spring Cloud+Nacos+KMS 动态配置最佳实践
本文讲述了 Spring Cloud 应用中结合 Nacos 实现了运行期配置动态更新的功能,以及在此基础上结合 KMS 在不改动代码的情况下对应用使用的敏感配置进行保护,解决将配置迁移到 Nacos 中可能存在的数据安全顾虑,并对其底层工作原理做了简单介绍。
1280 155
|
12月前
ThreeJs给物体添加贴图
这篇文章详细说明了在Three.js中如何给3D物体添加贴图,并展示了实现局部贴图的技术和方法。
526 1
ThreeJs给物体添加贴图
|
存储 设计模式 算法
[C++] static静态成员变量/函数的用法
[C++] static静态成员变量/函数的用法
335 1
|
自然语言处理 安全 机器人
使用RAG-GPT和Ollama搭建智能客服
使用RAG-GPT和Ollama搭建智能客服
915 0
|
Go
Golang语言基础之常量和字面量
这篇文章讲解了Go语言中常量和字面量的概念、声明方式以及使用场景,特别对常量生成器iota的使用进行了详细说明和示例演示。
116 2
|
存储 算法 Java
BitMap介绍
BitMap介绍
98 0