2014-01-21 85 views
0

我正在開發一個移動應用程序,該應用程序允許用戶上傳視頻,上傳視頻後轉換爲mp4格式,我正在使用一個shell腳本來達到這個目的,腳本工作正常我們的最後一臺服務器,但我們切換我們的服務器,現在它已停止工作,Apache的日誌文件正在打印。Centos:TERM環境變量未設置

[Tue Jan 21 00:57:37.003944 2014] [:error] TERM environment variable not set. 
[Tue Jan 21 00:57:37.148531 2014] [:error] ./script.sh: line 3: ffmpeg: command not found 
[Tue Jan 21 00:57:37.148794 2014] [:error] script.sh: line 4: ffmpeg: command not found 

script.sh的內容是

#!/bin/bash -p 
clear 
ffmpeg -i $filename -strict experimental -ar 22050 converted.mp4<br> 
ffmpeg -itsoffset -1 -i converted.mp4 -vframes 25 -filter:v scale="min(500\, iw):-1" thumbnail.png 

我打電話使用

shell_exec("script.sh 52567afa374c61381399290.mp4"); 

任何幫助的腳本形式PHP將不勝感激。

感謝

+0

兩件事情。爲什麼你要做'清除'(猜測'TERM'錯誤來自這裏),如果你真的在服務器上登錄並運行'type ffmpeg',你會得到什麼(猜測它可能不存在,或者在它使用的任何路徑中找不到) ?另外,是「$文件名」設置爲任何東西? – BroSlow

+0

ffmpeg已安裝並正確配置,當我從SSH運行相同的命令時,命令執行成功,清除只是在執行前清除控制檯,我會嘗試刪除並再次運行。 – TilalHusain

+1

如果只有TERM錯誤與清除有關,可能不會更改任何內容。也可以使用'ffmpeg'的完整路徑,使用'shell_exec(「bash script.sh 52567afa374c61381399290.mp4」);'我想你需要將'$ filename'切換到'「$ 1」'(儘管我會 – BroSlow

回答

0

錯誤是

  • clear需要處理這樣一個終端引起TERM錯誤(bash的-p 一般應該修復它,但clear是不是真的需要在這裏反正)
  • 路徑在shell_exec期間未正確設置,因此ffmpeg需要 才能指定完整路徑,以便bash能夠找到它。