如何在基于云的应用程序上转换视频格式

时间:2015-02-24 12:15:53

标签: video amazon-web-services amazon-ec2 video-encoding

我正在构建智能手机应用程序,该应用程序也应该拍摄短视频并将其发送到像Amazon S3这样的基于云的存储。我在云上也有服务器(即在EC2上)。

让我们说我在应用程序上调整视频文件的大小(就像WhatsApp那样)。我希望将其与其他设备(包括蜂窝和桌面设备)一起交付给其他用户,因此我想我需要将视频转换为其他格式。

使用Amazon Elastic Transcoder似乎非常昂贵(每个视频分钟大约0.015美元)因为我打算在其上存储大量视频文件。

我该怎么办?在我的服务器上使用格式转换程序(也在云端)?

我不想流式播放视频,而是提供类似whatsApp的文件。

2 个答案:

答案 0 :(得分:1)

问题不在于支持多种格式(MP4现在或多或少都支持),而是多比特率/分辨率。同时具有多个比特率允许您利用自适应流媒体。

您需要考虑系统的3个部分:

  1. 转换
  2. 存储
  3. 投放
  4. <强>转换 视频转换的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/