amazon-s3 - 大公司如何有效地存储和提供视频(通过 CDN) - 我不明白数学
问题描述
我正在建立一个课程托管网站 - 我希望我的用户能够上传他们的学生将流式传输的视频。这就是我打算这样做的方式,但我不明白这背后的数学原理。我肯定错过了一些东西。
- 如何存储视频?- AFAIK rn 我可以使用最便宜的对象存储,例如 S3、GCP 等 = 0.005 美元/GB是最便宜的选择。
- 我如何提供这些视频?AFAIK rn 我可以使用 CDN 将视频缓存在边缘并将其提供给学生 = ~ 0.05/GB是最便宜的选择。
现在让我们假设一位老师上传了一个 30 分钟的 1080p 视频,有 10000 名学生会观看。
vid 大小 ~ 1.5GB 对象存储成本 = 0.0075
10,000 名学生将观看它 - 然后将通过 CDN 的数据 = 15000GB
在那个 0.05/GB 的 CDN 定价将是 - 15000GB x 0.05/GB = 750 美元
显然,对于任何托管和提供视频的人来说,这都是负担不起的。
我在这里肯定缺少一些东西(在解决这个问题后几乎准备好感到愚蠢)。或者这实际上是多少钱?
解决方案
这有点昂贵的尺寸,但它在球场上。使用https://mux.com/pricing/上的价格计算器(完全披露,我在 mux.com 工作)大约是您估计的一半。大多数该类型的视频以较低的质量/比特率提供以节省带宽(1.5GB 30 分钟对于您的内容类型来说可能是多余的)。许多您的类型的企业使用第三方提供商(例如 mux.com 我们的竞争对手之一),由于使用模式明显更高,他们可以协商更好的 CDN 价格。
并回答您最初的问题。“大公司是如何做到的”。他们有一个值得的商业模式,他们协商自己的对等协议和/或 CDN 定价,有时甚至完全拥有他们正在使用的 CDN。而且,他们经常亏本经营。
推荐阅读
- javascript - 有没有什么方法可以直接在 Python 中使用 xtermjs 解析器而无需前端渲染?
- android - 德尔福安卓;使网格中的列适合其内容
- math - 我有 0-5 范围内的值,但我需要将它们从 1-5 范围转换
- makefile - cmake:如何使用输出创建命名自定义目标,因此如果输出存在则不会构建
- r - 编辑 R 图上轴上的刻度线标签
- azure - 更改 Azure 分析服务上的导入数据库
- python - Python3:在 docker 容器中运行时 subprocess.call() 找不到文件
- java - 在 Mac M1 上采用 openjdk11 11.0.10 或 11.0.11 不显示 UseContainerSupport
- node.js - 如何将密码与哈希密码数组进行比较
- ffmpeg - FFMPEG mpeg2_qsv 编码器 idr_interval 属性未通过 av_set_opt 公开