lettier / gifcurry

😎 The open-source, Haskell-built video editor for GIF makers.
https://lettier.github.io/gifcurry
BSD 3-Clause "New" or "Revised" License
1.34k stars 54 forks source link

"Crop" is broken on my system when creating a gif with longer duration than ~10 secs #95

Open JanSurft opened 1 year ago

JanSurft commented 1 year ago

Thanks for writing this nice piece of software. Recently when creating a gif out of an mp4 File I wanted to crop it. Cropping though resulted in an error on longer video sequences.

System Info:

(base) ➜  ~ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:    20.04
Codename:   focal
(base) ➜  ~ uname -a
Linux ilt908-t15 5.15.0-73-generic #80~20.04.1-Ubuntu SMP Wed May 17 14:58:14 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

How to reproduce:

GUI

  1. Get gifcurry v6.0.1.0
  2. Run the gui
  3. Load an mp4 H264 formatted file
  4. Duration should be roughly above 10 secs
  5. Crop it left and right
  6. Click "File" > "Save"

CLI

  1. Get gifcurry v6.0.1.0
  2. Get a mp4 video file that has a long enough duration (e.g. 20 secs)
  3. gifcurry_cli -i my-video.mp4 -o my-video.gif -s 0 -e 20 -L 0.38 -R 0.38 -f 15 -c 256

When I use -m to create a webm video it works fine.

Expected behaviour

The gif is created successfully.

Actual behaviour

The program produces an error.

Error output:

[INFO] Here are your settings.

  - FILE IO:
    - Input File:    /home/my-user/Videos/my-video.mp4
    - Output File:   /home/my-user/Videos/my-video.gif
    - Save As Video: No
  - TIME:
    - Start Second: 0.000
    - End   Second: 20.000
  - OUTPUT FILE SIZE:
    - Width:       500px
    - FPS:         24
    - Color Count: 256
    - Dither:      False
  - CROP:
    - Left:   0.380
    - Right:  0.380
    - Top:    0.000
    - Bottom: 0.000

[INFO] Writing the temporary frames to: /home/my-user/.cache/gifcurry/gifcurry-frames19551
[INFO] Saving your GIF to: /home/my-user/Videos/surfbuddy-install.gif
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000000.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000000.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000001.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000001.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000002.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000002.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000003.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000003.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000004.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000004.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000005.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000005.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000006.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000006.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000007.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000007.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000008.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000008.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000009.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000009.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000010.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000010.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000011.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000011.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000012.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000012.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000013.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000013.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000014.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000014.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000015.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000015.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000016.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000016.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000017.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000017.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000018.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000018.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000019.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000019.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000020.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000020.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000021.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000021.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000022.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000022.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000023.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000023.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000024.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000024.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000025.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000025.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000026.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000026.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000027.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000027.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000028.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000028.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000029.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000029.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000030.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000030.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: cache resources exhausted `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000031.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: memory allocation failed `/home/my-user/.cache/gifcurry/gifcurry-frames19551/extracted-frames_0000000031.png' @ error/quantize.c/AssignImageColors/496.
convert-im6.q16: too many exceptions (exception processing is suspended) @ error/exception.c/ThrowException/974.
[ERROR] Something went wrong with ImageMagick.