1

我正在开发一个用户可以上传一些私人视频的项目。我将它们直接上传到 S3 并通过 CloudFront 分发它们。一切都很好并且工作正常,但我读到转码文件也很好,因为它可以创建更小的文件,适用于各种用户设备,这也可能导致交付内容的成本降低。

我的问题如下。我决定只允许用户上传 mp4,因为我不知道所有格式,而且无论如何我们都需要一个快速的 alpha 版本。如果他们上传 mp4 文件,转码工作是否有意义,或者无论使用何种设备,我都应该提供原始文件吗?

如果转码器在这种情况下有意义,那么转码作业的最佳预设是什么?

老实说,我完全可以将原始 mp4 文件提供给我的用户,而且我不太相信转码文件占用的额外 S3 空间加上添加的转码价格会为我节省任何东西,但我更关心的是用户体验比节省一些额外的钱。

我已经在一个带有移动预设(iphone 4s)的文件上运行了一个测试转码器,并创建了一个(很多)更大的文件(3.2Gb vs 680Mb),所以我真的不知道我在做什么。

4

1 回答 1

2

转码的原因有:

  1. 从未知用户提交的内容标准化为您知道用户的设备/播放器将支持的格式的简短列表。
  2. 转换为 ABS(自适应比特率流)格式,例如 HLS 或 Smooth。
  3. 在比特率/分辨率和整体大小方面控制输出(以及因此播放文件)。

你为什么在乎?

1) 原始文件可能适用于用户,也可能不适用于用户。人们可能会上传不受广泛支持的格式或编解码器。通过转码(甚至按照您的建议转码为简单的 mp4),您至少可以标准化格式的长尾。

2) ABS 格式,如 HLS 或 Smooth 可能有两个好处。对用户而言,这意味着您不会强迫每个人都达到最低(或最高)的质量公分母。如果您为 MP4 文件选择了太高的质量并提供服务,那么使用低带宽或功率不足的设备的用户将获得缓冲和紧张的体验。如果您只生成低比特率/分辨率版本,连接良好的用户在其高清电视上观看时会看到质量不佳的视频。ABS 可让您生成多个质量点,而不是实时生成,客户端会根据实际情况进行调整并选择它可以播放的最佳质量。

对您而言,ABS 意味着与渐进式下载 UX(通过 MP4 获得)不同,您只需为用户实际用于观看您的视频的带宽付费,从而可能节省您的交付成本。您的内容越长,这一点就越重要。对于 60 年代的视频,它的影响当然比 90m 小。播放 MP4 文件时,客户端可能会在用户停止观看 10% 的视频时最终下载整个文件。使用 HLS/Smooth,客户端只缓冲几个块(大约 6-30 秒)。

3、即使你对 MP4 没问题(progressive DL UX),转码会让你控制文件的大小。在某些情况下,仅使用输入文件可能会产生非常差的体验。想象一下,我上传了我的 GoPro 4K 视频,但我尝试通过 3g 网络在我的 4.0.0 Android 设备上播放……转码到更合理的比特率/分辨率将使您接触到更多用户并提供更好的用户体验。

于 2015-02-28T18:22:52.090 回答