Статистика Sox и PHP с использованием shell_exec

В последнее время я столкнулся с некоторыми проблемами с SoX и PHP. Я новичок в использовании инструментов командной строки в PHP, поэтому я постараюсь описать проблему как можно лучше:

Итак имеем следующую ситуацию:

В папке [root]/demo/test.wav есть .wav-файл

Мой php-файл находится в [root]/inc/classes.php

Итак, php выглядит примерно так (действительно минимальный пример)

function wav() {
    $output = shell_exec('sox ..\demo\test.wav -n stat');
    var_dump($output);
    echo "<pre>".$output."</pre>";
}

Итак, если я запускаю функцию (и если я беру действительно огромный .wav-файл), кажется, что она что-то «делает», потому что браузеру требуется много времени для выполнения запроса.

Но все, что я получаю, это "NULL"

Если я изменю команду shell_exec на shell_exec('sox -help'), она сработает.

Итак, мой вопрос: как так? хД

с уважением


person bquarta    schedule 25.02.2014    source источник
comment
Использовать линукс? Или Windows?   -  person Lucas Henrique    schedule 28.04.2014


Ответы (1)


Я тоже бьюсь головой о стену с этим. Вы были единственной задокументированной проблемой, которую я смог найти. Все, что я хотел, это продолжительность mp3.

shell_exec("sox test.mp3 -n stat") // was returning NULL

но

shell_exec("sox --i -D test.mp3") // worked!

Не знаю, почему.

Задержка на три месяца, но это может сэкономить кому-то время.

person user2224693    schedule 18.06.2014
comment
Хе-хе, спасибо. Я сам нашел решение через некоторое время и, честно говоря, совершенно забыл об этом посте :D ... Проблема мне кажется, что то, что возвращает sox, не всегда в одном и том же формате. Что-то приходит как массив, что-то как одно значение. Я считаю, что -n -stat дает вам массив значений, а --i -D просто дает вам одно значение. - person bquarta; 20.06.2014