I created a nodejs application hosted on heroku which uses imagemagick. I am doing this operation:
require('child_process').exec(`convert -quiet -delay 1 output.avi ${gif}`);
This should convert output.avi
(which is present) to a gif file. In this case, gif
is "/app/temp/gifs/xstrycatdq.gif"
. This command works perfectly on my local windows machine. As I use the path
module to get a variable with path.join
and __dirname
.
I have installed heroku buildpack:
The error I am receiving is:
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.
It seems that the /tmp/ directory can't be written to or anything. I also tried to mkdir /tmp/
but bash tells me that this dir already exists.
I have also tried changing the imagemagick's temp directory with the environment variable by doing export MAGICK_TMPDIR="temp"
.
Any help?
Edit: The variables are now absolute.
bash
? – Revenuechild_process
module to execute bash commands. – Narvaeztemp/gifs
folder exists. I think the problem is ImageMagick reading from /tmp/. – Narvaezisattr
returns this:-------------e-- /tmp
andgetfacl
cannot be found on heroku. – Narvaezwhereis ffmpeg
return valid ffmpeg path? – Deem