Git Product home page Git Product logo

lettier / gifcurry Goto Github PK

View Code? Open in Web Editor NEW
1.3K 33.0 54.0 84.68 MB

😎 The open-source, Haskell-built video editor for GIF makers.

Home Page: https://lettier.github.io/gifcurry

License: BSD 3-Clause "New" or "Revised" License

Haskell 91.83% Makefile 1.60% Shell 1.42% CSS 5.14%
gtk animated-gifs haskell gui imagemagick gif ubuntu linux functional-programming gifs gif-library gif-maker fedora arch-linux gstreamer appimage gifmaker video video-editing

gifcurry's Introduction

Gifcurry

Tell me about Gifcurry. 😃

Gifcurry is the open-source, Haskell-built video editor for GIF makers. Load a video, make some edits, and save it as a GIF—Gifcurry makes your life easy! 😎 Most video formats should work, so go wild. And since it's made with Haskell, you know it's good. 💯

For the command line averse, there is a GUI. 🖱️ Die-hard terminal aficionado? Gifcurry has you covered with its CLI. 🖥️ And for the Haskell programmers out there, there is also a library 📚 API.

Gifcurry can save your creation as a GIF or as a video. 📼 So if you hate 😠 GIFs with a passion—no problem! Just select "Save as a Video" and do your part to rid 🗑️ the world of GIFs.

Enjoy memes? :trollface: Great! Gifcurry can add text all over your GIF. You can change the font, size, color, position, outline, rotation, and the timing. Create the next viral meme with Gifcurry.

Did you know Gifcurry slices...and dices? 🍴 You can crop ✂️ from the left, the right, the top, and/or the bottom. With Gifcurry, you can slice up some tasty GIFs.

Is Gifcurry another Electron app? No way! Gifcurry is 100% #ElectronFree. No need to download more RAM 🐏, Gifcurry is light as a feather. Run 🏃 it all day, run it all year—you'll never notice.

"So...Gifcurry is just FFmpeg and ImageMagick?"—nope. Gifcurry hides all the goofy details so you can concentrate on what matters—the almighty 🙌 GIF.

Become a GIF master 💪 with Gifcurry!

What do I need Gifcurry for? 🤔

☑️ Want to show off that new UI feature in a pull request? Gifcurry.
☑️ Your template doesn't allow video in the hero image? Gifcurry.
☑️ No GIF of your favorite movie scene? Gifcurry.
☑️ Need a custom animated emoji for Slack? Gifcurry.
☑️ Can't find the perfect GIF for that reply-all email? Gifcurry.
☑️ Your README needs a GIF? Gifcurry.
☑️ That presentation slide could use some animation? Gifcurry.
☑️ Video doesn't auto play on iOS? Gifcurry.
☑️ Time to promote your indie game? Gifcurry.
☑️ Need to add subtitles to a video? Gifcurry.

Gifcurry comes in handy 🔧 for all sorts of scenarios.

What does the GUI look 👀 like?

Gifcurry GUI

How do I use the command line interface (CLI)? 🖥️

gifcurry_cli [OPTIONS]

FILE IO:
  -i --input-file=FILE   The input video file path.
  -o --output-file=FILE  The output GIF file path.
  -m --save-as-video     If present, saves the GIF as a video.
TIME:
  -s --start-time=NUM    The start time (in seconds) for the first frame.
  -e --end-time=NUM      The end time (in seconds) for the last frame.
OUTPUT FILE SIZE:
  -w --width=INT         How wide the output needs to be. Height will scale
                         to match.
  -f --fps=INT           How many frames per second the output should have.
  -c --color-count=INT   How many colors are used in the output.
  -d --dither            If present, uses dither.
CROP:
  -L --left-crop=NUM     The amount you wish to crop from the left.
  -R --right-crop=NUM    The amount you wish to crop from the right.
  -T --top-crop=NUM      The amount you wish to crop from the top.
  -B --bottom-crop=NUM   The amount you wish to crop from the bottom.
TEXT:
  -t --text-file=FILE    Either a text overlays YAML or SRT subtitles file
                         path.
  -? --help              Display help message
  -V --version           Print version information

Visit https://github.com/lettier/gifcurry for more information.

Got a CLI example?

gifcurry_cli \
  -i ~/Videos/video.webm \
  -o ~/tmp/test \
  -s 150 \
  -e 151 \
  -t ~/tmp/text-overlays.yaml \
  -w 800 \
  -f 15 \
  -c 100 \
  -d
  -L 0.1 \
  -R 0.1 \
  -T 0.1 \
  -B 0.1 \
  -m

         ▄▄▄▄▄▄▄▄                                                                             
     ▄▄████    ▀▀███▄                                                                         
      ████▀   ▄    ▀███           ▄     ▐██▌   ▄███▄                                          
  ▄   ▐███   ████   ▀███      ▄███▀▀██        ███                                             
 ▐█▌   ██   ▐███     ████    ███        ▐██  █████▌ ▄█████ ▐██▌  ██▌  ██▄██▌ ██▄██▌ ██▌   ███ 
 ███   ▐▌   ███      ▐███▌   ███  ████▌ ▐██   ██▌  ███     ▐██▌  ██▌  ███▀   ███▀   ▐██  ███  
 ████      ███▀  ▐█   ███▌   ███    ██▌ ▐██   ██▌  ███     ▐██▌  ██▌  ██▌    ██▌     ██▌▐██   
 ▐███▄    ▐██▌   ██    ██     ███▄▄▄██▌ ▐██   ██▌   ███▄▄█  ███▄███▌  ██▌    ██▌      ████▌   
  ▀███   ▀███   ▐███   ▀        ▀▀▀▀▀    ▀▀   ▀▀      ▀▀▀     ▀▀▀     ▀▀     ▀▀        ███    
    ███▄   ▀    ████▌                                                                ███▀     
      ▀███▄▄   █████▀                                                                         
          ▀▀▀▀▀▀▀                                                                             


Gifcurry 6.0.1.0
(C) 2016 David Lettier
lettier.com

[INFO] Here are your settings.

  - FILE IO:
    - Input File:    /home/Videos/video.webm
    - Output File:   /home/tmp/test.webm
    - Save As Video: Yes
  - TIME:
    - Start Second: 150.000
    - End   Second: 151.000
  - OUTPUT FILE SIZE:
    - Width:       800px
    - FPS:         15
    - Color Count: 100
    - Dither:      True
  - TEXT:
    - Text: This is a test.
      - Font:
        - Family:  Sans
        - Size:    30
        - Style:   Normal
        - Stretch: Normal
        - Weight:  800
      - Time:
        - Start Second: 150.000
        - End   Second: 151.000
      - Translation:
        - Origin: NorthWest
        - X:      0.0
        - Y:      0.0
      - Rotation:
        - Degrees: 0
      - Outline:
        - Size: 10
        - Color: rgb(1,100,10)
      - Fill:
        - Color: rgb(255,255,0)
  - CROP:
    - Left:   0.100
    - Right:  0.100
    - Top:    0.100
    - Bottom: 0.100

[INFO] Writing the temporary frames to: /home/.cache/gifcurry/gifcurry-frames30450
[INFO] Adding text.
[INFO] Converting the frames to the specified color count.
[INFO] Saving your video to: /home/tmp/test.webm
[INFO] All done.

What is the format for the text overlays YAML file? 🔢

Here's an example file:

- text: This is an example.
  fontFamily:   Sans
  fontStyle:    Oblique
  fontStretch:  Normal
  fontWeight:   30
  fontSize:     800
  origin:       NorthWest
  xTranslation: 0.0
  yTranslation: 0.0
  rotation:     20
  startTime:    5.000
  endTime:      8.000
  outlineSize:  7
  outlineColor: rgba(1,100,10,1.0)
  fillColor:    rgba(255,255,0,0.0)
- text: This is another example.
  fontFamily:   Serif
  fontStyle:    Italic
  fontStretch:  Condensed
  fontWeight:   30
  fontSize:     800
  origin:       Center
  xTranslation: 10.0
  yTranslation: 11.0
  rotation:     20
  startTime:    5.000
  endTime:      8.000
  outlineSize:  7
  outlineColor: rgb(1,11,100)
  fillColor:    rgba(255,0,0,0.0)

fontStyle can be:

  • Any
  • Italic
  • Normal
  • Oblique

fontStretch can be:

  • Any
  • Condensed
  • Expanded
  • ExtraCondensed
  • ExtraExpanded
  • Normal
  • SemiCondensed
  • SemiExpanded
  • UltraCondensed
  • UltraExpanded

origin can be:

  • North
  • NorthEast
  • East
  • SouthEast
  • South
  • SouthWest
  • West
  • NorthWest

outlineSize ranges from 0 to 10.

outlineColor and fillColor can either be rgba(red,green,blue,alpha) or rgb(red,green,blue) where red, green, and blue range from 0 to 255 and alpha ranges from 0.0 to 1.0.

How do I get a copy of Gifcurry? 💾

Gifcurry works on Linux, Mac, and most likely Windows. Make sure you have FFmpeg, GStreamer, ImageMagick, and GTK+ installed on your machine. To find the latest version of Gifcurry, head over to the releases page.

I use Linux. 🐧

If you use Linux then the easiest way to grab a copy of Gifcurry is by downloading the AppImage. After you download the AppImage, right click on it, select permissions, and check the box near execute. With that out of the way—you're all set—just double click on the AppImage and the GUI will fire right up.

You can also download and install the AppImage using the handy AppImage install script (right click and save link as). Download the script, right click on it, select permissions, check the box near execute, and double click on it. You should now see Gifcurry listed alongside your other installed programs.

If you want the CLI then download the prebuilt version for Linux, extract it, open up your terminal, cd to the bin folder, and then run gifcurry_cli -?. As an added bonus, inside the bin directory is the GUI version too so now you have both.

I use Arch/Manjaro/Antergos/pacman. 👻

If you'd rather install Gifcurry via pacman then copy the following into your terminal.

cd
sudo pacman -S git ffmpeg imagemagick gstreamer gst-plugins-base-libs gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav
cd "$HOME/Downloads"
git clone https://aur.archlinux.org/gifcurry.git
cd gifcurry
makepkg -sic
cd "$HOME/Downloads"
rm -rf gifcurry
cd
gifcurry_cli -?
gifcurry_gui

I use Ubuntu/Mint/Debian/Deepin/snap. 🌀

Gifcurry is available as a snap from Snapcraft. If you don't already have snap, go ahead and install it using the command sudo apt install snapd.

You can install the Gifcurry snap right from your browser or via the command line. For the command line route, paste the following into your terminal.

snap install gifcurry
sudo snap connect gifcurry:removable-media
gifcurry

The Gifcurry snap only comes with the GUI. If you want the CLI, download the prebuilt version for Linux.

I use Mac. 🍎

Mac users can download the Mac install script by holding down control, clicking the link, selecting "Save Link As...", selecting where Downloads, and clicking save. To run the script, hold down the command key and press the space bar. Now type terminal and hit enter. After the terminal comes up, copy and paste the following.

cd ~/Downloads
chmod +x gifcurry-mac-install-script.command
./gifcurry-mac-install-script.command

After running the install script, a shortcut to both the Gifcurry GUI and CLI will be on your desktop.

I'm a Haskell developer. 🔨

If you develop Haskell programs then the easiest way to build Gifcurry is with Haskell Stack. Copy the following into your terminal.

git clone https://github.com/lettier/gifcurry.git
cd gifcurry
stack setup
stack install alex happy
stack install gtk2hs-buildtools
stack install hsc2hs
stack install
$HOME/.local/bin/gifcurry_cli -?
$HOME/.local/bin/gifcurry_gui

What dependencies does Gifcurry use? 🤔

To run Gifcurry. 🏃

To build Gifcurry. 👷

What is the license? 📜

For license information, see LICENSE.

Who wrote Gifcurry? ©️

(C) 2016 David Lettier
lettier.com

gifcurry's People

Contributors

lettier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gifcurry's Issues

Error compiling tcIfaceGlobal not found

Hi,

When i try to go step by step on ArchLinux I got:

[257 of 295] Compiling GI.Gio.Interfaces.File ( GI/Gio/Interfaces/File.hs, dist/dist-sandbox-a7e8621a/build/GI/Gio/Interfaces/File.o )
ghc: panic! (the 'impossible' happened)
  (GHC version 8.2.2 for x86_64-unknown-linux):
	tcIfaceGlobal (local): not found
  You are in a maze of twisty little passages, all alike.
  While forcing the thunk for TyThing IsFile
  which was lazily initialized by initIfaceCheck typecheckLoop,
  I tried to tie the knot, but I couldn't find IsFile
  in the current type environment.
  If you are developing GHC, please read Note [Tying the knot]
  and Note [Type-checking inside the knot].
  Consider rebuilding GHC with profiling for a better stack trace.
  Contents of current type environment: []
  Call stack:
      CallStack (from HasCallStack):
        prettyCurrentCallStack, called at compiler/utils/Outputable.hs:1133:58 in ghc:Outputable
        callStackDoc, called at compiler/utils/Outputable.hs:1137:37 in ghc:Outputable
        pprPanic, called at compiler/iface/TcIface.hs:1696:23 in ghc:TcIface

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

cabal: Leaving directory '/tmp/cabal-tmp-21053/gi-gio-2.0.14'
cabal: Error: some packages failed to install:
gi-gdk-3.0.14-2UWeXbeXddiJR6ytUd1GFl depends on gi-gdk-3.0.14 which failed to
install.
gi-gdkpixbuf-2.0.14-10Jx3qdJL7b3aEX0Wr16yN depends on gi-gdkpixbuf-2.0.14
which failed to install.
gi-gio-2.0.14-LM7WK7NCSjNGCbzq7t5cwc failed during the building phase. The
exception was:
ExitFailure 1
gi-gtk-3.0.18-1axBgPHA9tvJQZ2ovyeBy0 depends on gi-gtk-3.0.18 which failed to
install.
gi-pango-1.0.15-IZiiWsYKF681zKYSMOyXQn failed during the building phase. The
exception was:
ExitFailure 1
make: *** [makefile:74: arch_os_install_dependencies] Błąd 1

SRT Subtitle Files Not Working

SRT Subtitle files do not work on the CLI (no error reported). Tried with multiple SRT files that work fine when used in VLC.

When "Uploading" an SRT file in the GUI the following GTK error appears in the console:

(<unknown>:47434): Gtk-CRITICAL **: 12:41:12.927: gtk_widget_grab_default: assertion 'gtk_widget_get_can_default (widget)' failed

Gifcurry snap won't launch on Ubuntu 20.04 Wayland

Hello,
I get the following error message when I launch gifcurry gui 6.0.0 snap from the command line on ubuntu 20.04 wayland and it doesn't launch. It works fine on X

(gifcurry_gui:39816): Gdk-WARNING **: Wayland compositor does not support xdg_shell interface, not using Wayland display
(gifcurry_gui:39816): Gtk-WARNING **: cannot open display: :0

I think adding DISABLE_WAYLAND: 1 to the snapcraft.yaml environment to fallback to XWayland could fix it. I tried testing it but I'm having a lot of trouble getting the snap to build.
Thanks

FFMPEG question, is there a limit version?

Hi!, i would like to know if gifcurry need a specific version of FFMPEG, actually the main page says a version major or equal to 2.8.15, i have 4.1.3..., too far.

Thx.

Cannot parse YAML file

I'm trying to run the CLI version of Gifcurry and keep running into the following error: [WARNING] Could not parse the /PATH/TO/text-overlays.yaml YAML file!

Here is the file in question:

- text: This is a test.
      fontFamily:   Sans
      fontStyle:    30
      fontStretch:  Normal
      fontWeight:   Normal
      fontSize:     800
      origin:       NorthWest
      xTranslation: 0.0
      yTranslation: 0.0
      rotation:     0
      startTime:    1.000
      durationTime: 8.000
      outlineSize:  10
      outlineColor: rgb(1,100,10)
      fillColor:    rgb(255,255,0)

Are there any obvious errors that jump out at you?

(FWIW, I think that including an example YAML file in the docs would be really helpful.)

Thanks for a cool package!

Fails to run on deepin 15.4.1

jingle@jingle:~/Downloads$ ./gifcurry-2.2.0.1-x86_64.AppImage

** (gifcurry_gui:22406): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

(gifcurry_gui:22406): Gtk-WARNING **: Could not load image 'gifcurry-icon.png': Couldn't recognize the image file format for file '/tmp/.mount_gifcurjx8MxN/usr/share/x86_64-linux-ghc-8.0.2/Gifcurry-2.2.0.1/data/gifcurry-icon.png'

(gifcurry_gui:22406): Gtk-WARNING **: Could not load a pixbuf from /org/gtk/libgtk/icons/16x16/status/image-missing.png.
This may indicate that pixbuf loaders or the mime database could not be found.

(gifcurry_gui:22406): Gtk-WARNING **: Could not find the icon 'document-open-recent-symbolic-ltr'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
http://icon-theme.freedesktop.org/releases
**
Gtk:ERROR:/build/gtk+3.0-NmdvYo/gtk+3.0-3.22.11/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
Aborted
jingle@jingle:~/Downloads$ uname -a
Linux jingle 4.9.0-deepin11-amd64 #1 SMP PREEMPT Deepin 4.9.40-2 (2017-08-12) x86_64 GNU/Linux

Feature requests for "Width & Quality" section: output width + framerate

Hello,

I think the "Width & Quality" section on the GUI can be improved in 2 points:

  • The width in input should be the width of the output gif. Now the width of the ouput gif is the input width multiplied by the crop ratio.
  • Allow to set the framerate exactly (e.g. 7.5 FPS), instead of put it in the "Quality" dropdown list as it is now

Would make the app even better imho.

Cheers!

Note: I use gifcurry-4.0.0.0-x86_64.AppImage on Ubuntu 18.04

Ubuntu20.04 gifcurry

Aloha!
Not a coder here.
Sent here from the gifcurry website page.
In a fresh install of ubuntu 20.04, I can get neither the appimage to open (executing file as a program; gifcurry-6.0.0.0-x86_64.AppImage)
nor can i get gifcurry function as an installed app through "ubuntu software" ("FFmpeg is missing decoders. Cannot make GIFs for some videos)

Can anyone help me get gifcurry to work in any way at all?

Cheers!

-Dale

Let user select font

Hello,

I think a nice feature for this tool would be to let the user select the desired font for captions. Since you use ImageMagick to add the captions, this could just be specified as a parameter to IM.

Cheers!

Won't save the GIF

I chose many different folders - some on the file system, others on NTFS drives and still won't save it. Only shows a message saying saving failed.
Снимка от 2019-04-30 17-23-16

FFMPEG Missing decoders

Hello,

On Ubuntu 18.04, the snap gives me an error when I'm trying to open a video.
"FFmpeg is missing decoders. Cannot make gifs for some videos." FFmpeg is installed on the system, with extra codecs. I checked, OBS works well.

Thanks

No video preview Ubuntu 18.04

Gifcurry displays the following warning when browsing for a input file:

gtksink not found. No video preview available. Install the gstreamer 1.0 bad plugins version 1.8 or higher.

apt-cache policy gstreamer1.0-plugins-bad
gstreamer1.0-plugins-bad:
  Installed: 1.14.0-1ubuntu1
  Candidate: 1.14.0-1ubuntu1
  Version table:
 *** 1.14.0-1ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
        100 /var/lib/dpkg/status

I'm using the Appimage build.

Request: Add gifcurry to a Mac package repository

Homebrew or Macports would be greatly appreciated so mac users can stay up to date.

If unwilling to maintain packages on that platform, perhaps post instructions here for someone else to take up the task?

no decode delegate error

I'm using gifcurry appimage on an ubuntu 18.04. I'm trying to convert an mp4 file, which I can preview and save as video (webm format) but not as gif. syslog error shows this:

org.gnome.Nautilus[3527]: convert: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/556.
org.gnome.Nautilus[3527]: convert: no images defined `/home/robert/Documents/Desenvolupament/Presentacions/reveal.js/assets/devel/bcex.gif' @ error/convert.c/ConvertImageCommand/3300.

Any idea of what's going on?

Thanks

Ubuntu app image issue

System Info

Linux Antoine-Gaming 5.5.8-050508-generic #202003051633 SMP Thu Mar 5 16:37:27 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux


Distributor ID:	Ubuntu
Description:	Ubuntu Focal Fossa (development branch)
Release:	20.04
Codename:	focal
$ ./gifcurry-6.0.0.0-x86_64.AppImage

(gifcurry_gui:7257): GLib-GIO-ERROR **: 10:48:52.526: Settings schema 'org.gtk.Settings.FileChooser' does not contain a key named 'show-type-column'
Trace/breakpoint trap (core dumped)

double snap permissions for "play and record sound"

I am using the snap (4.0.0.0) provided in Software on Ubuntu 18.04, and I noticed that the "Permissions" menu shows "Play and record sound" twice, the first one off by default, the second one on by default (see screenshot). If I turn the first one on, it is back to off when I reopen the "Permissions" menu. If I turn the second one off, it is back to on when I reopen the "Permissions" menu.

Is this something weird with snaps, or does it need fixing in Gifcurry?

Cheers

screenshot from 2018-10-22 08-50-40

non issue RE: yaourt

As a long time Archer i would politely ask that you do not advise folk to install and use yaourt, if one must use an AUR wrapper then cower is the way to go, see here for my ( and arch communitys) reasoning.
thanks for the code and sorry for the noise
Regards

Doubt?

Do you support online video conversion? For example, the m3u8 online format

wrong placement of text

The text added into GIF seems to be placed on the other side. As if it was counted as offset from one side of the frame but the wrong one. See attached screenshot. This was produced with the 6.0.0.0 AppImage.

Screenshot_2019-11-20_00-16-59

Not working on Ubuntu 18.04

Hi, your app looks great - unfortunately I can not use it right now.

I am running Ubuntu 18.04, and I have tried to install it from GNOME Software and from Snappy. Both results are the same:

  • The GUI looks like this with no way (to change its size)

screenshot from 2018-11-14 00-27-10

  • On startup there was an error about "FFMPEG missing decoders".

I get the following errors when running from a shell:

(gst-plugin-scanner:5693): GStreamer-WARNING **: Failed to load plugin '/snap/gifcurry/6/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstassrender.so': libass.so.5: cannot open shared object file: No such file or directory

(gst-plugin-scanner:5693): GStreamer-WARNING **: Failed to load plugin '/snap/gifcurry/6/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopenexr.so': libIlmImf-2_2.so.22: cannot open shared object file: No such file or directory

(gst-plugin-scanner:5693): GStreamer-WARNING **: Failed to load plugin '/snap/gifcurry/6/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstassrender.so': libass.so.5: cannot open shared object file: No such file or directory

(gst-plugin-scanner:5693): GStreamer-WARNING **: Failed to load plugin '/snap/gifcurry/6/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopenexr.so': libIlmImf-2_2.so.22: cannot open shared object file: No such file or directory

(gifcurry_gui:5247): GLib-GIO-WARNING **: Error creating IO channel for /proc/mounts: Permission denied (g-file-error-quark, 2)

(gifcurry_gui:5247): Gtk-WARNING **: Theme parsing error: <data>:97:17: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gifcurry_gui:5247): Gtk-WARNING **: Theme parsing error: <data>:98:20: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gifcurry_gui:5247): Gtk-WARNING **: Theme parsing error: <data>:102:18: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gifcurry_gui:5247): Gtk-WARNING **: Theme parsing error: <data>:103:21: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gifcurry_gui:5247): Gtk-WARNING **: Theme parsing error: <data>:713:25: The style property GtkPaned:handle-size is deprecated and shouldn't be used anymore. It will be removed in a future version

And the following error when I try to open a (valid) .mp4 file:
/home/user/20180117_004623.mp4: Invalid data found when processing input

Please let me know how I can help.

"cache resources exhausted" Error

Hopefully you can help me resolve this "cache resources exhausted" error. Perhaps there is an option I can pass to imagemagick to increase the amount of cache available? Currently, I'm using gifcurry from the GUI, but using the CLI is no problem for me.

Thanks in advance!

[INFO] Here are your settings.

  - FILE IO:
    - Input File:    /home/peter/Downloads/My Video.mp4
    - Output File:   /home/peter/Downloads/mygif.gif
    - Save As Video: No
  - TIME:
    - Start Second: 0.000
    - End   Second: 32.000
  - OUTPUT FILE SIZE:
    - Width:       500px
    - FPS:         20
    - Color Count: 256
    - Dither:      False
  - CROP:
    - Left:   0.000
    - Right:  0.000
    - Top:    0.000
    - Bottom: 0.000

[INFO] Writing the temporary frames to: /home/peter/.cache/gifcurry/gifcurry-frames10700
[INFO] Saving your GIF to: /home/peter/Downloads/mygif.gif
convert-im6.q16: DistributedPixelCache '127.0.0.1' @ error/distribute-cache.c/ConnectPixelCacheServer/244.
convert-im6.q16: cache resources exhausted `/home/peter/.cache/gifcurry/gifcurry-frames10700/extracted-frames_0000000377.png' @ error/cache.c/OpenPixelCache/3984.
...
convert-im6.q16: DistributedPixelCache '127.0.0.1' @ error/distribute-cache.c/ConnectPixelCacheServer/244.
convert-im6.q16: cache resources exhausted `/home/peter/.cache/gifcurry/gifcurry-frames10700/extracted-frames_0000000440.png' @ error/cache.c/OpenPixelCache/3984.
convert-im6.q16: too many exceptions (exception processing suspended).
[ERROR] Something went wrong with ImageMagick.

makefile:10: *** missing separator. Stop

UBUNTU 14.04 64 BIT

Unable to install the files provided via sudo git clone ""

When I run sudo make within the gifcurry directory my system outputs ..

makefile:10: *** missing separator. Stop

Dithering

Please make it optionally possible to use dithering for GIFs.

Save Gif don't work

Please help !
Gifcurry looks great, but saving the gif always brings:
"Didn't work. Check your settings."
I use Ubuntu Linux 16.04.
Thanks

GIF as input

Can animated gifs be added as an input? It's useful for times when you just need to add text to an existing gif.

ffmpeg can already support animated gifs as input which might remove some of the complexity in supporting it.

snap-confine

don't run gifcurry
Ubuntu 16.04.4 - terminal command:
$ gifcurry
snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks

Fails to run on Ubuntu 14.04

The AppImage fails to run on Ubuntu 14.04:

(gifcurry_gui:4): Gtk-WARNING **: Could not load image 'icon.ico': Couldn't recognize the image file format for file '/run/firejail/appimage/.appimage-7088/usr/share/x86_64-linux-ghc-8.0.2/Gifcurry-2.2.0.0/data/icon.ico'

(gifcurry_gui:4): Gtk-WARNING **: Unknown property: GtkEntry.max-width-chars

(gifcurry_gui:4): GLib-GIO-ERROR **: No GSettings schemas are installed on the system

This currently prevents gifcurry from being added to the AppImageHub central directory of available AppImages.

Reference:
https://travis-ci.org/AppImage/appimage.github.io/builds/277156332#L706-L710

GUI is not resizable

Could you make the gui window resizable please? The section that has the start and end times for the gif are below the bottom edge of my screen, where I cannot get to them.
Screenshot from 2019-09-27 19-07-23

Dependency conflict ?

Hey,
just tried to compile with the Github instructions, but got an error, which I can't figure out myself. Looks like the QuickCheck dependence on base==4.9.0.0 (which is installed) is the problem.

Here is the full output

01:45 ~/gifcurry cabal install -j
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: QuickCheck-2.9.2/installed-Azb... (user goal)
next goal: Gifcurry (user goal)
rejecting: Gifcurry-2.0.0.0 (conflict: QuickCheck =>
base==4.9.0.0/installed-4.9..., Gifcurry => base>=4.7 && <4.9)
rejecting: Gifcurry-0.1.1.0, Gifcurry-0.1.0.6, Gifcurry-0.1.0.5,
Gifcurry-0.1.0.4, Gifcurry-0.1.0.3, Gifcurry-0.1.0.2, Gifcurry-0.1.0.1,
Gifcurry-0.1.0.0 (constraint from user target requires ==2.0.0.0)
Dependency tree exhaustively searched.

Note: when using a sandbox, all packages are required to have consistent
dependencies. Try reinstalling/unregistering the offending packages or
recreating the sandbox.

Diagnosed on an up-to-date 64Bit Arch Linux machine

Feature request: Adding timing for text

Hi again. Would you consider adding a way to add timing information for overlay text? For example if I'm making a gif of a single back-and-forth conversation, it would be nice to have the first line displayed for x seconds, then the second line is displayed for y seconds.

I was thinking a possible way to implement it in the gui, perhaps something like the attached file.

with_timing_anno

Labels 1 and 2 point to the fields --similar to how you implemented it for selecting clip start and duration-- for the displayed text.

Label 3, which points to the plus button, is saying if you want to add a second line of text with different timing. Perhaps hitting the plus button adds a similar field right below it, or pops up a dialogue, like for selecting fonts. I could mock that up too, if what I'm saying is not clear.

Maybe this adds too much complexity to the program and is beyond the intended scope, but if not, it would be a cool feature to add. Thanks again, lovely program to use.

install breaks on OsX Mojave

.............
gi-gio > [293 of 293] Compiling GI.Gio
gi-gio > ignoring (possibly broken) abi-depends field for packages
gi-gio > copy/register
gi-gio > Installing library in /Users/dseg/.stack/snapshots/x86_64-osx/a0f8ac41185163f0ec5615c93364ede844fbc37853c89b47e65ddbf9ccd85d51/8.4.3/lib/x86_64-osx-ghc-8.4.3/gi-gio-2.0.24-62ocVXj51dmLpZAJ9yC9U3
gi-gio > Registering library for gi-gio-2.0.24..

-- While building package gi-pango-1.0.21 using:
/private/var/folders/15/5tgph_8x12n_s3vd5lwc8ryr0000gp/T/stack26541/gi-pango-1.0.21/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/setup/setup --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 build --ghc-options " -fdiagnostics-color=always"
Process exited with code: ExitFailure 1
Progress 64/70
dseg@ MyMac:wrk$

Please rename to gifcurry-2.2.0.0-x86_64.AppImage

Please rename gifcurry-linux-app-image-2.2.0.0 to gifcurry-2.2.0.0-x86_64.AppImage to be more compliant with the standard naming scheme. This would also allow me to conduct an automated review for potential inclusion in the AppImageHub central directory of available AppImages.

Thank you.

[ERROR] Something went wrong with FFmpeg.

I'm using gifcurry-3.0.0.1 on an Ubuntu 16.04 system. I used both the pre-built binary, as well the AppImage, but received the same error as follows when trying to save a gif (opened the gui via the command line to see any generated error messages):

[INFO] Writing the temporary frames to: /home/iuqiddis/.cache/gifcurry/gifcurry-frames15716
Error opening filters!
[ERROR] Something went wrong with FFmpeg.

I tried 3 different files. All of them were 1080p x264-encoded h.264 files (mkv container).

I'm wondering if there is some way to troubleshoot the exact error? Thanks!

No video preview on arch

I want to use GIFcurry

I installed using the AUR when I open the program I get:

Error message

gtksink not found. No video preview available. Install all GStreamer 1.0 plugins

I am on arch and have the dependencies installed

❯ pacman -Q | grep -i gst                              
gst-libav 1.16.2-1
gst-plugins-bad 1.16.2-7
gst-plugins-bad-libs 1.16.2-7
gst-plugins-base 1.16.2-1
gst-plugins-base-libs 1.16.2-1
gst-plugins-good 1.16.2-3
gst-plugins-ugly 1.16.2-3
gst-python 1.16.2-2
gst-python2 1.16.2-1
gstreamer 1.16.2-1
phonon-qt5-gstreamer 4.10.0-1

How can this be resolved?

README for building should mention libgirepository1.0-dev, libgtk-3-dev dependencies

When building the git clone with stack build, I get

    Configuring haskell-gi-0.20.3...                                  
    Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2: The pkg-config package                                                                                                                              
    'gobject-introspection-1.0' version >=1.32 is required but it could not be
    found.     

which is solved with sudo apt-get install libgirepository1.0-dev on Ubuntu.

followed by

    Did not find a GI repository for Gdk-3.0 in                                                                                                                                                   
    ["/usr/share/xubuntu/gir-1.0","/usr/share/xfce4/gir-1.0","/usr/local/share/gir-1.0","/usr/share/gir-1.0","/usr/share/gir-1.0"].                                                                                                                                                            
    CallStack (from HasCallStack):                                                                                                                                                                
    error, called at lib/Data/GI/GIR/Repository.hs:89:20 in                                                                                                                                       
    haskell-gi-0.20.3-GkK5Bv8ALzbESiQXUDFHfm:Data.GI.GIR.Repository    

which is solved with sudo apt-get install libgtk-3-dev on Ubuntu.

I'd send a PR against the README, but I didn't quite understand in what section of the build instruction list to put it ("github"? But then why are there both mac→compile and github compile instructions?)

Font size setting effects only the top line

Hey, first thanks for this handy tool. very cool! 👍

One bug I found recently: in the current version (2.1.1.0), the size of the font settings effects only the top line, not the bottom line.

Not working with longer durations

I tried to convert a Video into a gif with the full duration of 59 seconds. It didn't work. So I tried to make the same thing with a shorter duration of fewer than 10 seconds and it works. But I need a "fake video" for a markdown file, so I need the full duration of the video. What should I do?

Thank in advance.

Padding operation

Hello,
it would be nice to have a new feature to pad videos (opposite of cropping).
The use case is making a gif with a white area on the top on which I'd add a text.

This can be useful also for making a video square, or to add a transparent padding.

Keyboard control for changing frames

Can keyboard control be added to gifcurry to allow for more precise editing? Specifically, I want to be able to go forward and backwards in frames using the keyboard.

Most of the video editors that I've used use Left/Right, K/L or "."/"/" to do this:

https://www.openshot.org/static/files/user-guide/main_window.html
https://docs.blender.org/manual/en/latest/editors/vse/sequencer/editing.html
https://userbase.kde.org/Kdenlive/Manual/Useful_Information/Shortcuts

Can gifcurry implement this and other keyboard shortcuts?

App Image segfaults on Fedora32

Using the app-image on fedora results a Segfault. gtk3-devel packages are installed.

Using Plasmashell(kde) desktop

[aenertia@kiorewha faceoffgif]$ ~/Downloads/gifcurry-6.0.0.0-x86_64.AppImage

(gifcurry_gui:485782): GLib-GIO-ERROR **: 10:30:38.086: Settings schema 'org.gtk.Settings.FileChooser' does not contain a key named 'show-type-column'
Trace/breakpoint trap (core dumped)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.