exec + ffmpeg. Проблема с конвертированием

artnik7

Новичок
Установил ffmpeg y себя на локалке (Win7 + Denwer). Проверял через PHP установлен ли модуль. Вывело что все ок. Хотя, если набрать в командной строке ffmpeg, то пишет "ffmpeg не является внутренней командой..."

Пробовал скриптом переконвертировать файл 1.mp3 в несуществующий 2.mp3 таким образом
PHP:
$in = 'Z:\\home\\norsk\\www\\mp3\\tmp\\1.mp3';
$new= 'Z:\\home\\norsk\\www\\mp3\\tmp\\2.mp3';
exec('ffmpeg -i "' . $in . '" -ar 44100 -ac 2 -ab 128k -y "' . $new . '"', $output);
print_r($output);
Возвращает пустой массив, а сам файл не конвертируется.
Путь пробовал прописывать с разными слешами...

В чем может быть причина? Я в командной строке чайник.
 

artnik7

Новичок
Понял как сделать тоже самое в командной строке:
PHP:
Z:\usr\bin\ffmpeg\ffmpeg.exe -i Z:\1.mp3 -ar 44100 -ac 2 -ab 128k -y Z:\2.mp3
Так работает. Но с PHP по прежнему не понятно как конвертировать...
 

Gremboloid

инженера Гр...
т.е. если при вызове из PHP, даже если указать абсолютные пути не работает?
PHP:
exec('Z:/usr/bin/ffmpeg/ffmpeg.exe -i "' . $in . '" -ar 44100 -ac 2 -ab 128k -y "' . $new . '"', $output);
 

artnik7

Новичок
Да, так работает. Но хотелось бы сделать так чтобы скрипт не был привязан к этому пути Z:/usr/bin/ffmpeg/ffmpeg.exe. Ведь екзешник на разных серверах лежит в разных дерикториях...
 

Gremboloid

инженера Гр...
Добавьте путь "Z:/usr/bin/ffmpeg/" до ffmpeg.exe в системную переменную PATH (Панель управления\Все элементы панели управления\Система - Изменить параметры - Свойства системы\Дополнительно\Переменные среды\Системные переменные)
после этого можно не указывать полный путь
 

artnik7

Новичок
Все-равно работает только если полный путь прописать...:(
 

artnik7

Новичок
Может нужно комп перезапустить? Я когда устанавливал ffmpeg то в system32 копировал дрова
 

Gremboloid

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

artnik7

Новичок
Теперь денвер перестал запускаться. Пишет:
По неизвестным причинам не удается подключить виртуальный диск.
Не сработала команда: subst Z: "C:\Webservers"
Продолжение работы невозможно.
Блин... Я же вроде никаких файлов не заменял при установки ffmpeg... Сейчас буду гуглить.
Gremboloid, спасибо за помощь!
 

Gremboloid

инженера Гр...
Возможно это связано с тем что инициализация системных переменных происходит ДО создания виртуального диска. Попробуйте в path прописать путь реальный C:\Webservers\usr\bin\ffmpeg\
 

artnik7

Новичок
Изменил Path, перезагрузил комп, все-равно выдает ошибку.
Подключил диск напрямую через Пуск -> Выполнить -> subst Z: "C:\WebServers". Но теперь при старте денвер выдает другую ошибку http://rghost.ru/39514901.view
 

Ragazzo

TDD interested
LOL сколько гемора с вирт. диском, вместо того чтобы просто поставить apache/nginx etc за 10 минут и кинуть папку php. :D
 

artnik7

Новичок
Может path назад вернуть? Только я не помню что там было прописано...:(
 

artnik7

Новичок
У меня сейчас стоит PATH ....... C:\WebServers\usr\bin\ffmpeg\ . Путь прописан правильно
 

artnik7

Новичок
Ладно, пусть уже так будет с полным путем exec('Z:/usr/bin/ffmpeg/ffmpeg.exe -i ... Когда буду переносить на хост то буду исправлять. Еще раз спасибо!
 

Gremboloid

инженера Гр...
вам надо было добавить, а не заменить. добавляют новый путь через ";"

У меня в win7 x86 по умолчанию
path = C:\Program Files\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Windows Live\Shared
 
Сверху