我正在构建智能手机应用程序,该应用程序也应该拍摄短视频并将其发送到像Amazon S3这样的基于云的存储。我在云上也有服务器(即在EC2上)。
让我们说我在应用程序上调整视频文件的大小(就像WhatsApp那样)。我希望将其与其他设备(包括蜂窝和桌面设备)一起交付给其他用户,因此我想我需要将视频转换为其他格式。
使用Amazon Elastic Transcoder似乎非常昂贵(每个视频分钟大约0.015美元)因为我打算在其上存储大量视频文件。
我该怎么办?在我的服务器上使用格式转换程序(也在云端)?
我不想流式播放视频,而是提供类似whatsApp的文件。
答案 0 :(得分:1)
问题不在于支持多种格式(MP4现在或多或少都支持),而是多比特率/分辨率。同时具有多个比特率允许您利用自适应流媒体。
您需要考虑系统的3个部分:
<强>转换强> 视频转换的CPU密集程度足以让您想要转换视频一次并存储结果。选择3-6比特率/分辨率,以满足您的应用需求,并将您收到的所有视频转换为这些格式。
您可以使用Elastic Transcorder,Zencoder或您自己的角色。滚动你自己肯定会很复杂。您需要将其构建为运行多个实例的作业队列类型系统,以处理转换工作。
<强>存储强> 转换后,您需要存储您的文件。如果您使用的是AWS产品,那么S3将会发挥作用。
投放强> 如果您获得大量流量,这可能是您项目中成本最高的方面。利用流媒体可以在一定程度上降低成本,因为您不需要下载整个文件。 Cloudfront支持使用S3或其他源作为源直接下载或流式传输。
答案 1 :(得分:1)
您还可以查看本教程,了解基于云的自适应流媒体内容转码(MPEG-DASH,HLS)以及如何在S3 / CloudFront上进行部署:http://www.bitcodin.com/blog/2015/02/create-mpeg-dash-hls-content-for-amazon-s3-and-cloudfront/