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.
Are you sure it's not an issue of permissions? Can you write a simple text file to /app/temp
? Is nothing is being read or written at all, it sounds like an issue of permissions. Maybe it's not necessarily a protection design of ImageMagick, but rather heroku or your programming environment?
This directory you're trying to use, it's special in that it contains corrupt or incomplete files - it may have special protections or guards in place, when certain software is running. temp
directories are typically designed (or assumed) to be protected from user interference, as they are only to be used and worked with, by the program itself - not the user's commands of the program.
This question is similar to yours, it might be able to help you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With