【问题标题】:Nodejs upload and process videoNodejs上传和处理视频
【发布时间】:2021-07-19 22:28:32
【问题描述】:

我正在为我的应用程序寻找最佳方法。 我有视频上传功能。 前端将发送带有附加视频文件的upload/video请求,然后我的后端将处理此请求,将减小视频的大小和质量(使用@ 987654322@ ),然后会根据视频的第一帧创建缩略图,然后将视频和他的缩略图上传到AWS S3存储桶,最后将压缩后的视频和缩略图返回到前端。 我遇到的问题是,所有用于压缩创建缩略图上传的(后端)任务都非常耗时,有时(取决于视频大小和持续时间)我的 nginx 服务器将返回 504 Gateway Time-out,这是正常的。问题是:

如何处理这种情况。我应该使用网络套接字来通知前端处理视频的进度,还是我不需要等到所有这些操作都完成。 我的目标是拥有功能,我可以上传视频并显示一些视频处理进度条,用户可以“播放”应用程序,而不需要等到视频处理成功

【问题讨论】:

    标签: node.js file-upload stream aws-sdk video-processing


    【解决方案1】:

    似乎这是一个架构问题。这是我喜欢的解决方案之一。

    1. 使用队列并将进度存储在某个键值数据库中。您可能对队列不熟悉,因此我建议您查看一些与队列相关的教程。当您使用亚马逊时,您可能会对 sqs 感兴趣。在 Rails 中,您可以检查 sidekiq。 Laravel 有 laravel 地平线。

    2. 虽然每个队列都是进度设计应用程序,但它可以报告它。比如 50% 60% 等等。

    3. 也处理队列中的缩略图等。

    如果你想扩大规模,你可以简单地增加队列的数量。我认为这就是其他人的处理方式。

    【讨论】:

    • 感谢您的回复。将研究队列。非常感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2017-05-25
    • 2015-06-12
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2019-06-18
    • 2013-04-23
    相关资源
    最近更新 更多