为开发亚马逊Web服务上可扩展视频转编码服务器的最佳实践吗?

问题描述 投票:0回答:4
人们认为,开发将允许用户将视频和图像上传到服务器并将其转码并存储在Amazon S3中的应用程序时,最重要的问题是什么?我有几个选择;

1)在处理文件上传的同一服务器上安装FFMPEG,当视频上传并存储在EC2实例上时,请致电FFMPEG进行转换,然后完成后,将文件写入S3桶并处理原件。

这是如何扩展的?当许多用户同时上传时会发生什么?如何一次管理多个流程?我怎么知道何时启动另一个实例并加载平衡此配置?

2)有一台用于处理上传的服务器(更新数据库,重命名文件等)和一台用于执行转编码的服务器。同样,管理多个流程的最佳方法是什么?我应该为此查看Amazon SQS吗?我可以告诉转码服务器从上传服务器获取文件,还是应该将文件复制到转码服务器?我只能将所有文件存储在S3和SQS上,可以从那里阅读。我正在尝试尽可能少的流量。 我正在运行一个Linux盒作为上传服务器,并且在此上运行FFMPEG。

关于建立此类配置的最佳实践的建议将不胜感激。非常感谢

我不认为您每次有人上传用于转编码的文件时都会启动一个新的FFMPEG实例。 取而代之的是,您可能需要启动与拥有数量的CPU数量相同数量的FFMPEG进程,然后排队要转码的输入文件并按照收到的顺序进行操作。 您可以在一台计算机上进行所有操作,我认为接受上传并将其放入队列的服务器将需要很多CPU,并且可能可以在FFMPEG流程中共存。

toepectionderdestion您想扩展到多大的规模(如果您想做的不仅仅是在单台计算机上进行一些FFMPEG进程),您可以轻松地将其进行分配,这就是SQS派上用场的地方。 您可以每个核心运行1个FFMPEG进程,而不是在本地队列中查找数据,而是可以查看SQS。 然后,您可以在不同的机器上根据需要进行尽可能多的转码过程。
amazon-ec2 ffmpeg amazon-web-services amazon-sqs
4个回答
13
投票
不利的一面是,您需要从接受它们的服务器转移到需要转码的服务器的服务器中。 您可以将它们放入S3中,然后将它们从S3中拿出来,但是如果您必须为此付出代价,我不记得我的头顶。 另外,您可以将它们保留在接收到它们的机器的硬盘上,然后将转码过程移到那里以获取原始文件。

您可以检查

piper

。这是我最初为一家巨大娱乐公司制造的产品的开源版本,用于处理他们的视频经过大规模编码。

2
投票

您应该看看mazon弹性transcoder

。它解决了您在问题中提到的几乎所有问题。

1
投票

实际上,有很多方法比您可以用来解决问题: 1使用EC2

CronJobs

1
投票

-2使用AWS lambda服务检测上传到S3存储桶的任何新视频,触发lambda功能以获得大拇指并转码,将输出发送到目标存储桶中。检查这个伟大的工具

@@binoculars

需要一些JS&Gulp的理解,但是非常方便且光滑。 -3使用awstranscoder

。这几乎是昂贵的。如果您要围绕最近的一分钟,那么当您的视频短时,这是一笔巨大的费用。如果您是Netflix或Amazon在转码电影的长时间工作,那么ET会更有意义。

您可以尝试使用ffmpeg作为服务 - 您只需在ffmpeg命令和民意调查结果rendi.dev

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.