作者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/m.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