ffmpeg编码在从脚本(php / c#/ etc。)执行时冻结,但不是从命令行执行

时间:2012-08-03 15:06:12

标签: php ffmpeg exec

我已尝试通过PHP脚本使用ffmpeg进行编码,但该过程在某个时刻冻结。当通过Windows中的命令行运行相同的命令时,它编码就好了。

我尝试过不同的视频,这些视频没有损坏,也没有使用任何异国情调的编解码器或任何东西。

当从脚本(即PHP中的exec())运行时进程冻结的原因可能是什么,而不是直接从命令行运行时?有什么提示吗?

2 个答案:

答案 0 :(得分:1)

我遇到过类似的问题。对我来说,我的网络服务器有一个最长的执行时间。

对于IIS(web.config):

<system.web>
    <httpRuntime executionTimeout="180" />
</system.web>

对于其他服务器谷歌

maximum execution time <webservername>

答案 1 :(得分:0)

我认为这与管道有关。即,FFmpeg输出重定向到一个永远不会被另一个进程耗尽的管道,因此FFmpeg / PHP进程阻塞。

有些问题:

  • 您正在通过Windows控制台测试命令行; PHP是否也在Windows环境中运行?
  • PHP转码过程是否显示任何CPU使用情况?是最大化CPU还是根本不显示?
  • exec()调用的确切含义是什么?