vvo / gifify

😻 Convert any video file to an optimized animated GIF.
ISC License
6.19k stars 314 forks source link

Partial compatibility with avconv, except for the "to" option #12

Closed dannguyen closed 9 years ago

dannguyen commented 9 years ago

I'm working from an Ubuntu 14.04 installation that is using libav/avconv and I won't be able to install ffmpeg.

So I was able to symlink avconv to ffmpeg, and most of the basic functionality of giffify works, including:

                    gifify test.mp4 --resize:300:-1 --from 5 -o test.gif

However, when specifying the to option, I get this error:

convert.im6: no decode delegate for this image format `/tmp/magick-d4kfVlVz' @ error/constitute.c/ReadImage/544.
convert.im6: no images defined `gif:-' @ error/convert.c/ConvertImageCommand/3044.

The error comes from imagemagick though, so maybe it has nothing to do with ffmpeg (ffmpeg is just my first guess, given my hack with libav)

avconv version 9.16-6:9.16-0ubuntu0.14.04.1 ImageMagick 6.7.7-10 2014-03-06 Q16 LCDF Gifsicle 1.82

vvo commented 9 years ago

Please give me the mp4 and failing command line so I can test on my system @dannguyen

dannguyen commented 9 years ago

This works (text flag):

curl -s http://stash.compciv.org/multimedia/spinning-dogs.mp4 | \
   gifify -o piped-puppies-test.gif --text "puppies"

This works

curl -s http://stash.compciv.org/multimedia/spinning-dogs.mp4 |   \
    gifify -o piped-puppies-test-2.gif --from 0

This does not:

curl -s http://stash.compciv.org/multimedia/spinning-dogs.mp4 | \
   gifify -o ~piped-puppies-test-3.gif --from 0 --to 1

Error

convert.im6: no decode delegate for this image format `/tmp/magick-WqtUFS0P' @ error/constitute.c/ReadImage/544.
convert.im6: no images defined `gif:-' @ error/convert.c/ConvertImageCommand/3044.
vvo commented 9 years ago

piped-puppies-test-3

gifify file.mp4 -o ~piped-puppies-test-3.gif --from 0 --to 1

So it works but not the way you expect, you have to first download the mp4 if you want to cut from 0 to 1.

Because ffmpeg will get the stream of your mp4, will try to cut from 0 to 1 and because your are streaming the download to gifify, it fails. Surely because when ffmpeg launches, it does not have the full file already.

Could you try to MP4Box -hint file.mp4, upload it and try again ? This should place the required ffmpeg information at the start of the file, it may work then, dunno.

Thanks,

dannguyen commented 9 years ago

Thanks for looking into this...your solution (to not pipe directly from curl) did work, but only when I tried it from OS X (which has ffmpeg). Trying it on my Ubuntu system, I get the same error has before.

One thing I just noticed...on my Ubuntu system, I'm using gifify 2.1.0. On OS X, I'm on 2.0.0 (which is the latest via Homebrew).. If I have some time later today I'll try to run 2.0.0 on my Ubuntu system and see if the issue might be isolated to that.