我正在开发一个视频分享网站。我所有的事情都做得很好,除了一个问题。
例如:我上传了一段720p的视频到youtube。但问题是:
youtube在播放器中显示不同质量的视频,如360p、480p等
问:他们会在上传到不同类型的视频时对视频进行编码吗?
或
问: flash/html5播放器有没有能力为同一上传的视频提供不同大小的不同分辨率?
BR
发布于 2015-04-26 15:35:22
他们对视频进行了转码。你需要在用户想要它之前做到这一点,比如上传一个视频,你对它进行转码(转换成不同的质量和格式-你可以选择360p,480p,1080p,1440p和4K的MP4,webm和ogg ),然后访问者加载页面,通过评估他们的硬件和网络,你为他们选择正确的格式。
这样做的一个好方法是使用AWS's Elastic Transcoder服务并将视频存储在S3中--你很快就需要大量的存储空间。
AWS的Elastic代码转换器处理所有这些设置,这是非常合理的:
“只为您使用的内容付费。没有最低费用。定价取决于您输出的内容的持续时间和分辨率。”
看起来他们将10分钟的视频转换为标清格式的收费约为0.15美元,而高清格式的收费则高出一倍。
它们允许您将代码转换为以下格式:

您应该根据您希望支持的旧浏览器/移动设备来规划多种格式的多种分辨率。
发布于 2015-04-26 15:36:49
上传后,YouTube和我所知的所有其他视频托管网站将源视频重新编码为许多不同的格式和分辨率,并将它们全部存储为单独的稳定blob。唯一的另一种选择(动态重新编码)是绝对不可伸缩的,而且效率也不必要。是的,存储每个视频的格式和大小的笛卡尔乘积在存储方面是很繁重的,但存储比CPU便宜。
我推荐观看this excellent YouTube video,了解YouTube是如何工作的(从高层次的角度来看)。它直接解决了你所问的完全相同的问题。
https://stackoverflow.com/questions/29874922
复制相似问题