2011-04-27 77 views
0

我使用的ffmpeg的PHP上传视频,并从的ffmpeg-php和了shell_exec

“OGV” 视频转换, “MP4”, “AVI”, “flv” 和 “奥格”, “ MPG”, “WMV”, “ASF” 和 “MOV”

格式

“的flv”, “奥格” 和 “FLV” 格式。

 $command1='ffmpeg -i '.$Source." -ar 44100 -ab 128k -s wvga -aspect 4:3 -f FLV -y ".$dest; 
     $command2="ffmpeg -i ".$Source." -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -threads 10 -s wvga -aspect 4:3 -f mp4 -y ".$dest; 
     $command3="ffmpeg -i ".$Source." -acodec libvorbis -ab 128k -ac 2 -vcodec libtheora -threads 10 -s wvga -aspect 4:3 -f ogg -y ".$dest; 
     @shell_exec($command1.";".$command2.";".$command3); 

.MOV这是行不通的应用,没有错误的显示虽然当当的.ogv视频应用这些命令它工作正常,但:

我做这个当我将这个命令粘贴到终端时,它工作正常。

提示:脚本由cron作业运行。

有没有关于这个问题的建议?

回答

0

在转换发生之前,脚本很可能没有足够的时间。

增加脚本的执行时间。

虽然它不是推荐的生产解决方案。您可能需要运行后台进程来执行转换,并使用PHP脚本来上传视频。

+0

或脚本内存不足 – Devraj 2011-04-27 12:05:28

+0

对不起,我忘了提及这个脚本是由cron作业运行的,所以我猜它与执行时间无关 – 2011-04-27 13:30:48

+0

我猜想它的更多环境。在Cron中运行时,可能找不到ffmpeg – Devraj 2011-04-27 23:41:05

0
  1. 当你在crontab之外运行问题部分会发生什么?

  2. 您是否将您的crontab项的输出保存到文件?即

    59 12 1 1 * {myPhpScript; }> /tmp/myPhpScript.log 2> & 1` ...

(闭合 '}' 前述分号是关键的)

此捕获任何stdout或stderr消息发送到日志文件。

我希望这会有所帮助。

P.S.因为你似乎是一个新手,如果你得到一个可以帮助你的答案,请记得把它标记为已接受,并且/或者给它一个+(或 - )作为有用的答案。