我尝试使用ffmpeg和php将大型(40mb)mov文件转换为mp4。
但它在服务器上给出了504超时错误。我可以在不更改set_time_limit
的情况下修复此问题吗?
这是我的PHP代码。
shell_exec($this->getFFmpegPath() . ' -i ' . $path . ' -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -preset slower -crf 18 -vf "scale=trunc(in_w/2)*2:trunc(in_h/2)*2" ' . $convertedPath . '.mp4');
那么,关于如何在没有超时的情况下转换它的任何想法?任何帮助将不胜感激。
答案 0 :(得分:1)
您可能希望在后台运行转换。我发现like this可以解决这个问题,但请对该主题进行更多调查。然后,您可以允许用户刷新以查看该过程是否已完成。
它也可以提供更好的用户体验(然后更好地查看页面加载很长一段时间。连接中有很多地方可能会认为它是超时:php引擎,web服务器,代理,浏览器,取决于下文。
此外,您应该非常小心shell_exec
。网上有人滥用它对你的机器做任何他们想做的事的可能性非常高。也许不是你今天使用它的方式(取决于$path
和$convertedPath
来自哪里),但也许在将来允许用户指定结果文件名的代码更新中