【问题标题】:ffmpeg encoding freezes when executed from a script (php/c#/etc.) but not from the command lineffmpeg 编码在从脚本(php/c#/etc.)而不是从命令行执行时冻结
【发布时间】:2012-08-03 15:06:12
【问题描述】:

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

我尝试了不同的视频,这些视频没有损坏,也没有使用任何奇特的编解码器或任何东西。

从脚本(即 PHP 中的 exec())运行时进程冻结但直接从命令行运行时冻结的原因可能是什么?有什么建议吗?

【问题讨论】:

    标签: php ffmpeg exec


    【解决方案1】:

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

    对于 IIS (web.config):

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

    对于其他服务器google一下

    maximum execution time <webservername>
    

    【讨论】:

    • 当时我实际上正在使用 IIS。最终我切换到 Apache(出于其他原因)并最终得到了一个完全不同的代码库,最终运行良好,所以我不能说这是否是解决方案,但我怀疑它可能是。无论哪种方式,感谢您的意见。
    【解决方案2】:

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

    一些问题:

    • 您正在通过 Windows 控制台测试命令行; PHP 是否也在 Windows 环境中运行?
    • PHP 转码过程是否显示任何 CPU 使用率?是用尽 CPU 还是根本不显示?
    • exec() 调用到底是什么样的?

    【讨论】:

      猜你喜欢
      • 2013-01-14
      • 2020-07-02
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多