jclem / gifify Goto Github PK
View Code? Open in Web Editor NEWgifify turns movies into gifs.
License: MIT License
gifify turns movies into gifs.
License: MIT License
I often want my mini-screencasts to move faster me, so would be great to have a flag that allows you to change the speed of the resulting GIF. Something like:
# speed up by 50%
gifify -s 1.5 my.mov
I would like to be able to scale down the resolution/size/quality of the video so it doesn't stay so large.
It would be nice to have an option that controls the looping of the output file.
#11's README mentions made me wonder: are you, @jclem open, at some point, to a revamp of the flags? Some changes I've been thinking of making:
-n
the default behavior, or assume the command should be gifify file.mp4 | cloudup
-o
, assume user will redirect (maybe)?-r
and -s
since they are dependent on each other, perhaps something like gifify -r 1.5@30
(1.5x speed, output at 30fps)Maybe others?
Awesome! A simple way to finally convert videos to animated GIFs (or APNGs, by subtly changing a parameter or three), with few commands/arguments to remember and/or fine-tune!
While this is an amazingly clever usage of ffmpeg
piped into ImageMagick, I think that you ought to update the README to explain that you need to have those two tools installed on your system. Oh, and that you need to have something installed that is able to understand sh-like shell script (not PowerShell!) — which should be the case in most Unix and Unix-like systems out there (including WSL).
Granted, for those in a Mac environment (or a Linux environment) using Homebrew, brew install gifify
will immediately figure out those dependencies. But not everybody uses that; Ubuntu doesn't have it in their own package manager (just to give one example).
It's just a thought, really. The script works as intended — if you have all the requirements! — and is complete and perfect and will work "forever", or at least until either ffmpeg
or convert
change their list of parameters/arguments/commands... which is not very likely to happen in the next decade or two.
RVM, gemsets, etc. Would be nice to not have to worry about this, and post to CloudApp some other way.
Following the readme, tried -r 20@2
and it failed:
gifify -r 20@2 -p 640:-1 richcomment.mp4
Exporting movie...
(standard_in) 1: illegal character: @
(standard_in) 1: parse error
Hey hi @jclem following your great gifify, I made https://github.com/vvo/gifify.
It has some advantages on yours, mostly that everything happens in memory instead of using a temp file.
Also more options and I got rid of cloudapp thing.. What do you think?
Getting parse errors with the 30@2 syntax and seeing it still looking for CloudApp.
Desktop gifify -r 30@2 retry.mov
Exporting movie...
(standard_in) 1: illegal character: @
(standard_in) 1: parse error
Making gif...
convert: no images defined `retry.mov.gif' @ error/convert.c/ConvertImageCommand/3230.
Unable to find application named 'CloudApp'```
For example gifify -r 60 -n My\ first\ recording.mov
fails with:
convert: unable to open image `My\ first\ recording.mov': No such file or directory @ error/blob.c/OpenBlob/2657
It would be nice to have this too.
Check for presence of ffmpeg
and cloudapp
commands when installing or running the script.
Converting a 7MB mp4 video creates a 4.8GB temp file, and will hang until operation is cancelled.
It's ugly, no one needs to see it in gifify context. More meaningful messages from gifify should be shown.
Is it possible to show progress? Some conversions take quite a while and it's hard to tell if things are still ongoing.
Would love to use this script. Attempting to convert a small mov file and it just hangs on "making gif...". Any suggestions?
Pers aps it's out of scope, but would be useful to be able to process a bunch of files, in the current dir, or in a given directory. Indeed the workflow is generally (at least in my cases) to convert several files from video to git. O course, I can make my own shell stuff, but don't now how to do that, and would be integrated with gifify which is better :)
A problem that I would have is when I want to handle custom output names, for different files, there is no options to customize file name, depending of original file name, like appending always -S or -M ... to original file name ?
Writing and reading to/from the disk is slow. I would suggest performing operations over a pipe to improve performance:
ffmpeg -loglevel panic -i "$filename" $filter -r $fps -f image2pipe -vcodec ppm - | \
convert +dither -layers Optimize -loop $loop -delay $delay - "${output}.gif"
Conditionally, we could allow data to be written to the disk to preserve memory.
The default integration with cloudapp makes this tool much more specialized. I understand that many people will want to upload their created GIFs to share, but making that the default behavior, and especially only providing that single interface seems counterintuitive.
You've made a great CLI tool for creating GIFs from videos
, and you would attract a much larger following and userbase if it did not come off as a specialty tool for creating GIFs from videos AND uploading them to CloudApp
. It also adds one more dependency to get up and running with the default settings.
Wonderful tool and thank you so much for creating it, but I have no need to share GIFs, nor have I ever heard of CloudApp. I'm sure I am not alone in this stance :)
The integration is an awesome addition, I just wouldn't have it be the default behavior.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.