Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Переменные окружения для mplayer


Автор: paulfil 27.4.2006, 22:12
В шелле такая команда работает:
mplayer -really-quiet -vo jpeg:quality=50 -ss 10 -frames 4 -nosound -noloop test.wmv >out.txt

Делаю то же из CGI скрипта:
$q="mplayer -really-quiet -vo jpeg:quality=50 -ss 10 -frames 4 -nosound -noloop ${clipfile} >${basedir}/out.txt";
system($q);
Не работает. Пишет что не определена HOME directory.

Когда делаю так:
$ENV{HOME}="${home}";
тоже не работает, но уже продвигается дальше smile Говорит: Win32 LoadLibrary failed to load: avisynth.dll, /usr/local/lib/win32/avisynth.dll, /usr/lib/win32/avisynth.dll

То есть, похоже нужно установить все переменные окружения которые уже установлены, когда я вызываю mplayer из shell. Как это сделать? Скрипт выполняется с правами того же пользователя, что и шелл.
 

Автор: GoodBoy 28.4.2006, 10:17
попробуй или вызывать mplayer с полным путём, н-р: "C:\Program Files\Windows Media Player\mplayer" (или какой он у тебя), или перед вызовом mplayer ... перейти в его домашнюю директорию: chdir("C:\Program Files\Windows Media Player\"); 

Автор: paulfil 28.4.2006, 20:11
Спасибо за ответ!
пробовал и chdir() и system('cd ...') - результат такой же как без этого.

mplayer стоит на сервере под управлением FreeBSD. Просто он умеет использовать dll библиотеки для работы с форматом .wmv

Мне нужно чтобы при вызове mplayer с помощью функции system() переменные окружения были установлены так же, как при вызове mplayer из shell. 

Автор: paulfil 30.4.2006, 10:54
Я нашёл как сделать это с помощью PHP:
shell_exec( "mplayer ..............." );

Подскажите пожалуйста Perl аналог PHP функции shell_exec 

Автор: sharq 2.5.2006, 16:16
paulfil, почитай про exec и обратные кавычки или qx//.

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

Код

my @result = `execute_program 2>&1 &`;


 smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)