Unix-скрипт ImageMagick не работает при запуске php shell_exec ()

Я должен создать последовательность переходов изображений, используя, в частности, сценарии Fred ImageMagick FX переходы.

В своем php-коде я изменяю размеры всех изображений, которые я получил, до стандартного размера, затем я переименовываю все эти изображения в что-то вроде pic000001.jpg, pic000002.jpg, pic000003.jpg и т. Д. (Я продолжаю считать с помощью $ count), затем Я делаю:

$frameIndex=0;
$frames=18;

//for all the pic000001.jpg, pic000002.jpg, pic000003.jpg.... do a transition
//between them
for($seq=1;$seq<$count;$seq++){

//here I take a picture and the next(IE pic000001 and pic000002)
echo shell_exec("fxtransitions -e swirl -f $frames -d 20 -p 50 $path/pic".str_pad($seq, 6, '0', STR_PAD_LEFT).".jpg $path/pic".str_pad(($seq+1), 6, '0', STR_PAD_LEFT).".jpg $path/fx%06d.jpg");

//here I rename the temporany frames called
//fx000000.jpg to fx000035.jpg for each transition
//to a common index
for($c=0;$c<($frames*2);$c++){
rename("fx".str_pad($c, 6, '0', STR_PAD_LEFT).".jpg" ,str_pad($frameIndex, 6, '0', STR_PAD_LEFT).".jpg");
$frameIndex++;
}
}

Затем я использую FFMpeg, чтобы объединить все кадры и сделать видео.
Проблема в том, что fxtransition сообщает об ошибке:

--- FILE DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---

(это сообщение, сгенерированное сценарием наверняка), за которым следуют такие сообщения:

Warning: rename(fx000000.jpg,000000.jpg): No such file or directory in /var/www/html/TEST/APP/generateVideo.php on line 168

потому что картинки не были сгенерированы (это показывает, что алгоритм нумерации кадра правильный, поэтому не зацикливайтесь на этом).

Если я открываю терминал на сервере с помощью ssh-соединения и запускаю эту команду, он выдает мне ту же ошибку, если я не использую sudo.
Если я использую sudo на php shell_exec, он не будет работать.
shell_exec (‘whoami’) возвращает apache, а apache является владельцем всех папок и файлов, которые я задействую в этих функциях.

Некоторая помощь, пожалуйста?
Если у вас есть альтернатива скриптам fred’s imagemagick для создания переходных кадров для создания видео, это также будет оценено.

1

Решение

Я столкнулся с этой проблемой при использовании одного из сценариев Fred ImageMagick. Решение состоит в том, чтобы обновить файл сценария (scriptname.sh) с помощью вашего любимого редактора (vim, nano и т. Д.) И установить правильный временный каталог. Увидеть ниже:

# set directory for temporary files
dir="."    # suggestions are dir="." or dir="/tmp"#

В моем случае временная директория была «/ tmp»

# set directory for temporary files
dir="/tmp"    # suggestions are dir="." or dir="/tmp"#
4

Другие решения

Я сталкиваюсь с этой проблемой при использовании textcleaner из сценариев ImageMagick Фреда.
Решение — использовать правильный путь.

В моем случае

dir = «/ var / www / html / textcleaner / images /» # предложения являются dir = «.» или dir = «/ tmp» #

Это должно быть доступно для записи

Также textcleaner.sh также переместится в проект.

-1

По вопросам рекламы [email protected]