gpt4 book ai didi

amazon-ec2 - 在 Amazon Web Services 上开发可扩展视频转码服务器的最佳实践?

转载 作者:行者123 更新时间:2023-12-03 14:56:07 27 4
gpt4 key购买 nike

在开发允许用户将视频和图像上传到服务器并通过 FFMPEG 转码并存储在 amazon S3 中的应用程序时,人们认为最重要的问题是什么?我有几个选择;

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

这是多大的可扩展性?当多个用户同时上传时会发生什么?如何一次管理多个进程?我如何知道何时启动另一个实例并对此配置进行负载平衡?

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

我正在运行一个 linux 机器作为上传服务器,并在其上运行 FFMPEG。

任何有关设置此类配置的最佳实践的建议将不胜感激。非常感谢

最佳答案

我认为每次有人上传文件进行转码时,您都不会想要启动一个新的 FFMPEG 实例。相反,您可能希望启动与您拥有的 CPU 数量相同数量的 FFMPEG 进程,然后将要转码的输入文件排队,并按照收到的顺序进行处理。你可以在一台计算机上完成这一切,我认为接受上传并将它们放入队列的服务器不需要占用太多 CPU,并且可能与 FFMPEG 进程共存。

根据您想要扩展到多大(如果您想在一台机器上执行的不仅仅是几个 FFMPEG 进程),您可以轻松地使其分布式,这就是 SQS 可以派上用场的地方。您可以为每个内核运行 1 个 FFMPEG 进程,而不是在本地队列中查找数据,它可以查看 SQS。然后,您可以在不同的机器上根据需要实例化尽可能多的转码过程。

这样做的缺点是,您需要将原始视频从接受它们的服务器传输到需要对其进行转码的服务器。您可以将它们放在 S3 中,然后将它们从 S3 中取出,但我不记得是否需要为此付费。或者,您可以将它们保存在接收它们的机器的硬盘上,然后让转码过程去那里获取原始文件。

关于amazon-ec2 - 在 Amazon Web Services 上开发可扩展视频转码服务器的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1503900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com