1

我有一个网络应用程序,允许用户将短广告视频(30 到 60 秒)插入较长的主视频(通常为 45 分钟,但文件大小可能有很大差异)。

整个过程包括:

  • 从 s3 导入所有选定的文件
  • 将每个编码为一个通用方案,ipad-high.
  • 从主视频中提取剪辑。
  • 将主视频中的所有剪辑与广告视频连接起来。

对于要插入主视频的 n 个视频,将提取 n + 1 个剪辑。

由于 Transloadit 没有提供任何关于程序集可能运行多长时间的估计,我正在寻找一种方法来自己估计这个,这样我就可以显示一个进度条或只是一个 ETA,让用户了解他们的工作需要多长时间.

我的第一个想法是确定程序集中所有文件的总大小,并将其保存到某个 redis 数据库,以及完成时间。

随后的运行将使用它作为各种基准,即如果 60GB 需要 50 分钟,那么 25GB 需要多长时间。

redis 上的数据将不断更新(我想我可以将这些值设为各种运行平均值)以使估计值尽可能可靠。

欢迎任何想法,谢谢:)

4

1 回答 1

0

我将转述 Transloadit 关于这个问题的一些对话:

  • 估计装配的持续时间是一个需要解决的复杂问题,因为计算中有多少因素,例如:正在上传的 zip 中有多少文件?将要导入的目录中有多少文件?有多少文件将通过过滤器colorspace: rgb?这些只有在大会运行时才能发现 - 但它们可以极大地改变 ETA
  • 有一个仪表板计划,它将展示带有关于您的程序集信息的图表 - 例如以 Mbit/s 为单位的吞吐量,结合模板和文件大小的历史数据,这可用于粗略估计。
  • 一个建议是,与其使用 ETA,不如实施一个进度条来展示每个步骤或工作何时完成。这样做的缺点当然是准确性,但这可能是您对前置解决方案所需要的全部
  • 您可能也有兴趣研究turbo 模式。如果您使用的是/video/encodeor/video/concat机器人,它可能有助于显着降低编码速度
于 2021-03-08T16:19:44.257 回答