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

How to convert video format on cloud based application

我正在构建一个智能手机应用程序,它还可以拍摄一段短视频并将其发送到基于云的存储,例如 Amazon S3。我在云端也有服务器(即在 EC2 上)。

假设我在应用程序上调整了视频文件的大小(就像 WhatsApp 所做的那样)。我希望通过其他设备(手机和台式机)将它传送给其他用户,所以我想我需要将视频转换为其他格式。

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

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

我不想流式传输视频,而是想在 whatsApp 中提供文件。

问题不在于支持多种格式(现在到处都或多或少地支持 MP4),而是多种 bitrates/resolutions。还具有多个比特率允许您利用自适应流。

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

  1. 转化
  2. 存储空间
  3. 送货

转化 视频转换 CPU 足够密集,您希望转换一次视频并存储结果。选择 3-6 bitrates/resolutions 将满足您的应用程序需求并将您收到的所有视频转换为这些格式。

您可以使用 Elastic Transcorder、Zencoder 或扮演您自己的角色。滚动你自己的规模肯定会很复杂。您需要将其构建为作业队列类型系统 运行 多个实例来处理转换工作。

存储空间 转换后,您需要存储文件。如果您使用的是 AWS 产品,这就是 S3 发挥作用的地方。

送货 如果您获得大量流量,这可能是您项目中成本最高的方面。利用流媒体可以在一定程度上降低成本,因为您不需要下载整个文件。 Cloudfront 支持使用 S3 或其他源作为源的直接下载或流式传输。

您还可以查看本教程,了解基于云的自适应流媒体内容转码(MPEG-DASH、HLS)以及如何在 S3/CloudFront 上部署它:http://www.bitcodin.com/blog/2015/02/create-mpeg-dash-hls-content-for-amazon-s3-and-cloudfront/