【发布时间】:2015-04-26 07:26:31
【问题描述】:
我正在开发一个视频分享网站。我什么都做得很好,但脑子里只有一个问题。
示例:我将 720p 的视频上传到 youtube。好吧,但问题是:
youtube 在播放器中显示不同质量的视频,例如 360p 480p 等
问题:他们会在上传到不同类型的视频时对其进行编码吗?
或
问题:flash/html5 播放器是否有能力为同一个上传的视频提供不同大小的不同分辨率?
BR
【问题讨论】:
我正在开发一个视频分享网站。我什么都做得很好,但脑子里只有一个问题。
示例:我将 720p 的视频上传到 youtube。好吧,但问题是:
youtube 在播放器中显示不同质量的视频,例如 360p 480p 等
问题:他们会在上传到不同类型的视频时对其进行编码吗?
或
问题:flash/html5 播放器是否有能力为同一个上传的视频提供不同大小的不同分辨率?
BR
【问题讨论】:
他们对视频进行转码。您需要在用户想要之前这样做,例如上传视频,您将其转码(转换为不同的质量和格式 - 您可以选择 MP4、webm 和 ogg 中的 360p、480p、1080p、1440p 和 4K),然后访问者加载页面,并通过评估他们的硬件和网络,您可以为它们选择正确的格式。
这样做的一个好方法是使用AWS's Elastic Transcoder 服务并将视频存储在 S3 中 - 您很快就会需要大量存储空间。
AWS 的 Elastic Transcoder 负责设置所有这些,这非常合理:
“只为你使用的东西付费。没有最低费用。定价取决于 关于您输出的内容的持续时间和分辨率。”
看起来他们将 10 分钟的视频转换为标清格式的费用约为 0.15 美元,而高清格式的费用则翻了一番。
它们允许您转码的格式是:
您应该规划多种格式的多种分辨率,具体取决于您想要支持的浏览器/移动设备的旧版本。
【讨论】:
上传后,YouTube 和我所知道的所有其他视频托管网站将源视频重新编码为多种不同的格式和分辨率,并将它们全部存储为单独的稳定 blob。唯一的其他选择(动态重新编码)绝对不可扩展且不必要地低效。是的,存储每个视频的格式和大小的笛卡尔积在存储方面很重,但存储比 CPU 便宜。
我建议您观看this excellent YouTube video 了解 YouTube 的工作原理(从高层次的角度来看)。它直接解决了您所问的完全相同的问题。
【讨论】: