Laravel FFMPEG 视频转换无需等待队列

标签 laravel ffmpeg laravel-queue ffmpeg-php

我正在 中构建应用程序Laravel (v9) 用户上传视频的地方,这些视频被转换为 MP4 (显示进度百分比),缩略图被创建......等
上传视频后,我会在后台调度一个新作业,该作业运行我所有的 FFMPEG 命令,并将视频标记为 准备好了在数据库上一次 FFMPEG 已完成。
但是,如果有多个用户上传多个视频,这会让他们等待,如 Laravel 的 queue 一个一个地执行每个作业。
我怎样才能使视频立即转换而无需等待上一个工作完成?

最佳答案

您可能总是想要使用队列,但您可以考虑增加在任何给定时间运行的队列工作人员的数量。看看Laravel docs on running your queue via Supervisor并考虑设置 numprocs值足够高以支持您需要处理的并发负载。
需要注意的是,每个队列工作人员都需要 CPU/内存,因此如果将并发工作人员的数量设置得太高,可能会超出服务器的容量。
您可以使用this article on php-fpm tuning帮助确定您的服务器容量需求。本文的重点是调整 Web 服务器,但您可以使用相同的技术来确定队列工作程序正在使用多少内存,并从那里确定一次可以合理地运行多少工作程序。
另一种选择是查看 Sidecar在 AWS Lambdas 中运行您的 ffmpeg 进程,而不是完全依赖队列。 This project可以帮助您入门……

关于Laravel FFMPEG 视频转换无需等待队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71236860/

相关文章:

php - 如何在 laravel 5.1 队列中使用除默认值之外的其他 QUEUE_DRIVER?

php - laravel 队列守护进程邮件停止运行并出现 SSL 错误

php - Laravel optional() 是如何工作的?

laravel - 按不工作分组 - Laravel

ffmpeg - FFMPEG 是否支持 RTSP 认证?

ffmpeg - 网络服务器上视频编码的可扩展性问题

php - 无法使用 Laravel 6.9 安装依赖项

audio - ffmpeg 在视频播放后添加音乐到视频播放

php - Laravel:无法对​​有效负载进行 JSON 编码。错误代码:5

Laravel 5.4 通过异步队列保存模型