Я должен создать последовательность переходов изображений, используя, в частности, сценарии 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 для создания переходных кадров для создания видео, это также будет оценено.
Я столкнулся с этой проблемой при использовании одного из сценариев 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"#
Я сталкиваюсь с этой проблемой при использовании textcleaner из сценариев ImageMagick Фреда.
Решение — использовать правильный путь.
В моем случае
dir = «/ var / www / html / textcleaner / images /» # предложения являются dir = «.» или dir = «/ tmp» #
Это должно быть доступно для записи
Также textcleaner.sh также переместится в проект.