gpt4 book ai didi

php - 如何使用 PHP 和 ffmpeg 在后台转换视频

转载 作者:行者123 更新时间:2023-12-04 23:09:09 26 4
gpt4 key购买 nike

我允许用户上传视频,然后使用 ffmpeg 进行转换。视频需要很长时间才能转换,这通常会导致错误。我已经完成了我应该从哪里开始的研究,但没有运气。

基本上我想要做的是允许用户上传视频,然后显示一条消息,说视频正在处理中,你会在可用时收到通知。与此同时,我希望视频在幕后进行转换,并允许用户离开页面甚至关闭浏览器。我正在使用 Windows 服务器。

我怎样才能做到这一点?

最佳答案

以下是如何使用调度系统(例如 Cron)创建自己的队列的基本步骤:

  • 创建数据库表queue包含 (id, created_at, file_path, id_user, result, error) . file_path包含要处理的上传视频的位置,结果是null处理前,然后 true/false之后取决于成功,如果失败 error包含任何消息。如果合适的话,用户表的主键也可以保存在这里。
  • 每分钟,运行一个 Cron 程序来检查队列中是否有任何未处理的项目。
  • 如果有项目在等待,请遍历其中一些并运行您的视频转换代码。您可能希望限制这一点,以便一次处理不超过五个项目,并且任何更多排队的项目都必须等待新的 cron 运行。
  • 如果旧副本已经在运行,则在您的 cron 脚本开始时,您需要提前退出。您可以使用 ps aux | grep (scriptname) 的输出如果您在类似 *nix 的操作系统中运行,请在此处提供帮助。

  • 在您的 Web 应用程序中,您需要稍微修改工作流程 - 而不是期望立即处理视频,您需要:
  • 通过创建新的数据库行请求视频转换
  • 重定向到说明视频创建正在进行的页面
  • 使用 Web 重定向、AJAX 或 Web 套接字定期重新检查转换状态。

  • 这种方法对于无法安装自己的队列处理器的共享主机非常有用。但是,如果您在 VPS 或云系统上,您可能希望查看 Gearman 或 one of many other queueing systems .它们比上面的要复杂一些,但具有更多用于管理工作队列的功能。

    关于php - 如何使用 PHP 和 ffmpeg 在后台转换视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480969/

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