【问题标题】:Save Sox output stats info with shell_exe使用 shell_exe 保存 Sox 输出统计信息
【发布时间】:2014-10-31 00:33:46
【问题描述】:

我为此发疯了。我使用 sox 来转换文件、修剪它们、应用一些效果等等。

我正在使用 php 脚本来调用程序,它工作正常,除非我尝试检索输出信息,例如获取文件的统计信息并将其保存在变量中:

<?php
exec("/usr/bin/sox uploads/jingle.wav -n stat", $outputrms);
                var_dump($outputrms);
?>

//also tried

<?php
$outputrms = shell_exec("/usr/bin/sox uploads/jingle.wav -n stats");
                var_dump($outputrms);
?>

总是得到 NULL 响应或空数组。如果我转到命令行,它会完美显示:

             Overall     Left      Right
DC offset   0.003469  0.003469  0.003469
Min level  -0.971375 -0.971375 -0.971313
Max level   0.999969  0.999969  0.999969
Pk lev dB      -0.00     -0.00     -0.00
RMS lev dB    -14.37    -14.37    -14.37
RMS Pk dB      -5.94     -5.94     -5.94
RMS Tr dB     -66.86    -66.86    -66.86
Crest factor       -      5.23      5.23
Flat factor     0.00      0.00      0.00
Pk count           7         7         7
Bit-depth      16/16     16/16     16/16
Num samples     136k
Length s       3.082
Scale max   1.000000
Window s       0.050

我做错了什么?

问候

【问题讨论】:

    标签: php command-line statistics shell-exec sox


    【解决方案1】:

    似乎 sox 将输出作为警告输出而不是标准输出发送。我刚刚在代码末尾添加了 2>&1 并解决了它。

    <?php
    exec("/usr/bin/sox uploads/jingle.wav -n stat", $outputrms 2>&1);
                    var_dump($outputrms);
    ?>
    

    【讨论】:

      【解决方案2】:
      exec('sox assets/test.mp3 -n stat 2>&1', $output);
      print_r($output);
      

      使用 2>&1 没问题,但我不知道为什么...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多