我允许用户上传视频,然后使用 ffmpeg 进行转换。视频需要很长时间才能转换,这通常会导致错误。我已经完成了我应该从哪里开始的研究,但没有运气。
基本上我想要做的是允许用户上传视频,然后显示一条消息,说视频正在处理中,你会在可用时收到通知。与此同时,我希望视频在幕后进行转换,并允许用户离开页面甚至关闭浏览器。我正在使用 Windows 服务器。
我怎样才能做到这一点?
最佳答案
以下是如何使用调度系统(例如 Cron)创建自己的队列的基本步骤:
queue
包含 (id, created_at, file_path, id_user, result, error)
. file_path
包含要处理的上传视频的位置,结果是null
处理前,然后 true/false
之后取决于成功,如果失败 error
包含任何消息。如果合适的话,用户表的主键也可以保存在这里。 ps aux | grep (scriptname)
的输出如果您在类似 *nix 的操作系统中运行,请在此处提供帮助。 在您的 Web 应用程序中,您需要稍微修改工作流程 - 而不是期望立即处理视频,您需要:
这种方法对于无法安装自己的队列处理器的共享主机非常有用。但是,如果您在 VPS 或云系统上,您可能希望查看 Gearman 或 one of many other queueing systems .它们比上面的要复杂一些,但具有更多用于管理工作队列的功能。
关于php - 如何使用 PHP 和 ffmpeg 在后台转换视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480969/