看板 PHP 關於我們 聯絡資訊
<?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://www.ptt.cc/bbs/PHP/M.1714469647.A.8B8.html
p2k: 可能是被背景監控程序砍了,虛擬主機為了整體服務品質,04/30 20:00
p2k: 大都有背景監控程序04/30 20:00
gpmm: 你的意思是,純 command line 可以跑完,但是進 PHP 無法嗎04/30 23:21
Linux的Cmd 不知道 不過windows版的cmd 倒是都能完全convert 由於我的虛擬主機商是用Linux (Apache) 不曉得是不是過了一個timeout就會自動kill 還是真的記憶體或資源耗盡所以被系統kill掉了 抑或是如一樓所言有背景監控程式被kill掉 不得而知 總之就是莫名其妙在convert的途中無聲無息的被中斷掉
shadowjohn: 看要不要改用cuda 與 hevc_nvenc ,也許有支援04/30 23:22
shadowjohn: 轉快點轉完就過關,再沒招就聯絡主機網管或影像切片04/30 23:23
shadowjohn: 不過至少試完crontab的作法再決定04/30 23:24
Cron job我也試過,有時候一樣會被中斷掉 看來可能是主機商設的限制吧(不曉得) ※ 編輯: rrr0832 (42.76.102.177 臺灣), 05/01/2024 12:06:06
duckfly: Apache也有超時設置,與php要同時設置 05/03 20:29