Intereting Posts
Есть ли многоразовый маршрутизатор / диспетчер для PHP? Я хочу изменить значение другой ячейки таблицы при изменении значения первой ячейки Пользовательская команда IMAP в php Могут ли выражения PHP PDO принимать имя таблицы или столбца в качестве параметра? В Laravel любой недостаток использования App :: make (''), а не инсталляции конструктора? Chrome не получает данные с сообщением signed_request Замена для файла :: mime () в Laravel 4 (для получения типа mime из расширения файла) Обработка ошибок PHP-формы в таблице MySQL Каковы уязвимости в прямом использовании GET и POST? php Mysql Группирование и упорядочение пользовательских сообщений вместе Как я могу войти в Amazon с PHP cURL отключить трассировку стека PHP PHP – Не удалось открыть поток: нет такого файла или каталога Как вернуть переменные PHP на успех AJAX / jQuery POST В чем разница (при применении к моему коду) между INT (10) и INT (12)?

Запуск dir2ogg из скрипта php

Я пытаюсь написать php-скрипт, где он будет загружать mp3-файл и автоматически создавать его копию в формате ogg. Моя идея – использовать exec () или shell_exec () для запуска dir2ogg из php. Это мой код:

$command = 'dir2ogg /var/www/bais-mordechai-laravel/public/uploads/"'.$filename.'"'; $output = shell_exec($command); 

Результат, который я получаю от этого, – это только первая строка ожидаемого вывода:

 dir2ogg 0.11.8 (2009-08-04), converts audio files into ogg vorbis. 

Когда я запускаю это непосредственно из командной строки (как пользователь root), я получаю следующее:

 dir2ogg 0.11.8 (2009-08-04), converts audio files into ogg vorbis. INFO: Converting "/var/www/bais-mordechai-laravel/public/uploads/Track 02.mp3" (using mpg123 as decoder)... [wav.c:371] warning: Cannot rewind WAV file. File-format isn't fully conform now. Encoding standard input to "/var/www/bais-mordechai-laravel/public/uploads/Track 02.ogg" at quality 3.00 Encoding [ 0m15s so far] / [wav.c:371] warning: Cannot rewind WAV file. File-format isn't fully conform now. Done encoding file "/var/www/bais-mordechai-laravel/public/uploads/Track 02.ogg" File length: 3m 50.0s Elapsed time: 0m 15.7s Rate: 14.6600 Average bitrate: 91.1 kb/s 

Таким образом, кажется, что функция возвращается до завершения команды.

Я думал, что, возможно, сценарий закончил сам по себе, но нет файла ogg, созданного, как я предполагаю.

Поэтому мой вопрос: как мне заставить это работать, или как я могу отлаживать это?

ОБНОВЛЕНИЕ: Используя совет Мехрана, вот мой вывод stderr:

 Array ( [stdout] => dir2ogg 0.11.8 (2009-08-04), converts audio files into ogg vorbis. [stderr] => Traceback (most recent call last): File "/usr/bin/dir2ogg", line 673, in <module> main() File "/usr/bin/dir2ogg", line 641, in main conf = read_opts() File "/usr/bin/dir2ogg", line 120, in read_opts in_path = [prefix for prefix in os.environ['PATH'].split(os.pathsep) if os.path.exists(os.path.join(prefix, command))] File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__ raise KeyError(key) KeyError: 'PATH' [return] => 1 )