作者rrr0832 (rrr0832)
看板PHP
标题[请益] 用PHP虚拟主机跑ffmpeg跑到一半就停了
时间Tue Apr 30 17:34:05 2024
<?php
ignore_user_abort(true);
set_time_limit(0);
ini_set('memory_limit','2048M');
shell_exec('ffmpeg -y -i input.mov -c copy -c:v libx264 -c:a aac output.mp4 2>
lo
?>
我用上述的PHP码跑ffmpeg
一开始都正常在跑
但最後输出的output.mp4只有convert到一半 ffmpeg就停了
可能是因为什麽原因?
记忆体不足? 还是执行序占满了?
因为我的PHP执行环境是租的云端虚拟主机
有没有可能是ffmpeg在执行到一半时资源耗尽所以自动被kill掉了?
我看log.txt也是进度跑到一半就断掉没了
请问该怎麽处理?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.12.239 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1714469647.A.8B8.html
1F:→ p2k: 可能是被背景监控程序砍了,虚拟主机为了整体服务品质,04/30 20:00
2F:→ p2k: 大都有背景监控程序04/30 20:00
3F:→ gpmm: 你的意思是,纯 command line 可以跑完,但是进 PHP 无法吗04/30 23:21
Linux的Cmd 不知道
不过windows版的cmd 倒是都能完全convert
由於我的虚拟主机商是用Linux (Apache)
不晓得是不是过了一个timeout就会自动kill
还是真的记忆体或资源耗尽所以被系统kill掉了
抑或是如一楼所言有背景监控程式被kill掉
不得而知
总之就是莫名其妙在convert的途中无声无息的被中断掉
4F:→ shadowjohn: 看要不要改用cuda 与 hevc_nvenc ,也许有支援04/30 23:22
5F:→ shadowjohn: 转快点转完就过关,再没招就联络主机网管或影像切片04/30 23:23
6F:→ shadowjohn: 不过至少试完crontab的作法再决定04/30 23:24
Cron job我也试过,有时候一样会被中断掉
看来可能是主机商设的限制吧(不晓得)
※ 编辑: rrr0832 (42.76.102.177 台湾), 05/01/2024 12:06:06
7F:→ duckfly: Apache也有超时设置,与php要同时设置 05/03 20:29