Я создал приложение nodejs, размещенное на heroku, которое использует imagemagick. Я выполняю эту операцию:
require('child_process').exec(`convert -quiet -delay 1 output.avi ${gif}`);
Это должно преобразовать output.avi
(который присутствует) в файл gif. В этом случае gif
есть "/app/temp/gifs/xstrycatdq.gif"
. Эта команда отлично работает на моей локальной машине Windows. Поскольку я использую модуль path
для получения переменной с path.join
и __dirname
.
Я установил heroku buildpack:
Ошибка, которую я получаю:
Command failed: convert -quiet -delay 1 output.avi /app/temp/gifs/xstrycatdq.gif
convert: DelegateFailed `'ffmpeg' -nostdin -v -1 -vframes %S -i '%i' -vcodec pam -an -f rawvideo -y '%u.pam' 2> '%Z'' @ error/delegate.c/InvokeDelegate/1919.
convert: UnableToOpenBlob `magick-93R4VJcemPz0z1.pam': No such file or directory @ error/blob.c/OpenBlob/2705.
convert: NoImagesDefined `/app/temp/gifs/xstrycatdq.gif' @ error/convert.c/ConvertImageCommand/3257.
Кажется, что каталог/tmp/не может быть записан ни к чему. Я также пытался mkdir /tmp/
, но bash сообщает мне, что этот каталог уже существует.
Я также попытался изменить каталог tempememy temp с переменной окружения, выполнив export MAGICK_TMPDIR="temp"
.
Любая помощь?
Изменить: переменные теперь абсолютные.