【问题标题】:ffmpeg-php and shell_execffmpeg-php 和 shell_exec
【发布时间】:2011-08-13 19:21:28
【问题描述】:

我正在使用 ffmpeg-php 上传视频并从

转换视频

“ogv”、“mp4”、“avi”、“flv”、“ogg”、 “mpg”、“wmv”、“asf”和“mov”

格式为

“flv”、“ogg”和“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);

.ogv 视频上应用这些命令时,它可以正常工作,但在 .MOV 上应用时,它不起作用并且没有错误显示,尽管当我将命令粘贴到终端它工作正常。

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

对这个问题有什么建议吗?

【问题讨论】:

    标签: php linux shell terminal ffmpeg


    【解决方案1】:

    脚本很可能在转换发生之前就没有时间了。

    增加脚本的执行时间。

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

    【讨论】:

    • 或者脚本内存不足
    • 对不起,我忘了说这个脚本是由 cron 作业运行的,所以我猜它与执行时间无关
    • 我猜它的环境更多。在 Cron 中运行时可能找不到 ffmpeg
    【解决方案2】:
    1. 当您在 crontab 之外运行问题部分时会发生什么?

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

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

    (结束 '}' 前面的分号很关键)

    这会将任何标准输出或标准错误消息捕获到日志文件中。

    我希望这会有所帮助。

    附:由于您似乎是新用户,如果您得到对您有帮助的答案,请记住将其标记为已接受,和/或给它一个 +(或 -)作为有用的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2012-07-29
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多